SpyBara
Go Premium

Documentation 2026-09-29 23:58 UTC to 2026-09-30 22:03 UTC

73 files changed +1,543 −849. View all changes and history on the product overview
2026
Wed 30 23:00 Tue 29 23:58 Mon 28 22:59 Fri 25 23:58 Thu 24 22:57 Wed 23 23:57 Tue 22 23:59 Mon 21 22:59 Sun 20 23:59 Sat 19 23:57 Fri 18 23:58 Tue 15 23:58 Mon 14 22:58 Sun 13 21:00 Sat 12 03:02 Thu 10 23:00 Wed 9 22:58 Tue 8 20:00 Tue 1 21:02

advisor.md +3 −2

Details

97 Выбор модели советника97 Выбор модели советника

98</h2>98</h2>

99 99 

100Советник должен быть по крайней мере такой же способной, как основная модель. Принятые советники для каждой основной модели:100И Claude Code, и API требуют советника по крайней мере такой же способного, как основная модель, и эти два по-разному ранжируют некоторые модели. Принятые советники для каждой основной модели:

101 101 

102| Основная модель | Принятые советники | Примечания |102| Основная модель | Принятые советники | Примечания |

103| - | - | - |103| - | - | - |

104| Haiku 4.5 | Fable, Opus, Sonnet | Haiku может вызывать советника, но не может быть им |104| Haiku 4.5 | Fable, Opus, Sonnet | Haiku может вызывать советника, но не может быть им |

105| Sonnet 4.6 | Fable, Opus, Sonnet | |105| Sonnet 4.6 | Fable, Opus, Sonnet | |

106| Sonnet 5.5 или Sonnet 5 | Fable, Opus 4.7 или позже, Sonnet 5 или позже | Советник Sonnet 4.6 отклоняется, и API отклоняет советника Opus 4.6 |106| Sonnet 5 | Fable, Opus 4.7 или позже, Sonnet 5 или позже | Советник Sonnet 4.6 отклоняется, и API отклоняет советника Opus 4.6 |

107| Sonnet 5.5 | Fable, Opus 5 или позже, Sonnet 5.5 | Советник Sonnet 4.6 отклоняется, и API отклоняет советника Sonnet 5, Opus 4.6, Opus 4.7 или Opus 4.8 |

107| Opus 4.6 | Fable, Opus, Sonnet 5 или позже | Советник Sonnet 4.6 отклоняется |108| Opus 4.6 | Fable, Opus, Sonnet 5 или позже | Советник Sonnet 4.6 отклоняется |

108| Opus 4.7 или Opus 4.8 | Fable и Opus 4.7 или позже | Советник Opus 4.6 или Sonnet отклоняется |109| Opus 4.7 или Opus 4.8 | Fable и Opus 4.7 или позже | Советник Opus 4.6 или Sonnet отклоняется |

109| Opus 5.5 или Opus 5 | Fable и Opus 5 или позже | Советник Opus 4.6 или Sonnet отклоняется, и API отклоняет советника Opus 4.7 или Opus 4.8 |110| Opus 5.5 или Opus 5 | Fable и Opus 5 или позже | Советник Opus 4.6 или Sonnet отклоняется, и API отклоняет советника Opus 4.7 или Opus 4.8 |

Details

134| `acceptEdits` | Автоматически принимать редактирование файлов | Редактирование файлов и [операции с файловой системой](#accept-edits-mode-acceptedits) (`mkdir`, `rm`, `mv` и т. д.) автоматически одобряются |134| `acceptEdits` | Автоматически принимать редактирование файлов | Редактирование файлов и [операции с файловой системой](#accept-edits-mode-acceptedits) (`mkdir`, `rm`, `mv` и т. д.) автоматически одобряются |

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

136| `plan` | Режим планирования | Claude исследует и планирует без редактирования исходных файлов; редактирование файлов никогда не одобряется автоматически и запрашивается через ваш обратный вызов `canUseTool` |136| `plan` | Режим планирования | Claude исследует и планирует без редактирования исходных файлов; редактирование файлов никогда не одобряется автоматически и запрашивается через ваш обратный вызов `canUseTool` |

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

138 138 

139<Warning>139<Warning>

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

Details

2885 2885 

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

2887 2887 

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

2889 

2888**Ввод:**2890**Ввод:**

2889 2891 

2890```python theme={null}2892```python theme={null}

2891{2893{

2892 "command": str, # Команда для выполнения2894 "command": str, # Команда для выполнения

2893 "timeout": int | None, # Необязательный тайм-аут в миллисекундах (макс 600000; более высокие значения зажимаются до максимума)2895 "timeout": int | None, # Миллисекунды. Передний план: ограничен 600000 по умолчанию, более высокие значения зажимаются. С run_in_background (Claude Code v2.1.285 или позже): ограничение времени фонового режима, 1800000 при пропуске, ограничено 7200000, если не повышено

2894 "description": str | None, # Четкое, краткое описание (5-10 слов)2896 "description": str | None, # Четкое, краткое описание (5-10 слов)

2895 "run_in_background": bool | None, # Установите значение true для выполнения в фоне2897 "run_in_background": bool | None, # Установите значение true для выполнения в фоне

2896}2898}


3193**Имя инструмента:** `TodoWrite`3195**Имя инструмента:** `TodoWrite`

3194 3196 

3195<Note>3197<Note>

3196 The following tools are available by default only on Claude 3.x models, Opus 4 through 4.7, Sonnet 4 through 4.6, and Haiku 4.5. On every other model, including model IDs Claude Code doesn't recognize, they aren't available unless you opt in:3198 Следующие инструменты доступны по умолчанию только на моделях Claude 3.x, Opus 4 через 4.7, Sonnet 4 через 4.6 и Haiku 4.5. На всех остальных моделях, включая идентификаторы моделей, которые Claude Code не распознает, они недоступны, если вы не согласитесь на их использование:

3197 3199 

3198 * `TodoWrite`3200 * `TodoWrite`

3199 * `TaskCreate`3201 * `TaskCreate`


3201 * `TaskUpdate`3203 * `TaskUpdate`

3202 * `TaskList`3204 * `TaskList`

3203 3205 

3204 Wherever the tools are available, Claude Code provides the four Task tools, or `TodoWrite` instead when you set `CLAUDE_CODE_ENABLE_TASKS=0`.3206 Везде, где доступны инструменты, Claude Code предоставляет четыре инструмента Task, или `TodoWrite` вместо них, когда вы устанавливаете `CLAUDE_CODE_ENABLE_TASKS=0`.

3205 3207 

3206 This default set applies in Claude Code v2.1.268 and later, which the TypeScript Agent SDK bundles from v0.3.268.3208 Этот набор по умолчанию применяется в Claude Code v2.1.268 и более поздних версиях, которые TypeScript Agent SDK поставляет начиная с версии v0.3.268.

3207 3209 

3208 См. [Доступность модели](/docs/ru/agent-sdk/todo-tracking#model-availability) для подключения.3210 См. [Доступность модели](/docs/ru/agent-sdk/todo-tracking#model-availability) для подключения.

3209</Note>3211</Note>

Details

15</h2>15</h2>

16 16 

17<Note>17<Note>

18 The following tools are available by default only on Claude 3.x models, Opus 4 through 4.7, Sonnet 4 through 4.6, and Haiku 4.5. On every other model, including model IDs Claude Code doesn't recognize, they aren't available unless you opt in:18 Следующие инструменты доступны по умолчанию только на моделях Claude 3.x, Opus 4 через 4.7, Sonnet 4 через 4.6 и Haiku 4.5. На всех остальных моделях, включая идентификаторы моделей, которые Claude Code не распознает, они недоступны, если вы не согласитесь на их использование:

19 19 

20 * `TodoWrite`20 * `TodoWrite`

21 * `TaskCreate`21 * `TaskCreate`


23 * `TaskUpdate`23 * `TaskUpdate`

24 * `TaskList`24 * `TaskList`

25 25 

26 Wherever the tools are available, Claude Code provides the four Task tools, or `TodoWrite` instead when you set `CLAUDE_CODE_ENABLE_TASKS=0`.26 Везде, где доступны инструменты, Claude Code предоставляет четыре инструмента Task, или `TodoWrite` вместо них, когда вы устанавливаете `CLAUDE_CODE_ENABLE_TASKS=0`.

27 27 

28 This default set applies in Claude Code v2.1.268 and later, which the TypeScript Agent SDK bundles from v0.3.268.28 Этот набор по умолчанию применяется в Claude Code v2.1.268 и более поздних версиях, которые TypeScript Agent SDK поставляет начиная с версии v0.3.268.

29</Note>29</Note>

30 30 

31На модели, которая не имеет инструментов по умолчанию, если вы не подключите сеанс, вы не увидите блоков `tool_use` для них в потоке сообщений. Agent SDK применяет эти значения по умолчанию через двоичный файл Claude Code, который он включает. Если вы указываете `pathToClaudeCodeExecutable` (TypeScript) или `cli_path` (Python) на вашу собственную установку Claude Code, вы получаете те инструменты, которые предоставляет эта установка, в соответствии с её собственными значениями по умолчанию. Чтобы увидеть точный набор в работающем сеансе, [проверьте, какие инструменты доступны](/docs/ru/tools-reference#check-which-tools-are-available). Чтобы подключить сеанс, выполните одно из следующих действий:31На модели, которая не имеет инструментов по умолчанию, если вы не подключите сеанс, вы не увидите блоков `tool_use` для них в потоке сообщений. Agent SDK применяет эти значения по умолчанию через двоичный файл Claude Code, который он включает. Если вы указываете `pathToClaudeCodeExecutable` (TypeScript) или `cli_path` (Python) на вашу собственную установку Claude Code, вы получаете те инструменты, которые предоставляет эта установка, в соответствии с её собственными значениями по умолчанию. Чтобы увидеть точный набор в работающем сеансе, [проверьте, какие инструменты доступны](/docs/ru/tools-reference#check-which-tools-are-available). Чтобы подключить сеанс, выполните одно из следующих действий:

Details

308| `summary` | `string` | Отображаемое название: пользовательское название, самый последний запрос, автоматически сгенерированное резюме или первый запрос |308| `summary` | `string` | Отображаемое название: пользовательское название, самый последний запрос, автоматически сгенерированное резюме или первый запрос |

309| `lastModified` | `number` | Время последнего изменения в миллисекундах с эпохи |309| `lastModified` | `number` | Время последнего изменения в миллисекундах с эпохи |

310| `fileSize` | `number \| undefined` | Размер файла сессии в байтах. Заполняется только для локального хранилища JSONL |310| `fileSize` | `number \| undefined` | Размер файла сессии в байтах. Заполняется только для локального хранилища JSONL |

311| `customTitle` | `string \| undefined` | Пользовательское название сессии (через `/rename`) |311| `customTitle` | `string \| undefined` | Пользовательское название сессии, когда оно установлено, например с помощью `--name`, `/rename`, вывода hook `sessionTitle` или [`renameSession()`](#renamesession). В противном случае автоматически сгенерированное название сессии, если сессия его имеет |

312| `firstPrompt` | `string \| undefined` | Первый значимый пользовательский запрос в сессии |312| `firstPrompt` | `string \| undefined` | Первый значимый пользовательский запрос в сессии |

313| `gitBranch` | `string \| undefined` | Git ветка в конце сессии |313| `gitBranch` | `string \| undefined` | Git ветка в конце сессии |

314| `cwd` | `string \| undefined` | Рабочая директория для сессии |314| `cwd` | `string \| undefined` | Рабочая директория для сессии |


3202```typescript theme={null}3202```typescript theme={null}

3203type BashInput = {3203type BashInput = {

3204 command: string;3204 command: string;

3205 timeout?: number; // milliseconds, max 600000; higher values are clamped to the max3205 timeout?: number; // миллисекунды. Foreground: ограничено 600000 по умолчанию, более высокие значения зажимаются. С run_in_background (Claude Code v2.1.285 или позже): лимит времени фона, 1800000 при пропуске, ограничено 7200000, если не повышено

3206 description?: string;3206 description?: string;

3207 run_in_background?: boolean;3207 run_in_background?: boolean;

3208 dangerouslyDisableSandbox?: boolean;3208 dangerouslyDisableSandbox?: boolean;

3209};3209};

3210```3210```

3211 3211 

3212Выполняет команды Bash с опциональным timeout и фоновым выполнением. Рабочий каталог сохраняется между командами, включая команды, запущенные в более поздних ходах многоходовой сессии; состояние shell, такое как экспортированные переменные окружения, не сохраняется. Для ограничений на то, какие изменения каталога переносятся, см. [Что сохраняется между командами](/docs/ru/tools-reference#what-persists-between-commands).3212Выполняет команды Bash с опциональным timeout и фоновым выполнением. Рабочий каталог сохраняется между командами, включая команды, запущенные в более поздних ходах многоходовой сессии; состояние shell, такое как экспортированные переменные окружения, не сохраняется. Для ограничений на то, какие изменения каталога переносятся, см. [Что сохраняется между командами](/docs/ru/tools-reference#what-persists-between-commands). Для того, что устанавливает потолок foreground, см. [Timeout и лимиты вывода](/docs/ru/tools-reference#timeout-and-output-limits). Для лимита времени фона см. [Фоновые команды](/docs/ru/tools-reference#background-commands).

3213 3213 

3214<h3 id="monitor">3214<h3 id="monitor">

3215 Monitor3215 Monitor


3452Создаёт и управляет структурированным списком задач для отслеживания прогресса.3452Создаёт и управляет структурированным списком задач для отслеживания прогресса.

3453 3453 

3454<Note>3454<Note>

3455 The following tools are available by default only on Claude 3.x models, Opus 4 through 4.7, Sonnet 4 through 4.6, and Haiku 4.5. On every other model, including model IDs Claude Code doesn't recognize, they aren't available unless you opt in:3455 Следующие инструменты доступны по умолчанию только на моделях Claude 3.x, Opus 4 через 4.7, Sonnet 4 через 4.6 и Haiku 4.5. На всех остальных моделях, включая идентификаторы моделей, которые Claude Code не распознает, они недоступны, если вы не согласитесь на их использование:

3456 3456 

3457 * `TodoWrite`3457 * `TodoWrite`

3458 * `TaskCreate`3458 * `TaskCreate`


3460 * `TaskUpdate`3460 * `TaskUpdate`

3461 * `TaskList`3461 * `TaskList`

3462 3462 

3463 Wherever the tools are available, Claude Code provides the four Task tools, or `TodoWrite` instead when you set `CLAUDE_CODE_ENABLE_TASKS=0`.3463 Везде, где доступны инструменты, Claude Code предоставляет четыре инструмента Task, или `TodoWrite` вместо них, когда вы устанавливаете `CLAUDE_CODE_ENABLE_TASKS=0`.

3464 3464 

3465 This default set applies in Claude Code v2.1.268 and later, which the TypeScript Agent SDK bundles from v0.3.268.3465 Этот набор по умолчанию применяется в Claude Code v2.1.268 и более поздних версиях, которые TypeScript Agent SDK поставляет начиная с версии v0.3.268.

3466 3466 

3467 См. [Доступность модели](/docs/ru/agent-sdk/todo-tracking#model-availability) для подключения.3467 См. [Доступность модели](/docs/ru/agent-sdk/todo-tracking#model-availability) для подключения.

3468</Note>3468</Note>


3637};3637};

3638```3638```

3639 3639 

3640Планирует запуск запроса по расписанию cron из 5 полей в локальном времени. Установите `recurring` на `false` для срабатывания один раз при следующем совпадении. Задачи по умолчанию ограничены сессией: запуск новой беседы очищает их, а возобновление с `--resume` или `--continue` восстанавливает задачи, которые не истекли. См. [Запланированные задачи](/docs/ru/scheduled-tasks).3640Планирует запуск запроса по расписанию cron из 5 полей в локальном времени. Установите `recurring` на `false` для срабатывания один раз при следующем совпадении. Задачи по умолчанию ограничены сессией, и возобновление с `--resume` или `--continue` восстанавливает задачи, которые не истекли. См. [Запланированные задачи](/docs/ru/scheduled-tasks).

3641 3641 

3642Установка `durable` на `true` запрашивает сохранение в `.claude/scheduled_tasks.json`, чтобы задача пережила перезагрузки. Долговечное планирование доступно не в каждой сессии: когда оно недоступно, Claude Code принимает `durable: true`, но создаёт задачу только для сессии. Прочитайте поле `durable` в выводе, чтобы увидеть, сохранилась ли задача.3642Установка `durable` на `true` запрашивает сохранение в `.claude/scheduled_tasks.json`, чтобы задача пережила перезагрузки. Долговечное планирование доступно не в каждой сессии: когда оно недоступно, Claude Code принимает `durable: true`, но создаёт задачу только для сессии. Прочитайте поле `durable` в выводе, чтобы увидеть, сохранилась ли задача.

3643 3643 


4113 4113 

4114`timedOutAfterMs` — это тайм-аут в миллисекундах, установленный, когда команда достигла своего тайм-аута и перешла в фоновый режим, а не начала там явно. `backgroundCwdHint` устанавливается, когда фоновая команда содержала встроенную команду изменения каталога, такую как `cd`, `pushd`, `popd` или `chdir`, и отмечает, что рабочий каталог сеанса не изменился. Оба поля требуют Claude Code v2.1.210 или более поздней версии.4114`timedOutAfterMs` — это тайм-аут в миллисекундах, установленный, когда команда достигла своего тайм-аута и перешла в фоновый режим, а не начала там явно. `backgroundCwdHint` устанавливается, когда фоновая команда содержала встроенную команду изменения каталога, такую как `cd`, `pushd`, `popd` или `chdir`, и отмечает, что рабочий каталог сеанса не изменился. Оба поля требуют Claude Code v2.1.210 или более поздней версии.

4115 4115 

4116Когда подагент, работающий на переднем плане, владеет фоновой командой, Claude Code завершает команду, когда этот подагент даёт свой финальный ответ. Claude Code устанавливает `backgroundEndsWithFinalResponse` в `true` для таких команд и опускает поле, когда команда сохраняется после хода, как команды, запущенные основным разговором или фоновыми подагентами. Поле требует Claude Code v2.1.227 или более поздней версии.4116Когда подагент, работающий на переднем плане, владеет фоновой командой, команда [завершается, когда этот подагент даёт свой финальный ответ](/docs/ru/tools-reference#background-commands). Claude Code устанавливает `backgroundEndsWithFinalResponse` в `true` для таких команд и опускает поле, когда команда сохраняется после хода, как команды, запущенные основным разговором или фоновыми подагентами. Поле требует Claude Code v2.1.227 или более поздней версии.

4117 4117 

4118Claude Code устанавливает `gitOperation.commit.branch` в ветку, названную в строке сводки коммита git, и опускает её для коммита, сделанного на отсоединённой HEAD. Поле требует Agent SDK v0.3.227 или более поздней версии. Claude Code сообщает команду `gh pr reopen` как действие PR `reopened`, что требует Agent SDK v0.3.234 или более поздней версии.4118Claude Code устанавливает `gitOperation.commit.branch` в ветку, названную в строке сводки коммита git, и опускает её для коммита, сделанного на отсоединённой HEAD. Поле требует Agent SDK v0.3.227 или более поздней версии. Claude Code сообщает команду `gh pr reopen` как действие PR `reopened`, что требует Agent SDK v0.3.234 или более поздней версии.

4119 4119 


4481Возвращает предыдущие и обновлённые списки задач.4481Возвращает предыдущие и обновлённые списки задач.

4482 4482 

4483<Note>4483<Note>

4484 The following tools are available by default only on Claude 3.x models, Opus 4 through 4.7, Sonnet 4 through 4.6, and Haiku 4.5. On every other model, including model IDs Claude Code doesn't recognize, they aren't available unless you opt in:4484 Следующие инструменты доступны по умолчанию только на моделях Claude 3.x, Opus 4 через 4.7, Sonnet 4 через 4.6 и Haiku 4.5. На всех остальных моделях, включая идентификаторы моделей, которые Claude Code не распознает, они недоступны, если вы не согласитесь на их использование:

4485 4485 

4486 * `TodoWrite`4486 * `TodoWrite`

4487 * `TaskCreate`4487 * `TaskCreate`


4489 * `TaskUpdate`4489 * `TaskUpdate`

4490 * `TaskList`4490 * `TaskList`

4491 4491 

4492 Wherever the tools are available, Claude Code provides the four Task tools, or `TodoWrite` instead when you set `CLAUDE_CODE_ENABLE_TASKS=0`.4492 Везде, где доступны инструменты, Claude Code предоставляет четыре инструмента Task, или `TodoWrite` вместо них, когда вы устанавливаете `CLAUDE_CODE_ENABLE_TASKS=0`.

4493 4493 

4494 This default set applies in Claude Code v2.1.268 and later, which the TypeScript Agent SDK bundles from v0.3.268.4494 Этот набор по умолчанию применяется в Claude Code v2.1.268 и более поздних версиях, которые TypeScript Agent SDK поставляет начиная с версии v0.3.268.

4495 4495 

4496 Смотрите [Доступность модели](/docs/ru/agent-sdk/todo-tracking#model-availability) для подключения.4496 Смотрите [Доступность модели](/docs/ru/agent-sdk/todo-tracking#model-availability) для подключения.

4497</Note>4497</Note>

agent-view.md +28 −2

Details

64 </Step>64 </Step>

65</Steps>65</Steps>

66 66 

67Вы можете использовать `claude agents` как основную точку входа вместо `claude`: отправляйте каждую задачу из agent view, подключайтесь, когда вам нужна полная беседа, и нажимайте `←` для возврата к таблице.

68 

69Внутри обычного сеанса `claude` подсказка в нижнем колонтитуле `←` показывает количество фоновых агентов, которые ждут вас, например `← 2 agents`, и возвращается к `← for agents`, когда никто не требует ввода. Количество выше 99 отображается как `99+`. Количество обновляется примерно каждые десять секунд, пока терминал в фокусе, и немедленно, когда фокус возвращается. Оно кратко меняет цвет при изменении и при завершении агента, и когда фоновый сеанс завершается, пока никто не требует вашего ввода, оно кратко показывает количество завершённых, например `← 2 done`. Обе вспышки отключены, когда параметр [`prefersReducedMotion`](/docs/ru/settings-reference#prefersreducedmotion) включен, и подсказка скрыта в [режиме чтения с экрана](/docs/ru/accessibility).67Внутри обычного сеанса `claude` подсказка в нижнем колонтитуле `←` показывает количество фоновых агентов, которые ждут вас, например `← 2 agents`, и возвращается к `← for agents`, когда никто не требует ввода. Количество выше 99 отображается как `99+`. Количество обновляется примерно каждые десять секунд, пока терминал в фокусе, и немедленно, когда фокус возвращается. Оно кратко меняет цвет при изменении и при завершении агента, и когда фоновый сеанс завершается, пока никто не требует вашего ввода, оно кратко показывает количество завершённых, например `← 2 done`. Обе вспышки отключены, когда параметр [`prefersReducedMotion`](/docs/ru/settings-reference#prefersreducedmotion) включен, и подсказка скрыта в [режиме чтения с экрана](/docs/ru/accessibility).

70 68 

69<h3 id="open-agent-view-by-default">

70 Открыть agent view по умолчанию

71</h3>

72 

73Чтобы `claude` без аргументов открывал agent view вместо новой беседы, включите параметр `/config`.

74 

75<Steps>

76 <Step title="Включить параметр">

77 В обычном сеансе `claude` запустите `/config` и включите **Open agents view by default**. Чтобы пропустить меню, установите ключ [`defaultToAgentsView`](/docs/ru/settings-reference#defaulttoagentsview) напрямую:

78 

79 ```text theme={null}

80 /config defaultToAgentsView=true

81 ```

82 </Step>

83 

84 <Step title="Запустить Claude Code">

85 Выйдите из сеанса, затем запустите `claude` без аргументов:

86 

87 ```bash theme={null}

88 claude

89 ```

90 

91 Agent view открывается вместо новой беседы.

92 </Step>

93</Steps>

94 

95Чтобы запустить обычный сеанс, пока параметр включен, передайте подсказку: `claude "fix the login test"`. Чтобы отключить параметр, запустите `/config defaultToAgentsView=false` в обычном сеансе или в сеансе, к которому вы подключаетесь из agent view.

96 

71<h2 id="monitor-sessions-with-agent-view">97<h2 id="monitor-sessions-with-agent-view">

72 Мониторинг сеансов с помощью agent view98 Мониторинг сеансов с помощью agent view

73</h2>99</h2>

Details

482 482 

483Claude Sonnet 5, Opus 4.6 и более поздние версии, а также Sonnet 4.6 поддерживают [окно контекста 1M токенов](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model) на Amazon Bedrock. Sonnet 5 всегда работает с окном 1M как на Invoke API, так и на [конечной точке Mantle](#use-the-mantle-endpoint), без варианта `[1m]` для выбора. Для других моделей на Invoke API Claude Code автоматически включает расширенное окно контекста при выборе варианта модели 1M.483Claude Sonnet 5, Opus 4.6 и более поздние версии, а также Sonnet 4.6 поддерживают [окно контекста 1M токенов](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model) на Amazon Bedrock. Sonnet 5 всегда работает с окном 1M как на Invoke API, так и на [конечной точке Mantle](#use-the-mantle-endpoint), без варианта `[1m]` для выбора. Для других моделей на Invoke API Claude Code автоматически включает расширенное окно контекста при выборе варианта модели 1M.

484 484 

485[Мастер установки](#sign-in-with-bedrock) предлагает опцию контекста 1M при закреплении моделей. Чтобы включить его для вручную закрепленной модели вместо этого, добавьте `[1m]` к ID модели. См. [Pin models for third-party deployments](/docs/ru/model-config#pin-models-for-third-party-deployments) для получения подробной информации.485[Мастер установки](#sign-in-with-bedrock) предлагает опцию контекста 1M при закреплении моделей. Чтобы включить его для вручную закрепленной модели вместо этого, добавьте `[1m]` к ID модели. См. [Pin models for third-party deployments](/docs/ru/model-config#pin-models-for-third-party-deployments) для получения подробной информации, включая способы использования окна 1M без изменения закрепления.

486 486 

487<h2 id="service-tiers">487<h2 id="service-tiers">

488 Уровни обслуживания488 Уровни обслуживания

artifacts.md +11 −11

Details

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

101 101 

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

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

104 104 

105<h3 id="let-someone-edit-with-you">105<h3 id="let-someone-edit-with-you">

106 Позвольте кому-то редактировать вместе с вами106 Позвольте кому-то редактировать вместе с вами


122 Собирайте комментарии к артефакту122 Собирайте комментарии к артефакту

123</h2>123</h2>

124 124 

125Когда вы делитесь артефактом в пределах вашей организации, люди, с которыми вы им делитесь, могут оставлять комментарии на странице, и вы можете попросить Claude прочитать эти комментарии и ответить на них. Вам нужна Claude Code версии 2.1.221 или более поздней и план Team или Enterprise, потому что только артефакт, который вы [делите в пределах вашей организации](#share-an-artifact), получает комментарии. Claude читает комментарии в двух случаях:125Когда вы делитесь артефактом в пределах вашей организации, люди, с которыми вы им делитесь, могут оставлять комментарии на странице, и вы можете попросить Claude прочитать эти комментарии и ответить на них. Вам нужна Claude Code версии 2.1.221 или более поздней. Claude читает комментарии в двух случаях:

126 126 

127* **Вы просите Claude прочитать их**: дайте Claude URL артефакта и попросите комментарии. Claude перечисляет каждый тред и отмечает комментарии, которые отправил ему кто-то, кто может редактировать артефакт.127* **Вы просите Claude прочитать их**: дайте Claude URL артефакта и попросите комментарии. Claude перечисляет каждый тред и отмечает комментарии, которые отправил ему кто-то, кто может редактировать артефакт.

128* **Кто-то, кто может редактировать артефакт, отправляет комментарий Claude**: в треде на странице они отправляют комментарий с помощью **Send to Claude**, или упоминают `@claude` в нём. В любом случае они активируют тред.128* **Кто-то, кто может редактировать артефакт, отправляет комментарий Claude**: в треде на странице они отправляют комментарий с помощью **Send to Claude**, или упоминают `@claude` в нём. В любом случае они активируют тред.

129 129 

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

131 131 

132Если вы делитесь артефактом публично, зрители не могут комментировать его: на странице написано `Comments aren't available while this Artifact is shared publicly.` Чтобы переключить артефакт, который уже имеет треды комментариев, на публичную ссылку, сначала удалите треды.132Если вы делитесь артефактом публично, люди, чей единственный доступ — это публичная ссылка, не видят его комментарии и не могут добавлять их. Существующие треды комментариев остаются на артефакте, и вы и его редакторы по-прежнему можете читать и отвечать на них.

133 133 

134Чтобы попросить комментарии самостоятельно, дайте Claude URL:134Чтобы попросить комментарии самостоятельно, дайте Claude URL:

135 135 


195 195 

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

197 197 

198Артефакт, который вызывает коннекторы, не может быть поделён по общей ссылке ни в одном плане. В планах Team и Enterprise вы можете оставить его приватным или [поделиться им в пределах вашей организации](#share-an-artifact). В планах Pro и Max, где общая ссылка — единственный способ поделиться, артефакт с поддержкой коннектора остаётся приватным для вас.198Вы можете [поделиться страницей с поддержкой коннектора](#share-an-artifact) в пределах вашей организации или публично, как позволяют ваш план и параметры организации. Вызовы коннекторов не выполняются для зрителя, который открывает публичную ссылку без входа в claude.ai или из-за пределов вашей организации. Этот зритель видит страницу без её живых разделов.

199 199 

200<h3 id="the-page-shows-no-live-data-for-a-viewer">200<h3 id="the-page-shows-no-live-data-for-a-viewer">

201 Страница не показывает живые данные для зрителя201 Страница не показывает живые данные для зрителя

202</h3>202</h3>

203 203 

204Когда страница с поддержкой коннектора отображается, но её живые разделы остаются пустыми для кого-то, с кем вы её поделились, проработайте эти причины:204Когда страница с поддержкой коннектора отображается, но её живые разделы остаются пустыми для зрителя в вашей организации, проработайте эти причины:

205 205 

206* **Зритель не подключил коннектор**: коннекторы привязаны к учётной записи, поэтому каждому зрителю нужно своё подключение к каждому коннектору, который вызывает страница. Они могут добавить его в **Settings > Connectors** на claude.ai, а затем перезагрузить страницу.206* **Зритель не подключил коннектор**: коннекторы привязаны к учётной записи, поэтому каждому зрителю нужно своё подключение к каждому коннектору, который вызывает страница. Они могут добавить его в **Settings > Connectors** на claude.ai, а затем перезагрузить страницу.

207* **Зритель отказал в разрешении**: отказ действует до конца этой загрузки страницы. Перезагрузка страницы возвращает запрос разрешения.207* **Зритель отказал в разрешении**: отказ действует до конца этой загрузки страницы. Перезагрузка страницы возвращает запрос разрешения.


375 375 

376| Requirement | Available when |376| Requirement | Available when |

377| :- | :- |377| :- | :- |

378| Plan | Pro, Max, Team или Enterprise. На планах Pro и Max артефакты являются приватными для вас до тех пор, пока вы их не поделитесь, и управление администратором не применяется. На планах Team артефакты включены по умолчанию. На планах Enterprise владелец [включает их](#manage-artifacts-for-your-organization) в параметрах администратора claude.ai. |378| Plan | Pro, Max, Team или Enterprise. На планах Pro и Max артефакты являются приватными для вас до тех пор, пока вы их не поделитесь, и управление администратором не применяется. На планах Team и Enterprise артефакты включены по умолчанию, и владелец может [отключить их для организации](#manage-artifacts-for-your-organization) в параметрах администратора claude.ai. |

379| Authentication | Сеанс поддерживается учётной записью claude.ai: войдите с помощью `/login` в CLI или приложении для рабочего стола. Сеансы Claude Tag вошли через идентификацию агента, поэтому никаких шагов не требуется. Сеансы, использующие ключ API, [токен шлюза](/docs/ru/llm-gateway) или учётные данные поставщика облачных услуг, не могут публиковать. |379| Authentication | Сеанс поддерживается учётной записью claude.ai: войдите с помощью `/login` в CLI или приложении для рабочего стола. Сеансы Claude Tag вошли через идентификацию агента, поэтому никаких шагов не требуется. Сеансы, использующие ключ API, [токен шлюза](/docs/ru/llm-gateway) или учётные данные поставщика облачных услуг, не могут публиковать. |

380| Model provider | Anthropic API. Недоступно на [Amazon Bedrock](/docs/ru/amazon-bedrock), [Google Cloud's Agent Platform](/docs/ru/google-vertex-ai) или [Microsoft Foundry](/docs/ru/microsoft-foundry). |380| Model provider | Anthropic API. Недоступно на [Amazon Bedrock](/docs/ru/amazon-bedrock), [Google Cloud's Agent Platform](/docs/ru/google-vertex-ai) или [Microsoft Foundry](/docs/ru/microsoft-foundry). |

381| Organization policy | Ключи шифрования, управляемые клиентом (CMEK), HIPAA и [Zero Data Retention](/docs/ru/zero-data-retention) не включены для организации. |381| Organization policy | Ключи шифрования, управляемые клиентом (CMEK), HIPAA и [Zero Data Retention](/docs/ru/zero-data-retention) не включены для организации. |


408 Управление артефактами для вашей организации408 Управление артефактами для вашей организации

409</h2>409</h2>

410 410 

411Владельцы планов Team и Enterprise управляют артефактами из [параметров администратора claude.ai](https://claude.ai/admin-settings/claude-code). Содержимое артефактов хранится на инфраструктуре, управляемой Anthropic, и видно только аутентифицированным членам организации-издателя, если только артефакт не [опубликован публично](#control-public-sharing).411Владельцы планов Team и Enterprise управляют артефактами из [параметров администратора claude.ai](https://claude.ai/admin-settings/artifacts). Содержимое артефактов хранится на инфраструктуре, управляемой Anthropic, и видно только аутентифицированным членам организации-издателя и людям, с которыми они его совместно используют, если только артефакт не [опубликован публично](#control-public-sharing).

412 412 

413<h3 id="enable-or-disable-artifacts">413<h3 id="enable-or-disable-artifacts">

414 Включение или отключение артефактов414 Включение или отключение артефактов

415</h3>415</h3>

416 416 

417Чтобы включить или отключить артефакты для всей организации, перейдите в [**Параметры > Claude Code > Возможности**](https://claude.ai/admin-settings/claude-code) и используйте переключатель **Артефакты**. На планах Enterprise с управлением доступом на основе ролей вы можете дополнительно ограничить артефакты определёнными ролями: перейдите в [**Параметры > Роли**](https://claude.ai/admin-settings/roles), отредактируйте роль и установите разрешение **Артефакты** в группе **Claude Code**.417Чтобы включить или отключить артефакты для всей организации, перейдите в [**Organization settings > Artifacts**](https://claude.ai/admin-settings/artifacts) и используйте переключатель **Artifacts**. На планах Enterprise с управлением доступом на основе ролей вы можете дополнительно ограничить артефакты определёнными ролями: перейдите в [**Organization settings > Roles**](https://claude.ai/admin-settings/roles), отредактируйте роль и установите разрешение **Artifacts**.

418 418 

419<h3 id="control-connector-calls-from-artifacts">419<h3 id="control-connector-calls-from-artifacts">

420 Управление вызовами соединителей из артефактов420 Управление вызовами соединителей из артефактов

421</h3>421</h3>

422 422 

423[Вызовы соединителей из артефактов](#pull-live-data-with-mcp-connectors) имеют собственный переключатель, отдельный от переключателя **Артефакты**, который включает или отключает артефакты. Перейдите в [**Параметры > Возможности**](https://claude.ai/admin-settings/capabilities) и используйте переключатель **Включить соединители артефактов**. Один и тот же переключатель управляет вызовами соединителей из артефактов, созданных в беседах claude.ai, поэтому он находится в **Параметры > Возможности**, а не в **Параметры > Claude Code**.423[Вызовы соединителей из артефактов](#pull-live-data-with-mcp-connectors) имеют собственный переключатель, отдельный от переключателя **Artifacts**, который включает или отключает артефакты. Перейдите в [**Organization settings > Capabilities**](https://claude.ai/admin-settings/capabilities) и используйте переключатель **Enable artifact connectors**. Один и тот же переключатель управляет вызовами соединителей из артефактов, созданных в беседах claude.ai.

424 424 

425<h3 id="control-public-sharing">425<h3 id="control-public-sharing">

426 Управление публичным совместным использованием426 Управление публичным совместным использованием

427</h3>427</h3>

428 428 

429Публичное совместное использование отключено по умолчанию на планах Team и Enterprise, поэтому члены могут совместно использовать артефакты только внутри организации, пока владелец его не включит. Чтобы позволить членам публиковать артефакты на публичные ссылки, которые может просматривать любой без входа, перейдите в **Параметры > Claude Code > Возможности** и включите **Внешнее совместное использование** под переключателем **Артефакты**. Отключение его обратно блокирует доступ через существующие публичные ссылки без изменения аудитории каждого артефакта; доступ возобновляется, если вы его снова включите.429Публичное совместное использование отключено по умолчанию на планах Team и Enterprise. Чтобы позволить членам публиковать артефакты на публичные ссылки, которые может просматривать любой без входа, перейдите в [**Organization settings > Artifacts**](https://claude.ai/admin-settings/artifacts) и включите **External sharing** под переключателем **Artifacts**. Отключение его обратно блокирует доступ через существующие публичные ссылки без изменения аудитории каждого артефакта; доступ возобновляется, если вы его снова включите.

430 430 

431<h3 id="set-a-retention-policy">431<h3 id="set-a-retention-policy">

432 Установка политики хранения432 Установка политики хранения

433</h3>433</h3>

434 434 

435Чтобы установить, как долго артефакты хранятся перед автоматическим удалением, перейдите в [**Параметры > Элементы управления данными и конфиденциальностью**](https://claude.ai/admin-settings/data-privacy-controls). Вы можете установить отдельные периоды хранения для артефактов, которые остаются приватными для их автора, и артефактов, которые были общими.435Чтобы установить, как долго артефакты хранятся перед автоматическим удалением, перейдите в [**Organization settings > Data and privacy**](https://claude.ai/admin-settings/data-privacy-controls). Вы можете установить отдельные периоды хранения для артефактов, которые остаются приватными для их автора, и артефактов, которые были совместно использованы.

436 436 

437<h3 id="review-the-audit-log">437<h3 id="review-the-audit-log">

438 Проверка журнала аудита438 Проверка журнала аудита

Details

32 32 

33Чтобы выйти и повторно аутентифицироваться, введите `/logout` в приглашение Claude Code. Выход также сбрасывает состояние первоначальной настройки, поэтому при следующем запуске `claude` вас проведут через вход и настройку снова.33Чтобы выйти и повторно аутентифицироваться, введите `/logout` в приглашение Claude Code. Выход также сбрасывает состояние первоначальной настройки, поэтому при следующем запуске `claude` вас проведут через вход и настройку снова.

34 34 

35Если у вас возникли проблемы с входом, см. [устранение неполадок аутентификации](/docs/ru/troubleshoot-install#login-and-authentication).

36 

37<h3 id="log-in-with-multiple-accounts">

38 Вход с несколькими учетными записями

39</h3>

40 

35Чтобы оставаться в системе с несколькими учетными записями одновременно, например с рабочей и личной учетными записями, дайте каждой учетной записи свой собственный каталог конфигурации. Когда вы запускаете `claude`, установите переменную окружения [`CLAUDE_CONFIG_DIR`](/docs/ru/env-vars#variables) в каталог для учетной записи, которую вы хотите использовать. Каждый каталог имеет свои собственные параметры, историю сеансов и вход claude.ai или API ключ. Например, в Bash или Zsh добавьте этот псевдоним в `~/.bashrc` или `~/.zshrc`, чтобы `claude-work` использовал вашу рабочую учетную запись, а `claude` сохранял вашу личную:41Чтобы оставаться в системе с несколькими учетными записями одновременно, например с рабочей и личной учетными записями, дайте каждой учетной записи свой собственный каталог конфигурации. Когда вы запускаете `claude`, установите переменную окружения [`CLAUDE_CONFIG_DIR`](/docs/ru/env-vars#variables) в каталог для учетной записи, которую вы хотите использовать. Каждый каталог имеет свои собственные параметры, историю сеансов и вход claude.ai или API ключ. Например, в Bash или Zsh добавьте этот псевдоним в `~/.bashrc` или `~/.zshrc`, чтобы `claude-work` использовал вашу рабочую учетную запись, а `claude` сохранял вашу личную:

36 42 

37```bash theme={null}43```bash theme={null}


40 46 

41После открытия нового терминала и первого запуска `claude-work` Claude Code проведет вас через вход и настройку для нового каталога. Отдельные каталоги не разделяют две учетные записи Claude Console [без API ключа](#sign-in-without-an-api-key), потому что Claude Code хранит этот тип входа вне каталога конфигурации.47После открытия нового терминала и первого запуска `claude-work` Claude Code проведет вас через вход и настройку для нового каталога. Отдельные каталоги не разделяют две учетные записи Claude Console [без API ключа](#sign-in-without-an-api-key), потому что Claude Code хранит этот тип входа вне каталога конфигурации.

42 48 

43Если у вас возникли проблемы с входом, см. [устранение неполадок аутентификации](/docs/ru/troubleshoot-install#login-and-authentication).

44 

45<h2 id="set-up-team-authentication">49<h2 id="set-up-team-authentication">

46 Настройка аутентификации команды50 Настройка аутентификации команды

47</h2>51</h2>

Details

163 Полезная нагрузка поступает в контекст Claude как тег `<channel>`:163 Полезная нагрузка поступает в контекст Claude как тег `<channel>`:

164 164 

165 ```text theme={null}165 ```text theme={null}

166 <channel source="webhook" path="/" method="POST">build failed on main: https://ci.example.com/run/1234</channel>166 <channel source="webhook" path="/" method="POST">

167 build failed on main: https://ci.example.com/run/1234

168 </channel>

167 ```169 ```

168 170 

169 Ваш терминал отображает событие как однострочное резюме, `← webhook: build failed on main: https://ci.example.com/run/1234`, а не как необработанный тег. Затем вы увидите, как Claude начинает отвечать: читая файлы, выполняя команды или что-то ещё, что требует сообщение. Это односторонний канал, поэтому Claude действует в вашей сессии, но ничего не отправляет обратно через webhook. Чтобы добавить ответы, см. [Expose a reply tool](#expose-a-reply-tool).171 Ваш терминал отображает событие как однострочное резюме, `← webhook: build failed on main: https://ci.example.com/run/1234`, а не как необработанный тег. Затем вы увидите, как Claude начинает отвечать: читая файлы, выполняя команды или что-то ещё, что требует сообщение. Это односторонний канал, поэтому Claude действует в вашей сессии, но ничего не отправляет обратно через webhook. Чтобы добавить ответы, см. [Expose a reply tool](#expose-a-reply-tool).

Details

362 362 

363Машины, которые только запускают Claude Desktop, нуждаются в нём. Claude Desktop применяет список моделей и список отключённых инструментов к встроенным сеансам сам, но список разрешённых исходящих соединений достигает их только как родительские параметры, в форме правил доменов `WebFetch` и правил сетевой изоляции. Без согласия эти сеансы работают без ограничения исходящих соединений, и ничто вас не предупредит. Шлюз по-прежнему отклоняет запросы вывода для моделей, которые политика не предоставляет.363Машины, которые только запускают Claude Desktop, нуждаются в нём. Claude Desktop применяет список моделей и список отключённых инструментов к встроенным сеансам сам, но список разрешённых исходящих соединений достигает их только как родительские параметры, в форме правил доменов `WebFetch` и правил сетевой изоляции. Без согласия эти сеансы работают без ограничения исходящих соединений, и ничто вас не предупредит. Шлюз по-прежнему отклоняет запросы вывода для моделей, которые политика не предоставляет.

364 364 

365Список разрешённых маркетплейсов плагинов также достигает встроенных сеансов только как родительские параметры. Когда вы отключаете пользовательские маркетплейсы плагинов в управляемой конфигурации Claude Desktop, Claude Desktop 2.16120.0 или позже скрывает маркетплейсы, которые ваша организация не предоставила, и отказывает в установках из них. Чтобы остановить встроенные сеансы от загрузки плагинов, уже установленных из этих маркетплейсов, он отправляет им список `strictKnownMarketplaces` как родительские параметры. Без согласия Claude Code игнорирует этот список, и эти плагины продолжают загружаться.

366 

365Машины, где разработчики входят через `/login`, не нуждаются в нём; каждый сеанс Claude Code получает свою политику из шлюза.367Машины, где разработчики входят через `/login`, не нуждаются в нём; каждый сеанс Claude Code получает свою политику из шлюза.

366 368 

367Флоты, чьи [`policyHelper`](/docs/ru/settings-reference#policyhelper) предоставляют управляемые параметры, не могут использовать это: Claude Code никогда не объединяет родительские параметры на этих флотах, потому что он читает управляемые параметры только из выходных данных помощника.369Флоты, чьи [`policyHelper`](/docs/ru/settings-reference#policyhelper) предоставляют управляемые параметры, не могут использовать это: Claude Code никогда не объединяет родительские параметры на этих флотах, потому что он читает управляемые параметры только из выходных данных помощника.


457* **`forceLoginOrgUUID`**: Claude Code соблюдает значение, предоставленное родителем, когда источник администратора с наивысшим приоритетом не устанавливает UUID организации. Вход в шлюз не проверяет этот ключ. UUID организации в источнике администратора с наивысшим приоритетом блокирует значение родителя и является тем, который Claude Code применяет.459* **`forceLoginOrgUUID`**: Claude Code соблюдает значение, предоставленное родителем, когда источник администратора с наивысшим приоритетом не устанавливает UUID организации. Вход в шлюз не проверяет этот ключ. UUID организации в источнике администратора с наивысшим приоритетом блокирует значение родителя и является тем, который Claude Code применяет.

458* **`allowedMcpServers`**: Claude Code соблюдает список разрешённых, предоставленный родителем, когда источник администратора с наивысшим приоритетом не устанавливает один. `allowManagedMcpServersOnly` не блокирует его, потому что блокировка применяет список, который выигрывает, как управляемое значение, включая список, предоставленный родителем, когда источник администратора с наивысшим приоритетом не устанавливает один. Список в источнике администратора с наивысшим приоритетом блокирует список родителя и является списком, который Claude Code применяет, поэтому установите `allowedMcpServers` там, рядом с блокировкой. До v2.1.223 значение для любого ключа в любом источнике администратора блокировало значение родителя.460* **`allowedMcpServers`**: Claude Code соблюдает список разрешённых, предоставленный родителем, когда источник администратора с наивысшим приоритетом не устанавливает один. `allowManagedMcpServersOnly` не блокирует его, потому что блокировка применяет список, который выигрывает, как управляемое значение, включая список, предоставленный родителем, когда источник администратора с наивысшим приоритетом не устанавливает один. Список в источнике администратора с наивысшим приоритетом блокирует список родителя и является списком, который Claude Code применяет, поэтому установите `allowedMcpServers` там, рядом с блокировкой. До v2.1.223 значение для любого ключа в любом источнике администратора блокировало значение родителя.

459* **`availableModels`**: Claude Code соблюдает список моделей, предоставленный родителем, когда выигрывающий управляемый источник не устанавливает один. Если ваш флот ограничивает модели, установите `availableModels` в выигрывающем источнике.461* **`availableModels`**: Claude Code соблюдает список моделей, предоставленный родителем, когда выигрывающий управляемый источник не устанавливает один. Если ваш флот ограничивает модели, установите `availableModels` в выигрывающем источнике.

460* **`strictKnownMarketplaces`**: Claude Code соблюдает список разрешённых маркетплейсов плагинов, предоставленный родителем, когда выигрывающий управляемый источник не устанавливает один. Если ваш флот ограничивает маркетплейсы, установите `strictKnownMarketplaces` в выигрывающем источнике. Требует Claude Code v2.1.282 или позже.462* **`strictKnownMarketplaces`**: Claude Code соблюдает список разрешённых маркетплейсов плагинов, предоставленный родителем, когда выигрывающий управляемый источник не устанавливает один. Claude Desktop 2.16120.0 или позже отправляет один, когда его управляемая конфигурация отключает пользовательские маркетплейсы плагинов. Если ваш флот ограничивает маркетплейсы, установите `strictKnownMarketplaces` в выигрывающем источнике. Требует Claude Code v2.1.282 или позже.

461* **`blockedMarketplaces`**: список блокировки маркетплейсов, предоставленный родителем, проходит и добавляется к любому списку блокировки, который устанавливает управляемый источник, так как список блокировки может только дополнительно ограничить. Требует Claude Code v2.1.282 или позже.463* **`blockedMarketplaces`**: список блокировки маркетплейсов, предоставленный родителем, проходит и добавляется к любому списку блокировки, который устанавливает управляемый источник, так как список блокировки может только дополнительно ограничить. Требует Claude Code v2.1.282 или позже.

462* **`strictPluginOnlyCustomization`**: этот ключ проходит фильтр независимо от любой блокировки, и он заставляет Claude Code игнорировать собственную настройку разработчика, включая защитные hooks. Никакая блокировка не блокирует его.464* **`strictPluginOnlyCustomization`**: этот ключ проходит фильтр независимо от любой блокировки, и он заставляет Claude Code игнорировать собственную настройку разработчика, включая защитные hooks. Никакая блокировка не блокирует его.

463 465 

Details

303| - | - | - |303| - | - | - |

304| Inference (prompts, completions) | CLI → шлюз → ваш upstream | Только если API Anthropic — это настроенный upstream |304| Inference (prompts, completions) | CLI → шлюз → ваш upstream | Только если API Anthropic — это настроенный upstream |

305| Телеметрия (метрики OTLP, плюс [опциональные логи и трассировки](/docs/ru/claude-apps-gateway-config#telemetry)) | CLI → шлюз → ваш сборщик | Никогда |305| Телеметрия (метрики OTLP, плюс [опциональные логи и трассировки](/docs/ru/claude-apps-gateway-config#telemetry)) | CLI → шлюз → ваш сборщик | Никогда |

306| Идентификация (email, groups, sub) | IdP → шлюз → JWT → CLI; CLI штампует это на экспортах OTLP. Если вы включите [`forward_user_identity`](/docs/ru/claude-apps-gateway-config#per-user-identity-headers-for-a-proxy-you-run), шлюз также отправляет email разработчика и subject IdP в качестве заголовков вашему прокси | Никогда |306| Идентификация (email, groups, sub) | IdP → шлюз → CLI; CLI штампует это на экспортах OTLP. Если вы включите [`forward_user_identity`](/docs/ru/claude-apps-gateway-config#per-user-identity-headers-for-a-proxy-you-run), шлюз также отправляет email разработчика и subject IdP в качестве заголовков вашему прокси | Никогда |

307| Управляемые параметры | Ваш YAML шлюза → CLI | Никогда |307| Управляемые параметры | Ваш YAML шлюза → CLI | Никогда |

308| Журнал аудита | Stderr шлюза → ваш агрегатор | Никогда |308| Журнал аудита | Stderr шлюза → ваш агрегатор | Никогда |

309 309 

Details

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

515</h2>515</h2>

516 516 

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

518 518 

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

520 520 

521Телеметрия клиента отключена по умолчанию; конфигурирование `telemetry.forward_to` — это то, что включает её для подключённых разработчиков, и каждый интерактивный клиент показывает диалог одобрения безопасности один раз для отправленных параметров, как описано в [справочнике конфигурации](/docs/ru/claude-apps-gateway-config#telemetry). На AWS каждый сигнал отображается на пункт назначения следующим образом.521Телеметрия клиента отключена по умолчанию; конфигурирование `telemetry.forward_to` — это то, что включает её для подключённых разработчиков, и каждый интерактивный клиент показывает диалог одобрения безопасности для отправленных параметров, как описано в [справочнике конфигурации](/docs/ru/claude-apps-gateway-config#telemetry). На AWS каждый сигнал отображается на место назначения следующим образом.

522 522 

523<h3 id="client-metrics-logs-and-traces">523<h3 id="client-metrics-logs-and-traces">

524 Метрики, журналы и трассировки клиента524 Метрики, логи и трассировки клиента

525</h3>525</h3>

526 526 

527Укажите `telemetry.forward_to` на сборщик OpenTelemetry, такой как [AWS Distro for OpenTelemetry (ADOT) collector](https://aws-otel.github.io/), и экспортируйте оттуда в Amazon CloudWatch, Amazon Managed Service for Prometheus или любой backend OTLP.527Направьте `telemetry.forward_to` на сборщик OpenTelemetry, такой как [AWS Distro for OpenTelemetry (ADOT) collector](https://aws-otel.github.io/), и экспортируйте оттуда в Amazon CloudWatch, Amazon Managed Service for Prometheus или любой бэкенд OTLP.

528 528 

529Запустите сборщик как его собственный внутренний сервис, доступный через `https://`; [справочник `telemetry`](/docs/ru/claude-apps-gateway-config#telemetry) охватывает исключение loopback и `CLAUDE_GATEWAY_ALLOW_LOOPBACK`.529Запустите сборщик как собственный внутренний сервис, доступный через `https://`; [справочник `telemetry`](/docs/ru/claude-apps-gateway-config#telemetry) охватывает исключение обратного цикла и `CLAUDE_GATEWAY_ALLOW_LOOPBACK`.

530 530 

531<h3 id="gateway-logs">531<h3 id="gateway-logs">

532 Журналы Gateway532 Логи шлюза

533</h3>533</h3>

534 534 

535На ECS Fargate, никакой дополнительной установки: драйвер `awslogs` доставляет stderr gateway, который содержит события аудита и операционные журналы, в группу журналов `/ecs/claude-gateway`, созданную выше. На EKS, журналы подов не достигают CloudWatch по умолчанию, поэтому аудит теряется до тех пор, пока вы не установите сбор журналов: надстройка Amazon CloudWatch Observability с включённым захватом журналов контейнера или DaemonSet Fluent Bit. На любом треке запросите журналы с помощью CloudWatch Logs Insights и управляйте сигналами тревоги из фильтров метрик.535На ECS Fargate дополнительная настройка не требуется: драйвер `awslogs` доставляет stderr шлюза, который содержит его события аудита и операционные логи, в группу логов `/ecs/claude-gateway`, созданную выше. На EKS логи подов по умолчанию не попадают в CloudWatch, поэтому журнал аудита теряется до тех пор, пока вы не установите сбор логов: надстройка Amazon CloudWatch Observability с включённым захватом логов контейнера или DaemonSet Fluent Bit. В любом случае запрашивайте логи с помощью CloudWatch Logs Insights и управляйте сигналами тревоги из фильтров метрик.

536 536 

537<h3 id="container-metrics">537<h3 id="container-metrics">

538 Метрики контейнера538 Метрики контейнера

539</h3>539</h3>

540 540 

541Включите Container Insights на кластере с `aws ecs update-cluster-settings --cluster claude-gateway --settings name=containerInsights,value=enabled` для CPU, памяти и сети на задачу. На EKS установите надстройку Amazon CloudWatch Observability.541Включите Container Insights на кластере с помощью `aws ecs update-cluster-settings --cluster claude-gateway --settings name=containerInsights,value=enabled` для CPU, памяти и сети для каждой задачи. На EKS установите надстройку Amazon CloudWatch Observability.

542 542 

543<h3 id="spend">543<h3 id="spend">

544 Расходы544 Расходы

545</h3>545</h3>

546 546 

547Телеметрия показывает использование после факта; [ограничения расходов](/docs/ru/claude-apps-gateway-spend-limits) — это живой вид gateway на разработчика и принуждение поверх общего учётного данные upstream.547Телеметрия показывает использование постфактум; [лимиты расходов](/docs/ru/claude-apps-gateway-spend-limits) — это живое представление и принудительное применение шлюза для каждого разработчика.

548 

549<h2 id="cost-attribution">

550 Атрибуция затрат

551</h2>

552 

553Шлюз подписывает каждый запрос Bedrock своим собственным принципалом, ролью задачи ECS или ролью IRSA EKS, поэтому по умолчанию AWS видит все эти расходы под одним принципалом IAM. Есть два способа разделить это в собственных данных выставления счетов AWS, и они комбинируются.

554 

555<h3 id="per-developer-with-assume_role">

556 Per developer с `assume_role`

557</h3>

558 

559Создайте вторую роль IAM, которая содержит разрешения Bedrock и доверяет принципалу шлюза, предоставьте этому принципалу `sts:AssumeRole` на ней и установите [`assume_role`](/docs/ru/claude-apps-gateway-config#per-developer-aws-cost-attribution) с `session_name: email` на восходящем потоке Bedrock. Шлюз затем принимает эту роль один раз в час на разработчика с именем сеанса, установленным на их адрес электронной почты, и подписывает их запросы результатом. Требуется шлюз, работающий на Claude Code v2.1.281 или позже. Роль также может находиться в другой учетной записи AWS: см. [Bedrock в другой учетной записи AWS](/docs/ru/claude-apps-gateway-config#bedrock-in-another-aws-account). В Terraform, рядом с ролью задачи в [пакете Terraform](#terraform-reference):

560 

561```hcl theme={null}

562resource "aws_iam_role" "bedrock_user" {

563 name = "claude-gateway-bedrock-user"

564 assume_role_policy = jsonencode({

565 Version = "2012-10-17"

566 Statement = [{ Effect = "Allow", Action = "sts:AssumeRole", Principal = { AWS = aws_iam_role.task.arn } }]

567 })

568}

569resource "aws_iam_role_policy" "bedrock_user_invoke" { # same Bedrock policy as the task role's

570 role = aws_iam_role.bedrock_user.id

571 policy = aws_iam_role_policy.bedrock_invoke.policy

572}

573resource "aws_iam_role_policy" "task_assume_bedrock_user" {

574 role = aws_iam_role.task.id

575 policy = jsonencode({

576 Version = "2012-10-17"

577 Statement = [{ Effect = "Allow", Action = "sts:AssumeRole", Resource = aws_iam_role.bedrock_user.arn }]

578 })

579}

580```

581 

582Когда установлен `assume_role`, шлюз подписывает каждый вызов Bedrock, включая бесплатный вызов `CountTokens` для измерения расходов, учетными данными предполагаемой роли, поэтому принципалу шлюза требуется собственная политика Bedrock только для восходящего потока без `assume_role`.

583 

584Поскольку шлюз вызывает STS во время запроса, приватные подсети должны иметь путь к `sts.<region>.amazonaws.com`. NAT-шлюз из предварительных условий предоставляет один, как и конечная точка VPC интерфейса STS, которая отвечает на этот хост-имя. Каждый активный разработчик стоит один вызов STS в час на реплику шлюза.

585 

586Запросы каждого разработчика достигают AWS как принципал `arn:aws:sts::<account>:assumed-role/<role>/<email>`. Чтобы увидеть расходы на принципала, используйте экспорт выставления счетов, который включает данные принципала IAM; страница AWS [IAM principal cost allocation](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/iam-principal-cost-allocation.html) охватывает, как это включить и какие инструменты выставления счетов это показывают.

587 

588<h3 id="per-team-with-application-inference-profiles">

589 Per team с application inference profiles

590</h3>

591 

592Этот маршрут использует только разделы [`models`](/docs/ru/claude-apps-gateway-config#models) и [`managed`](/docs/ru/claude-apps-gateway-config#managed). Создайте один Bedrock [application inference profile](https://docs.aws.amazon.com/bedrock/latest/userguide/inference-profiles-create.html) на команду и модель, пометьте каждый профиль командой и активируйте эту метку как метку распределения затрат. Затем дайте каждой команде свой идентификатор модели в `gateway.yaml` и привяжите каждую группу IdP к идентификаторам своей команды:

593 

594```yaml theme={null}

595models:

596 - id: platform-claude-opus-4-8

597 upstream_model:

598 bedrock: arn:aws:bedrock:us-east-1:123456789012:application-inference-profile/abc123

599 - id: data-claude-opus-4-8

600 upstream_model:

601 bedrock: arn:aws:bedrock:us-east-1:123456789012:application-inference-profile/def456

602managed:

603 policies:

604 - match: {groups: [team-platform]}

605 cli: {availableModels: [platform-claude-opus-4-8], enforceAvailableModels: true}

606 - match: {groups: [team-data]}

607 cli: {availableModels: [data-claude-opus-4-8], enforceAvailableModels: true}

608 - match: {}

609 cli: {availableModels: [claude-opus-4-8, claude-sonnet-4-6], enforceAvailableModels: true}

610```

611 

612Скажите разработчикам в закрепленной команде запустить Claude Code с `--model platform-claude-opus-4-8`, используя идентификатор своей команды, потому что сеанс, запущенный без него, запускает модель по умолчанию, которую шлюз отказывает для них.

613 

614Шлюз применяет `availableModels` на каждый запрос, не только в средстве выбора модели, и AWS группирует расходы по метке, которую вы активировали. Без catch-all `match: {}`, разработчик, который не соответствует никакой политике, получает каждую модель в каталоге и может выставить счет за профиль любой команды.

615 

616Затраты: конфигурация растет с командами, умноженными на модели, и роль, которая подписывает запросы Bedrock этого восходящего потока, также должна быть разрешена вызывать ARN `application-inference-profile/*`. Эта роль является принципалом шлюза, или с `assume_role` роль, которую он принимает. См. [`pricing`](/docs/ru/claude-apps-gateway-config#pricing) для того, как счетчик расходов шлюза оценивает эти идентификаторы.

548 617 

549<h2 id="next-steps">618<h2 id="next-steps">

550 Следующие шаги619 Следующие шаги

Details

8 8 

9Лимиты расходов ограничивают, сколько каждый разработчик может потратить через ваш [Claude apps gateway](/docs/ru/claude-apps-gateway) в течение дня, недели или месяца. Когда разработчик превышает свой лимит, шлюз возвращает `429` при следующем запросе и блокирует его до сброса периода или пока администратор не повысит лимит. Используйте лимиты расходов, чтобы установить потолок расходов для каждого разработчика, группы или всей организации на общем учетном данном.9Лимиты расходов ограничивают, сколько каждый разработчик может потратить через ваш [Claude apps gateway](/docs/ru/claude-apps-gateway) в течение дня, недели или месяца. Когда разработчик превышает свой лимит, шлюз возвращает `429` при следующем запросе и блокирует его до сброса периода или пока администратор не повысит лимит. Используйте лимиты расходов, чтобы установить потолок расходов для каждого разработчика, группы или всей организации на общем учетном данном.

10 10 

11Claude apps gateway пересылает все вычисления через одно общее учетное данное вышестоящего провайдера, поэтому счет вашего провайдера относит все к этому учетному данному, а не к отдельным разработчикам. Без лимитов на разработчика один неконтролируемый флот агентов может потратить всю приверженность организации. Лимиты расходов — это представление шлюза на уровне разработчика и автоматический выключатель поверх этого общего счета.11По умолчанию Claude apps gateway пересылает все вычисления через одно общее учетное данное вышестоящего провайдера, поэтому счет вашего провайдера относит все к этому учетному данному, а не к отдельным разработчикам. На Amazon Bedrock [атрибуция затрат AWS для каждого разработчика](/docs/ru/claude-apps-gateway-config#per-developer-aws-cost-attribution) изменяет это. Без лимитов на разработчика один неконтролируемый флот агентов может потратить всю приверженность организации. Лимиты расходов — это представление шлюза на уровне разработчика и автоматический выключатель поверх этого общего счета.

12 12 

13<h2 id="set-a-cap">13<h2 id="set-a-cap">

14 Установка лимита14 Установка лимита

Details

150* Каталог должен быть git репозиторием с по крайней мере одним коммитом150* Каталог должен быть git репозиторием с по крайней мере одним коммитом

151* Упакованный репозиторий должен быть менее 100 МБ. Большие репозитории переходят к упаковке только текущей ветки, затем к одному сжатому снимку рабочего дерева и не пройдут только если снимок всё ещё слишком большой151* Упакованный репозиторий должен быть менее 100 МБ. Большие репозитории переходят к упаковке только текущей ветки, затем к одному сжатому снимку рабочего дерева и не пройдут только если снимок всё ещё слишком большой

152* Неотслеживаемые файлы не включены; запустите `git add` на файлы, которые вы хотите, чтобы облачная сессия видела152* Неотслеживаемые файлы не включены; запустите `git add` на файлы, которые вы хотите, чтобы облачная сессия видела

153* На macOS, Linux и WSL Claude Code отказывает в загрузке, когда он не может следовать параметру git, который влияет на то, какие правила атрибутов применяются к вашим файлам, такие как `core.attributesFile`, установленный в включённом файле конфигурации. [Сообщение об отказе](/docs/ru/errors#the-repository-upload-cant-follow-a-git-setting) называет параметр и исправление

153* Сессии, созданные из пакета, могут отправляться обратно на удалённый GitHub только когда ваше [подключение GitHub](#github-authentication-options) имеет доступ на отправку к этому репозиторию154* Сессии, созданные из пакета, могут отправляться обратно на удалённый GitHub только когда ваше [подключение GitHub](#github-authentication-options) имеет доступ на отправку к этому репозиторию

154 155 

155<h3 id="send-follow-ups-from-the-cli">156<h3 id="send-follow-ups-from-the-cli">

Details

1569| `feedback/drafts/` | Очередь [составленного Claude отзыва](/docs/ru/tools-reference#sendfeedback-tool-behavior), ожидающего вашего рассмотрения в `/feedback`. Очищается после `cleanupPeriodDays` или 30 дней, в зависимости от того, что меньше. Когда очередь достигает лимита в 10 черновиков, Claude Code удаляет самый старый черновик, чтобы освободить место. |1569| `feedback/drafts/` | Очередь [составленного Claude отзыва](/docs/ru/tools-reference#sendfeedback-tool-behavior), ожидающего вашего рассмотрения в `/feedback`. Очищается после `cleanupPeriodDays` или 30 дней, в зависимости от того, что меньше. Когда очередь достигает лимита в 10 черновиков, Claude Code удаляет самый старый черновик, чтобы освободить место. |

1570| `usage-data/` | `report.html` и копии отчётов с временными метками, написанные [`/insights`](/docs/ru/costs#analyze-your-usage-patterns), плюс кэшированные данные анализа для каждого сеанса, используемые для их построения |1570| `usage-data/` | `report.html` и копии отчётов с временными метками, написанные [`/insights`](/docs/ru/costs#analyze-your-usage-patterns), плюс кэшированные данные анализа для каждого сеанса, используемые для их построения |

1571| `skills/.trash/`, `plugins/.trash/` | [Skills](/docs/ru/skills#how-synced-skills-behave) и [plugins](/docs/ru/plugins/loading#synced-plugins), которые синхронизация claude.ai удалила, например после отключения одного на claude.ai или остановки синхронизации. Файлы остаются здесь, чтобы вы могли их восстановить, пока очистка их не удалит |1571| `skills/.trash/`, `plugins/.trash/` | [Skills](/docs/ru/skills#how-synced-skills-behave) и [plugins](/docs/ru/plugins/loading#synced-plugins), которые синхронизация claude.ai удалила, например после отключения одного на claude.ai или остановки синхронизации. Файлы остаются здесь, чтобы вы могли их восстановить, пока очистка их не удалит |

1572| `plugins/installed_plugins.set-aside.<date>.<hash>.json`, `plugins/installed_plugins.unreadable.<date>.<hash>.kept` | Датированные копии, которые Claude Code создаёт перед перезаписью [`installed_plugins.json`](/docs/ru/plugins/loading#find-plugins-on-disk): записи об установке, которые он удалил, и содержимое файла, который он не смог прочитать. |

1572| `todos/`, `statsig/`, `logs/` | Устаревшие каталоги из более старых версий. Больше не записываются. Очистка удаляет их содержимое, а затем пустой каталог. |1573| `todos/`, `statsig/`, `logs/` | Устаревшие каталоги из более старых версий. Больше не записываются. Очистка удаляет их содержимое, а затем пустой каталог. |

1573 1574 

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


1715| `~/.claude/policy-limits.json` | Ничего. Обновляется автоматически. |1716| `~/.claude/policy-limits.json` | Ничего. Обновляется автоматически. |

1716| `~/.claude/tasks/` | Списки задач, которые возобновлённый сеанс подхватит |1717| `~/.claude/tasks/` | Списки задач, которые возобновлённый сеанс подхватит |

1717| `~/.claude/skills/.trash/`, `~/.claude/plugins/.trash/` | Возможность восстановления [синхронизированных skills](/docs/ru/skills#how-synced-skills-behave) и [синхронизированных plugins](/docs/ru/plugins/loading#synced-plugins), которые Claude Code удалил |1718| `~/.claude/skills/.trash/`, `~/.claude/plugins/.trash/` | Возможность восстановления [синхронизированных skills](/docs/ru/skills#how-synced-skills-behave) и [синхронизированных plugins](/docs/ru/plugins/loading#synced-plugins), которые Claude Code удалил |

1719| `~/.claude/plugins/installed_plugins.set-aside.<date>.<hash>.json`, `~/.claude/plugins/installed_plugins.unreadable.<date>.<hash>.kept` | Копии записей об установке плагинов, которые Claude Code удалил, или содержимое файла, который он не смог прочитать. Ничто их не читает обратно |

1718| `~/.claude/debug/`, `~/.claude/plans/`, `~/.claude/session-env/`, `~/.claude/shell-snapshots/`, `~/.claude/backups/` | Ничего видимого пользователю |1720| `~/.claude/debug/`, `~/.claude/plans/`, `~/.claude/session-env/`, `~/.claude/shell-snapshots/`, `~/.claude/backups/` | Ничего видимого пользователю |

1719| `~/.claude/todos/`, `~/.claude/statsig/`, `~/.claude/logs/`, `~/.claude/image-cache/` | Ничего. Устаревшие каталоги, не записываемые текущими версиями. |1721| `~/.claude/todos/`, `~/.claude/statsig/`, `~/.claude/logs/`, `~/.claude/image-cache/` | Ничего. Устаревшие каталоги, не записываемые текущими версиями. |

1720 1722 

claude-projects.md +26 −12

Details

4 4 

5# Позвольте Claude координировать текущую работу с помощью Projects5# Позвольте Claude координировать текущую работу с помощью Projects

6 6 

7> Предоставьте Claude набор связанной работы в одном разговоре и позвольте ему координировать параллельные облачные сеансы, которые совместно используют репозитории, инструкции и память.7> Предоставьте Claude набор связанной работы в одном разговоре и позвольте ему запускать их как параллельные облачные сеансы, которые совместно используют репозитории, инструкции и память.

8 8 

9<Note>9<Note>

10 Projects находятся в публичной бета-версии на планах Pro и Max и постепенно развертываются, начиная с аккаунтов, которые использовали [облачные сеансы](/docs/ru/claude-code-on-the-web) и не имеют существующих проектов в чате claude.ai или Cowork. Они еще недоступны на планах Team и Enterprise. Если **Projects** не отображается на боковой панели на [claude.ai/code](https://claude.ai/code) или на вкладке Code [настольного приложения](/docs/ru/desktop), развертывание еще не достигло вашего аккаунта, и вы можете [присоединиться к списку ожидания](https://claude.com/form/projects). [Запуск агентов параллельно](/docs/ru/agents) содержит список того, что вы можете использовать в то время.10 Projects находятся в публичной бета-версии на планах Pro и Max и постепенно развертываются, начиная с аккаунтов, которые использовали [облачные сеансы](/docs/ru/claude-code-on-the-web) и не имеют существующих проектов в чате claude.ai или Cowork. Они еще недоступны на планах Team и Enterprise. Если **Projects** не отображается на боковой панели на [claude.ai/code](https://claude.ai/code) или на вкладке Code [настольного приложения](/docs/ru/desktop), развертывание еще не достигло вашего аккаунта, и вы можете [присоединиться к списку ожидания](https://claude.com/form/projects). [Запуск агентов параллельно](/docs/ru/agents) содержит список того, что вы можете использовать в то время.


80Вы создаете и используете проекты в [claude.ai/code](https://claude.ai/code), на вкладке Code настольного приложения или в мобильном приложении Claude для [iOS](https://apps.apple.com/us/app/claude-by-anthropic/id6473753684) и [Android](https://play.google.com/store/apps/details?id=com.anthropic.claude). В браузере и настольном приложении есть два способа начать проект:80Вы создаете и используете проекты в [claude.ai/code](https://claude.ai/code), на вкладке Code настольного приложения или в мобильном приложении Claude для [iOS](https://apps.apple.com/us/app/claude-by-anthropic/id6473753684) и [Android](https://play.google.com/store/apps/details?id=com.anthropic.claude). В браузере и настольном приложении есть два способа начать проект:

81 81 

82* **С нуля**, когда вы знаете поток работы, который хотите запустить в Claude: откройте диалог **New project** и назовите его. [Запуск нового проекта с нуля](#start-a-new-project-from-scratch) проходит через диалог.82* **С нуля**, когда вы знаете поток работы, который хотите запустить в Claude: откройте диалог **New project** и назовите его. [Запуск нового проекта с нуля](#start-a-new-project-from-scratch) проходит через диалог.

83* **Из облачного сеанса, который уже выполняет работу**: выберите **Continue as a project** из меню этого сеанса, и Claude предлагает настройку проекта на основе того, что делал сеанс. См. [Запуск из существующего облачного сеанса](#start-from-an-existing-cloud-session).83* **Из облачного сеанса, который уже выполняет работу**: выберите **Continue as project** из меню этого сеанса, и Claude предлагает настройку проекта на основе того, что делал сеанс. См. [Запуск из существующего облачного сеанса](#start-from-an-existing-cloud-session).

84 84 

85В любом случае сначала [проверьте предварительные условия](#check-the-prerequisites).85В любом случае сначала [проверьте предварительные условия](#check-the-prerequisites).

86 86 


131 Запуск из существующего облачного сеанса131 Запуск из существующего облачного сеанса

132</h3>132</h3>

133 133 

134Если у вас уже есть облачный сеанс, выполняющий работу, которая принадлежит проекту, откройте меню сеанса на боковой панели и выберите **Continue as a project** или **Move to project**:134Если у вас уже есть облачный сеанс, выполняющий работу, которая принадлежит проекту, откройте меню сеанса на боковой панели и выберите **Continue as project** или **Move to project**:

135 135 

136* **Continue as a project** создает новый проект с названием сеанса и открывает его. Claude читает сеанс и публикует **Setup recommendations** в разговоре для вашего подтверждения. Исходный сеанс остается в вашем списке сеансов, и если он был в середине хода, он продолжает работу, поэтому остановите его самостоятельно, если вы не хотите, чтобы оба работали одновременно. Если вы используете баннер **Set up project**, который может появиться над полем сообщения облачного сеанса, результат тот же, за исключением того, что работающий ход сеанса останавливается после открытия проекта.136* **Continue as project** создает новый проект с названием сеанса и открывает его. Claude читает сеанс и публикует **Setup recommendations** в разговоре для вашего подтверждения. Исходный сеанс остается в вашем списке сеансов, и если он был в середине хода, он продолжает работу, поэтому остановите его самостоятельно, если вы не хотите, чтобы оба работали одновременно. Если вы используете баннер **Set up project**, который может появиться над полем сообщения облачного сеанса, результат тот же, за исключением того, что работающий ход сеанса останавливается после открытия проекта.

137* **Move to project** переносит работу сеанса в существующий проект. Он публикует сообщение в разговоре этого проекта, прося Claude прочитать сеанс и продолжить с того, где он остановился, и новая работа продолжается в собственных потоках проекта. Исходный сеанс остается в вашем списке сеансов, без изменений.137* **Move to project** переносит работу сеанса в существующий проект. Он публикует сообщение в разговоре этого проекта, прося Claude прочитать сеанс и продолжить с того, где он остановился, и новая работа продолжается в собственных потоках проекта. Исходный сеанс остается в вашем списке сеансов, без изменений.

138 138 

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

140 

139<h3 id="set-up-github-access">141<h3 id="set-up-github-access">

140 Настройка доступа GitHub142 Настройка доступа GitHub

141</h3>143</h3>


275 277 

276Потоки работают в [auto mode](/docs/ru/permission-modes#eliminate-prompts-with-auto-mode), когда модель потока это поддерживает, поэтому большинство вызовов инструментов работают без вашего запроса. Когда потоку нужно ваше одобрение, подсказка находится внутри этого потока и поток ждет, пока вы ответите там. Сказание Claude в разговоре проекта идти дальше не достигает его.278Потоки работают в [auto mode](/docs/ru/permission-modes#eliminate-prompts-with-auto-mode), когда модель потока это поддерживает, поэтому большинство вызовов инструментов работают без вашего запроса. Когда потоку нужно ваше одобрение, подсказка находится внутри этого потока и поток ждет, пока вы ответите там. Сказание Claude в разговоре проекта идти дальше не достигает его.

277 279 

278Каждое одобрение охватывает эту подсказку или остаток этого потока, если вы выберете более широкий вариант. Чтобы позволить каждому потоку запускать определенные команды без запроса или блокировать некоторые, добавьте [правила разрешений](/docs/ru/permissions) в `.claude/settings.json` репозитория. Потоки применяют их только в проекте с одним репозиторием; см. [Что потоки берут из ваших репозиториев](#what-threads-pick-up-from-your-repositories).280Каждое одобрение охватывает эту подсказку или остаток этого потока, если вы выберете более широкий вариант. Чтобы позволить каждому потоку запускать определенные команды без запроса или блокировать некоторые, добавьте [правила разрешений](/docs/ru/permissions) в `.claude/settings.json` репозитория. Потоки применяют их только в проекте с одним репозиторием; см. [Что потоки берут из ваших репозиториев](#what-threads-pick-up-from-your-repositories). В проекте с несколькими репозиториями правила разрешений ни одного репозитория не достигают облачный поток, поэтому вы полагаетесь на auto mode и на одобрения, которые вы даете внутри каждого потока.

279 281 

280<h3 id="run-a-thread-on-your-own-computer">282<h3 id="run-a-thread-on-your-own-computer">

281 Запустите поток на своем компьютере283 Запустите поток на своем компьютере


283 285 

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

285 287 

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

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

288* Работает только пока этот компьютер включен с включенным Remote Control290* Работает только пока этот компьютер включен с включенным Remote Control

289 291 


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

293 295 

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

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

296 </Step>298 </Step>

297 299 

298 <Step title="Попросите задачу с Work locally">300 <Step title="Попросите задачу с Work locally">


300 </Step>302 </Step>

301 303 

302 <Step title="Разрешите это на карточке">304 <Step title="Разрешите это на карточке">

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

304 </Step>306 </Step>

305</Steps>307</Steps>

306 308 


320| :- | :- | :- |322| :- | :- | :- |

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

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

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

324 326 

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

326 328 


364 366 

365Для проекта, охватывающего много репозиториев, например одну функцию с кодом сервера, веб, мобильного и рабочего стола, добавьте один или два репозитория, которые почти каждая задача касается, и назовите остальные в [инструкциях проекта](#write-project-instructions), чтобы Claude знал, где находится остальной код. Облачные потоки затем начинают маленькими и вытягивают другие репозитории только для задач, которые их требуют.367Для проекта, охватывающего много репозиториев, например одну функцию с кодом сервера, веб, мобильного и рабочего стола, добавьте один или два репозитория, которые почти каждая задача касается, и назовите остальные в [инструкциях проекта](#write-project-instructions), чтобы Claude знал, где находится остальной код. Облачные потоки затем начинают маленькими и вытягивают другие репозитории только для задач, которые их требуют.

366 368 

369<h3 id="add-files-and-folders">

370 Добавьте файлы и папки

371</h3>

372 

373Добавьте файлы и папки, которые вы хотите, чтобы потоки читали в поле **Context** диалога **New project**, или впоследствии с помощью **Add** на вкладке **Library** в **Overview**. Эти ограничения применяются к тому, что вы добавляете:

374 

375* **Library tab**: до 100 файлов и 2 ГБ в одном выборе, с одним файлом до 480 МБ.

376* **New project dialog**: файлы размером более 30 МБ пропускаются, поэтому добавляйте большие файлы с вкладки **Library** после создания проекта.

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

378* **Changes after upload**: загрузки — это копии, поэтому изменение, которое вы делаете на вашем компьютере впоследствии, не достигает проекта, пока вы не загрузите файл снова и не выберете **Replace** при вопросе об существующем имени.

379 

367<h3 id="what-threads-pick-up-from-your-repositories">380<h3 id="what-threads-pick-up-from-your-repositories">

368 Что потоки берут из ваших репозиториев381 Что потоки берут из ваших репозиториев

369</h3>382</h3>


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

473 486 

474* **Claude Tag**: [Claude Tag](https://claude.com/docs/claude-tag/overview) — это Claude в каналах Slack вашей команды, на планах Team и Enterprise. Любой в канале может дать ему работу, все в канале видят и направляют его, и он использует соединения, которые администратор установил для этого канала. Проект — это только ваш: вы единственный, кто отправляет ему работу или видит его потоки, он использует ваш собственный доступ GitHub и connectors, и он на Pro и Max. [Как Claude Tag отличается от Cowork и Claude Code](https://claude.com/docs/claude-tag/concepts/how-it-works#how-claude-tag-differs-from-cowork-and-claude-code) имеет рядом.487* **Claude Tag**: [Claude Tag](https://claude.com/docs/claude-tag/overview) — это Claude в каналах Slack вашей команды, на планах Team и Enterprise. Любой в канале может дать ему работу, все в канале видят и направляют его, и он использует соединения, которые администратор установил для этого канала. Проект — это только ваш: вы единственный, кто отправляет ему работу или видит его потоки, он использует ваш собственный доступ GitHub и connectors, и он на Pro и Max. [Как Claude Tag отличается от Cowork и Claude Code](https://claude.com/docs/claude-tag/concepts/how-it-works#how-claude-tag-differs-from-cowork-and-claude-code) имеет рядом.

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

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

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

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

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

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

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

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

482 496 

483[Запуск агентов параллельно](/docs/ru/agents) сравнивает эти варианты рядом.497[Запуск агентов параллельно](/docs/ru/agents) сравнивает эти варианты рядом.


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

487</h2>501</h2>

488 502 

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

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

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

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

493* Проект принадлежит одному пользователю. Вы не можете поделиться проектом или его потоками с другим пользователем, и транскрипты потоков не имеют опции поделиться, которую имеют другие облачные сеансы. Нет элементов управления на уровне организации для проектов во время бета-версии.507* Проект принадлежит одному пользователю. Вы не можете поделиться проектом или его потоками с другим пользователем, и транскрипты потоков не имеют опции поделиться, которую имеют другие облачные сеансы. Нет элементов управления на уровне организации для проектов во время бета-версии.

494* Поток принадлежит одному проекту, который его запустил. Вы не можете переместить или скопировать поток в другой проект или переместить его отдельно. [**Move to project**](#start-from-an-existing-cloud-session) идет только в другую сторону: он переносит работу облачного сеанса в проект.508* Поток принадлежит одному проекту, который его запустил. Вы не можете переместить или скопировать поток в другой проект или переместить его отдельно. [**Move to project**](#start-from-an-existing-cloud-session) идет только в другую сторону: он переносит работу облачного сеанса в проект. Вы не можете объединить два проекта в один.

495 509 

496<h2 id="troubleshooting">510<h2 id="troubleshooting">

497 Troubleshooting511 Troubleshooting

Details

6 6 

7> Установите Claude Security plugin для сканирования вашей кодовой базы на уязвимости в сеансе Claude Code и преобразуйте результаты в патчи, которые вы проверяете и применяете.7> Установите Claude Security plugin для сканирования вашей кодовой базы на уязвимости в сеансе Claude Code и преобразуйте результаты в патчи, которые вы проверяете и применяете.

8 8 

9Claude Security plugin запускает многоагентное сканирование уязвимостей вашей кодовой базы внутри сеанса Claude Code. Команда агентов Claude составляет карту вашей архитектуры, создает модель угроз, ищет уязвимости и независимо проверяет каждый результат перед написанием отчета. Используйте plugin для сканирования всего репозитория или [только набора изменений](#scan-only-your-changes), таких как diff ветки, diff pull request или отдельный коммит, затем преобразуйте выбранные результаты в патчи, которые вы проверяете и применяете самостоятельно.9Claude Security plugin запускает многоагентное сканирование уязвимостей вашей кодовой базы внутри сеанса Claude Code. Команда агентов Claude отображает вашу архитектуру, создает модель угроз, ищет уязвимости и независимо проверяет каждый результат перед написанием отчета. Используйте plugin для сканирования всего репозитория или [только набора изменений](#scan-only-your-changes), таких как diff ветки, diff pull request или одного коммита, затем преобразуйте результаты, которые вы выбрали, в патчи, которые вы проверяете и применяете самостоятельно.

10 10 

11Plugin работает локально в вашем сеансе, использует любые модели, к которым у вас есть доступ в Claude Code, и каждое сканирование учитывается в пределах использования вашего плана. Если вам нужен управляемый сервис, который отслеживает ваши репозитории, или вы хотите запускать сканирования на [Claude Mythos 5](https://platform.claude.com/docs/en/about-claude/models/introducing-claude-fable-5-and-claude-mythos-5), см. продукт [Claude Security](https://claude.com/product/claude-security), доступный в плане Enterprise. Plugin достигает кода, который не может достичь управляемый продукт, такие как репозитории, размещенные на GitLab или Bitbucket, или в сетях, которые не допускают входящих соединений.11Plugin работает локально в вашем сеансе, использует [любые модели, к которым у вас есть доступ в Claude Code](#models-and-providers), и каждое сканирование учитывается в вашем [использовании](/docs/ru/costs). Если вам нужна управляемая служба, которая отслеживает ваши репозитории, или вы хотите запускать сканирования на [Claude Mythos](https://platform.claude.com/docs/en/about-claude/models/introducing-claude-fable-5-and-claude-mythos-5), см. продукт [Claude Security](https://claude.com/product/claude-security), доступный в плане Enterprise. Plugin достигает кода, который не может достичь управляемый продукт, такие как репозитории, размещенные на GitLab или Bitbucket, или в сетях, которые не допускают входящих соединений.

12 12 

13Plugin также отличается от инструментов проверки, уже имеющихся в Claude Code: [security guidance plugin](/docs/ru/security-guidance) проверяет код по мере его написания Claude, [`/security-review`](/docs/ru/commands#all-commands) запускает одиночный проход по вашей ветке, и [Code Review](/docs/ru/code-review) проверяет pull request. Для понимания того, как слои складываются, см. [Как plugin вписывается в другие инструменты безопасности](#how-the-plugin-fits-with-other-security-tools).13Plugin также отличается от инструментов проверки, уже имеющихся в Claude Code: [security guidance plugin](/docs/ru/security-guidance) проверяет код по мере его написания Claude, [`/security-review`](/docs/ru/commands#all-commands) запускает один проход по вашей ветке, и [Code Review](/docs/ru/code-review) проверяет pull request. Чтобы узнать, как слои складываются, см. [Как plugin вписывается в другие инструменты безопасности](#how-the-plugin-fits-with-other-security-tools).

14 14 

15<h2 id="prerequisites">15<h2 id="prerequisites">

16 Предварительные требования16 Предварительные требования


18 18 

19Для запуска плагина вам необходимо:19Для запуска плагина вам необходимо:

20 20 

21* Платный план для [динамических рабочих процессов](/docs/ru/workflows), которые сканирование использует для организации своих агентов. На Pro включите их из строки Dynamic workflows в `/config`.21* Платный план, доступ к API Anthropic или [сторонний поставщик](#models-and-providers) для [динамических рабочих процессов](/docs/ru/workflows), которые сканирование использует для организации своих агентов. На Pro включите их из строки Dynamic workflows в `/config`.

22* Python 3.9 или более поздняя версия, доступная в вашем `PATH` как `python3`. Проверьте с помощью `python3 --version`. Инструментарий плагина использует только стандартную библиотеку Python, поэтому ничего не устанавливается.22* Python 3.9 или более поздняя версия, доступная в вашем `PATH` как `python3`. Проверьте с помощью `python3 --version`. Инструментарий плагина использует только стандартную библиотеку Python, поэтому ничего не устанавливается.

23* Linux, macOS или Windows.23* Linux, macOS или Windows.

24* Git для сканирования изменений и преобразования результатов в патчи; эти задачи не поддерживают другие системы контроля версий. Полное сканирование работает в любом каталоге с системой контроля версий или без нее.24* Git для сканирования изменений и преобразования результатов в патчи; эти задачи не поддерживают другие системы контроля версий. Полное сканирование работает в любом каталоге с системой контроля версий или без неё.

25 

26<h2 id="models-and-providers">

27 Models and providers

28</h2>

29 

30A scan runs inside your Claude Code session. The plugin makes no model calls of its own, so there's no separate API key or provider setting to configure.

31 

32* **Model**: the agents that hunt for vulnerabilities, verify findings, and write and review patches run on [вашей модели сеанса](/docs/ru/sub-agents#choose-a-model). To change it, run [`/model`](/docs/ru/model-config#setting-your-model) в вашем сеансе перед началом сканирования. A few supporting steps, such as mapping the repository, use the [`sonnet` alias](/docs/ru/model-config#model-aliases) вместо этого.

33* **Provider**: scans run on a paid plan, with Anthropic API access, or on a [third-party provider](/docs/ru/third-party-integrations) such as [Amazon Bedrock](/docs/ru/amazon-bedrock), [Google Cloud's Agent Platform](/docs/ru/google-vertex-ai), or [Microsoft Foundry](/docs/ru/microsoft-foundry).

34 

35On a third-party provider, the `sonnet` alias can resolve to a different version than it does on the Anthropic API. If your account can't use that version, [pin your model versions](/docs/ru/model-config#pin-models-for-third-party-deployments), including `ANTHROPIC_DEFAULT_SONNET_MODEL`.

36 

37[Automatic model fallback](/docs/ru/model-config#automatic-model-fallback) re-runs a request that a model's safeguards flag. On Amazon Bedrock, Google Cloud's Agent Platform, and Microsoft Foundry, the request can end with a refusal message instead, depending on [how your deployment is set up](/docs/ru/model-config#enable-fallback-on-bedrock-agent-platform-and-foundry).

25 38 

26<h2 id="install-the-plugin">39<h2 id="install-the-plugin">

27 Установите плагин40 Установите плагин


156 169 

157**Меню `/claude-security` открывается с предупреждением Python.** Плагину требуется `python3` 3.9 или более поздняя версия в вашем `PATH`. Когда он вообще не может найти `python3`, меню предупреждает, что Claude Security не будет работать, пока он не будет установлен; когда первый `python3` в вашем `PATH` старше, предупреждение называет найденную версию. Установите Python 3 или поместите более новый `python3` первым в вашем `PATH`, затем начните новый сеанс.170**Меню `/claude-security` открывается с предупреждением Python.** Плагину требуется `python3` 3.9 или более поздняя версия в вашем `PATH`. Когда он вообще не может найти `python3`, меню предупреждает, что Claude Security не будет работать, пока он не будет установлен; когда первый `python3` в вашем `PATH` старше, предупреждение называет найденную версию. Установите Python 3 или поместите более новый `python3` первым в вашем `PATH`, затем начните новый сеанс.

158 171 

159**Вы можете увидеть уведомление "safeguards flagged this message" при сканировании на модели Fable.** Сообщение называет модель, например "Fable 5.1's safeguards flagged this message". Классификаторы безопасности кибербезопасности Fable помечают определенные запросы, и Claude Code повторно запускает помеченный запрос на модели Opus через [автоматический откат модели](/docs/ru/model-config#automatic-model-fallback). Это ожидается, и сканирование все равно должно завершиться успешно.172**Вы можете увидеть уведомление "safeguards flagged this message" при сканировании на модели Fable.** Сообщение называет модель, которую вы запускаете. Классификаторы безопасности кибербезопасности Fable помечают определенные запросы, и Claude Code повторно запускает помеченный запрос на модели Opus через [автоматический откат модели](/docs/ru/model-config#automatic-model-fallback). Это ожидается. Когда запрос повторно запускается, сканирование все равно должно завершиться успешно.

160 173 

161<h2 id="related-resources">174<h2 id="related-resources">

162 Связанные ресурсы175 Связанные ресурсы

Details

22| `claude -c -p "query"` | Продолжить через SDK | `claude -c -p "Check for type errors"` |22| `claude -c -p "query"` | Продолжить через SDK | `claude -c -p "Check for type errors"` |

23| `claude -r "<session>" "query"` | Возобновить сеанс по ID или имени | `claude -r "auth-refactor" "Finish this PR"` |23| `claude -r "<session>" "query"` | Возобновить сеанс по ID или имени | `claude -r "auth-refactor" "Finish this PR"` |

24| `claude update` | Обновить до последней версии | `claude update` |24| `claude update` | Обновить до последней версии | `claude update` |

25| `claude gateway` | Запустить сервер самостоятельно размещаемого [Claude apps gateway](/docs/ru/claude-apps-gateway), для администраторов, развертывающих SSO и политику перед Claude Code на Amazon Bedrock, Google Cloud's Agent Platform или Microsoft Foundry. Требует `--config`, указывающий на [`gateway.yaml`](/docs/ru/claude-apps-gateway-config). Доступно в Claude Code v2.1.195 и позже. | `claude gateway --config gateway.yaml` |25| `claude gateway` | Запустить сервер самостоятельно размещаемого [Claude apps gateway](/docs/ru/claude-apps-gateway) для администраторов, развертывающих SSO и политику перед Claude Code на Amazon Bedrock, Google Cloud's Agent Platform или Microsoft Foundry. Требует `--config`, указывающий на [`gateway.yaml`](/docs/ru/claude-apps-gateway-config). | `claude gateway --config gateway.yaml` |

26| `claude install [version]` | Установить или переустановить собственный двоичный файл. Принимает версию, такую как `2.1.118`, или `stable`, или `latest`. См. [Установить конкретную версию](/docs/ru/setup#install-a-specific-version) | `claude install stable` |26| `claude install [version]` | Установить или переустановить собственный двоичный файл. Принимает версию, такую как `2.1.118`, или `stable`, или `latest`. См. [Установить конкретную версию](/docs/ru/setup#install-a-specific-version) | `claude install stable` |

27| `claude auth login` | Войти в свою учетную запись Anthropic. Используйте `--email` для предварительного заполнения адреса электронной почты, `--sso` для принудительной аутентификации SSO и `--console` для входа с помощью Anthropic Console для выставления счетов за использование API вместо подписки Claude | `claude auth login --console` |27| `claude auth login` | Войти в свою учетную запись Anthropic. Используйте `--email` для предварительного заполнения адреса электронной почты, `--sso` для принудительной аутентификации SSO и `--console` для входа с помощью Anthropic Console для выставления счетов за использование API вместо подписки Claude | `claude auth login --console` |

28| `claude auth logout` | Выйти из своей учетной записи Anthropic | `claude auth logout` |28| `claude auth logout` | Выйти из своей учетной записи Anthropic | `claude auth logout` |

Details

78DATABASE_URL=postgres://localhost:5432/myapp78DATABASE_URL=postgres://localhost:5432/myapp

79```79```

80 80 

81Каждый сеанс копирует значения среды один раз при запуске в обычные переменные окружения, которые может читать любая команда, которую запускает Claude, кроме переменных `OTEL_*`. Claude Code использует их для собственного [экспорта телеметрии](/docs/ru/monitoring-usage#telemetry-from-cloud-sessions-and-claude-tag) и не передаёт их командам, которые он запускает. Поскольку работающие сеансы не перечитывают конфигурацию, редактирование или добавление переменных влияет на сеансы, которые вы запускаете позже; сеансы, которые уже работают, сохраняют значения, с которыми они начали.81Сеанс читает значения среды в обычные переменные окружения, которые может читать любая команда, которую запускает Claude, кроме переменных `OTEL_*`. Claude Code использует их для собственного [экспорта телеметрии](/docs/ru/monitoring-usage#telemetry-from-cloud-sessions-and-claude-tag) и не передаёт их командам, которые он запускает.

82 

83В среде, размещённой Anthropic, сеанс читает значения среды при создании и снова каждый раз, когда Claude Code запускается в виртуальной машине сеанса после этого, что происходит в двух случаях:

84 

85* **Виртуальная машина восстанавливается после простоя**: после нескольких минут без активности виртуальная машина сеанса приостанавливается с сохранёнными файлами. Ваше следующее сообщение восстанавливает ту же виртуальную машину и снова запускает Claude Code.

86* **Виртуальная машина была отозвана и перестраивается**: если приостановленная виртуальная машина с тех пор была [отозвана](/docs/ru/claude-code-on-the-web#environment-expired), повторное открытие сеанса подготавливает свежую виртуальную машину.

87 

88После редактирования, добавления или удаления переменной существующий сеанс в среде, размещённой Anthropic, сохраняет значения, которые он последний раз прочитал, пока его виртуальная машина не будет восстановлена или перестроена, и использует ваше изменение с этого момента. Его виртуальная машина приостанавливается сама по себе, когда сеанс неактивен, и вы не можете приостановить её самостоятельно. Чтобы использовать новое значение сразу же, попросите Claude установить его в команде, которую он запускает, например `LOG_LEVEL=trace npm test`, или запустите новый сеанс.

82 89 

83Облачный сеанс также устанавливает некоторые переменные сам, когда запускается. Для [`CLAUDE_AUTOCOMPACT_PCT_OVERRIDE`](/docs/ru/claude-code-on-the-web#manage-context) значение, которое устанавливает сеанс, переопределяет то, которое вы добавляете здесь, поэтому добавление этого ключа здесь не имеет эффекта.90Облачный сеанс также устанавливает некоторые переменные сам, когда запускается. Для [`CLAUDE_AUTOCOMPACT_PCT_OVERRIDE`](/docs/ru/claude-code-on-the-web#manage-context) значение, которое устанавливает сеанс, переопределяет то, которое вы добавляете здесь, поэтому добавление этого ключа здесь не имеет эффекта.

84 91 


208 215 

209Чтобы изменить сетевой доступ среды, [откройте её для редактирования](#configure-your-environment) и используйте селектор **Network access** в диалоговом окне. [Общая среда](#organization-shared-environments) открывается там в режиме только для чтения, поэтому владелец изменяет её сетевой доступ со страницы **Cloud environments** в [параметрах администратора](https://claude.ai/admin-settings). Значок облака, который открывает селектор, появляется на поверхностях приложения, перечисленных в разделе [Среда по умолчанию](#the-default-environment), и в [редакторе процедур](/docs/ru/routines#environments-and-network-access); личные среды не имеют отдельной страницы в параметрах вашего аккаунта claude.ai.216Чтобы изменить сетевой доступ среды, [откройте её для редактирования](#configure-your-environment) и используйте селектор **Network access** в диалоговом окне. [Общая среда](#organization-shared-environments) открывается там в режиме только для чтения, поэтому владелец изменяет её сетевой доступ со страницы **Cloud environments** в [параметрах администратора](https://claude.ai/admin-settings). Значок облака, который открывает селектор, появляется на поверхностях приложения, перечисленных в разделе [Среда по умолчанию](#the-default-environment), и в [редакторе процедур](/docs/ru/routines#environments-and-network-access); личные среды не имеют отдельной страницы в параметрах вашего аккаунта claude.ai.

210 217 

218Когда вы изменяете сетевой доступ среды, размещённой в Anthropic, её существующие сеансы следуют новому параметру в течение примерно минуты для запросов, которые проходят через [список разрешённых сетей](#access-levels) сеанса. Вам не нужно начинать новый сеанс.

219 

211<Note>220<Note>

212 Соединители MCP, которые вы включаете в сеансе или процедуре, работают без добавления их хостов в **Allowed domains**, потому что трафик соединителя проходит через серверы Anthropic, а не через сеть сеанса. Это зависит от того же канала, привязанного к Anthropic, отмеченного в разделе [Безопасность и изоляция](/docs/ru/claude-code-on-the-web#security-and-isolation). Отключите любой соединитель, который вам не нужен, чтобы ограничить, какие инструменты может использовать Claude.221 Соединители MCP, которые вы включаете в сеансе или процедуре, работают без добавления их хостов в **Allowed domains**, потому что трафик соединителя проходит через серверы Anthropic, а не через сеть сеанса. Это зависит от того же канала, привязанного к Anthropic, отмеченного в разделе [Безопасность и изоляция](/docs/ru/claude-code-on-the-web#security-and-isolation). Отключите любой соединитель, который вам не нужен, чтобы ограничить, какие инструменты может использовать Claude.

213</Note>222</Note>


428 437 

429В среде, размещённой Anthropic, эти ограничения времени применяются к долгоживущей работе в облачном сеансе, такой как сборка, установка или запуск теста. Каждая запись ссылается на раздел, который определяет ограничение.438В среде, размещённой Anthropic, эти ограничения времени применяются к долгоживущей работе в облачном сеансе, такой как сборка, установка или запуск теста. Каждая запись ссылается на раздел, который определяет ограничение.

430 439 

431* **Команды, которые запускает Claude**: облачная среда не устанавливает свой собственный timeout команды, поэтому применяются значения по умолчанию инструмента Bash. Claude ждёт команду 2 минуты по умолчанию и может запросить до 10 минут. Когда команда достигает своего [timeout](/docs/ru/tools-reference#timeout-and-output-limits), Claude Code [перемещает её в фон](/docs/ru/tools-reference#background-commands) вместо того, чтобы остановить её, если только команда не начинается с `sleep`.440* **Команды, которые запускает Claude**: облачная среда не устанавливает свой собственный timeout команды, поэтому применяются значения по умолчанию инструмента Bash. Claude ждёт 2 минуты для команды переднего плана по умолчанию и может запросить до 10 минут.

441 

442 Когда команда достигает своего [timeout](/docs/ru/tools-reference#timeout-and-output-limits), Claude Code [перемещает её в фон](/docs/ru/tools-reference#background-commands) вместо того, чтобы остановить её, если только команда не начинается с `sleep`. Команда, перемещённая таким образом, может продолжать работать до 30 дополнительных минут, прежде чем Claude Code остановит её в её [ограничении времени фона](/docs/ru/tools-reference#background-commands). Установка `BASH_DEFAULT_TIMEOUT_MS` выше `1800000` миллисекунд удлиняет это ограничение, а также значение по умолчанию переднего плана.

432* **SessionStart hooks**: Claude Code отменяет hook `command` после 600 секунд, если вы не установите [`timeout`](/docs/ru/hooks#common-fields), в секундах, на запись hook. Claude Code не применяет timeout на hook, который вы запускаете с [`async: true`](/docs/ru/hooks#run-hooks-in-the-background).443* **SessionStart hooks**: Claude Code отменяет hook `command` после 600 секунд, если вы не установите [`timeout`](/docs/ru/hooks#common-fields), в секундах, на запись hook. Claude Code не применяет timeout на hook, который вы запускаете с [`async: true`](/docs/ru/hooks#run-hooks-in-the-background).

433* **Setup script**: скрипт, который занимает больше примерно пяти минут, не кэшируется. [Требования скрипта](#script-requirements) охватывает, как оставаться ниже этого.444* **Setup script**: скрипт, который занимает больше примерно пяти минут, не кэшируется. [Требования скрипта](#script-requirements) охватывает, как оставаться ниже этого.

434* **Idle sessions**: сеанс останавливается после периода неактивности и его VM восстанавливается. [Environment expired](/docs/ru/claude-code-on-the-web#environment-expired) охватывает, что считается неактивным и как повторно открыть сеанс.445* **Idle sessions**: после нескольких минут без активности, VM сеанса приостанавливается с сохранёнными файлами, и приостановленная VM может позже быть восстановлена. [Установка переменных среды](#set-environment-variables) описывает, что сеанс подхватывает в каждом случае, и [Environment expired](/docs/ru/claude-code-on-the-web#environment-expired) охватывает, как повторно открыть сеанс, чей VM был восстановлен.

435 446 

436Чтобы повысить timeouts команд для сеансов среды, добавьте [`BASH_DEFAULT_TIMEOUT_MS` и `BASH_MAX_TIMEOUT_MS`](/docs/ru/env-vars#variables) в её [переменные среды](#set-environment-variables). Оба принимают миллисекунды. Например, `BASH_DEFAULT_TIMEOUT_MS=600000` делает 10 минут значением по умолчанию.447Чтобы повысить timeouts команд для сеансов среды, добавьте [`BASH_DEFAULT_TIMEOUT_MS` и `BASH_MAX_TIMEOUT_MS`](/docs/ru/env-vars#variables) в её [переменные среды](#set-environment-variables). Оба принимают миллисекунды. Например, `BASH_DEFAULT_TIMEOUT_MS=600000` делает 10 минут значением по умолчанию.

437 448 


470 481 

471Кэш — это снимок файловой системы, поэтому он сохраняет то, что скрипт установки пишет на диск, и теряет всё, что было только работающим. Пакеты, которые вы устанавливаете, образы Docker, которые вы получаете, и файлы, которые вы пишете, все переносятся. База данных, которую запустил скрипт, стек `docker compose up` или любой другой фоновый процесс не переносятся; запускайте их для каждого сеанса, попросив Claude или с помощью [hook SessionStart](#setup-scripts-vs-sessionstart-hooks).482Кэш — это снимок файловой системы, поэтому он сохраняет то, что скрипт установки пишет на диск, и теряет всё, что было только работающим. Пакеты, которые вы устанавливаете, образы Docker, которые вы получаете, и файлы, которые вы пишете, все переносятся. База данных, которую запустил скрипт, стек `docker compose up` или любой другой фоновый процесс не переносятся; запускайте их для каждого сеанса, попросив Claude или с помощью [hook SessionStart](#setup-scripts-vs-sessionstart-hooks).

472 483 

473Скрипт установки запускается снова, чтобы перестроить кэш, когда вы изменяете скрипт установки среды или разрешённые сетевые хосты, и когда кэш достигает своего истечения примерно через семь дней. Возобновление существующего сеанса никогда не переустанавливает скрипт установки.484Скрипт установки запускается снова, чтобы перестроить кэш, когда вы изменяете скрипт установки среды или разрешённые сетевые хосты, и когда кэш достигает своего истечения примерно через семь дней. В среде, размещённой Anthropic, скрипт установки не запускается, когда виртуальная машина сеанса [восстанавливается после простоя](#set-environment-variables), поэтому изменение скрипта достигает существующего сеанса только когда его виртуальная машина была [отозвана](/docs/ru/claude-code-on-the-web#environment-expired) и перестроена. Чтобы применить изменение сразу же, запустите команды в сеансе или запустите новый сеанс.

474 485 

475Вам не нужно включать кэширование или управлять снимками самостоятельно.486Вам не нужно включать кэширование или управлять снимками самостоятельно.

476 487 


566 * platform.claude.com577 * platform.claude.com

567 * code.claude.com578 * code.claude.com

568 * claude.ai579 * claude.ai

580 * claude.com

581 * support.claude.com

582 * anthropic.com

583 * [www.anthropic.com](http://www.anthropic.com)

569 </Accordion>584 </Accordion>

570 585 

571 <Accordion title="Контроль версий">586 <Accordion title="Контроль версий">


596 * hub.docker.com611 * hub.docker.com

597 * [www.docker.com](http://www.docker.com)612 * [www.docker.com](http://www.docker.com)

598 * production.cloudflare.docker.com613 * production.cloudflare.docker.com

614 * production.cloudfront.docker.com

599 * download.docker.com615 * download.docker.com

600 * gcr.io616 * gcr.io

601 * \*.gcr.io617 * \*.gcr.io

commands.md +8 −5

Details

56| `/add-dir <path>` | Добавить рабочий каталог для доступа к файлам во время текущей сессии. Введите частичный путь, чтобы увидеть предложения соответствующих каталогов; нажмите `Tab` для принятия. Большинство конфигурации `.claude/` [не обнаруживается](/docs/ru/permissions#additional-directories-grant-file-access-not-configuration) из добавленного каталога. Вы не можете добавить большинство [сетевых путей](/docs/ru/errors#working-directory-is-a-network-path), таких как `\\server\share`. После успешного добавления запускаются ваши [`DirectoryAdded` hooks](/docs/ru/hooks#directoryadded). Когда вы запускаете команду во время ответа Claude, Claude Code просит вас подтвердить каталог сразу же, и после подтверждения следующий вызов инструмента Claude в этом же ходу может получить доступ к нему. До версии 2.1.234 Claude Code ставил команду в очередь до завершения хода |56| `/add-dir <path>` | Добавить рабочий каталог для доступа к файлам во время текущей сессии. Введите частичный путь, чтобы увидеть предложения соответствующих каталогов; нажмите `Tab` для принятия. Большинство конфигурации `.claude/` [не обнаруживается](/docs/ru/permissions#additional-directories-grant-file-access-not-configuration) из добавленного каталога. Вы не можете добавить большинство [сетевых путей](/docs/ru/errors#working-directory-is-a-network-path), таких как `\\server\share`. После успешного добавления запускаются ваши [`DirectoryAdded` hooks](/docs/ru/hooks#directoryadded). Когда вы запускаете команду во время ответа Claude, Claude Code просит вас подтвердить каталог сразу же, и после подтверждения следующий вызов инструмента Claude в этом же ходу может получить доступ к нему. До версии 2.1.234 Claude Code ставил команду в очередь до завершения хода |

57| `/advisor [model\|off]` | Включить или отключить [инструмент advisor](/docs/ru/advisor), который консультирует вторую модель для получения рекомендаций в ключевые моменты задачи. Принимает `fable`, `opus`, `sonnet` или полный ID модели. `fable` требует [доступ к Fable](/docs/ru/advisor#choose-an-advisor-model). Без аргумента открывает средство выбора. В сессии без интерактивного терминала или через [Remote Control](/docs/ru/remote-control#limitations), передайте модель или `off` как аргумент; без аргумента команда выводит текущий advisor как текст. Эти формы требуют Claude Code v2.1.260 или позже |57| `/advisor [model\|off]` | Включить или отключить [инструмент advisor](/docs/ru/advisor), который консультирует вторую модель для получения рекомендаций в ключевые моменты задачи. Принимает `fable`, `opus`, `sonnet` или полный ID модели. `fable` требует [доступ к Fable](/docs/ru/advisor#choose-an-advisor-model). Без аргумента открывает средство выбора. В сессии без интерактивного терминала или через [Remote Control](/docs/ru/remote-control#limitations), передайте модель или `off` как аргумент; без аргумента команда выводит текущий advisor как текст. Эти формы требуют Claude Code v2.1.260 или позже |

58| `/agents` | Начиная с версии 2.1.198, запуск `/agents` выводит напоминание попросить Claude создать или управлять [подагентами](/docs/ru/sub-agents), или отредактировать `.claude/agents/` или `~/.claude/agents/` напрямую. На версии 2.1.197 и ранее открывает интерактивный интерфейс для создания и управления конфигурациями подагентов |58| `/agents` | Начиная с версии 2.1.198, запуск `/agents` выводит напоминание попросить Claude создать или управлять [подагентами](/docs/ru/sub-agents), или отредактировать `.claude/agents/` или `~/.claude/agents/` напрямую. На версии 2.1.197 и ранее открывает интерактивный интерфейс для создания и управления конфигурациями подагентов |

59| `/artifact-capabilities` | **[Skill](/docs/ru/skills#bundled-skills).** Загрузить справку по возможностям среды выполнения, которые опубликованный [артефакт](/docs/ru/artifacts) может использовать, такие как [вызов ваших connectors](/docs/ru/artifacts#pull-live-data-with-mcp-connectors) или [предложение загрузки файла](/docs/ru/artifacts#offer-a-file-download), включая те, которые есть у вашей учётной записи. Claude обычно загружает её самостоятельно перед созданием страницы, которая использует одну. Доступно где [артефакты](/docs/ru/artifacts#availability) есть |

60| `/artifact-diagramming` | **[Skill](/docs/ru/skills#bundled-skills).** Загрузить рекомендации по диаграммированию для Claude, которые следует соблюдать в [артефактах](/docs/ru/artifacts): когда диаграмма помогает, что рисовать и как писать встроенный SVG, который остаётся разборчивым в светлых и тёмных темах. Требует Claude Code v2.1.221 или позже |

59| `/artifacts` | Список [артефактов](/docs/ru/artifacts#find-an-artifact-again), которыми вы владеете или которые с вами поделены, затем прикрепить один к сессии, открыть его в браузере или скопировать его ссылку. Доступно где [артефакты](/docs/ru/artifacts#availability) есть. Требует Claude Code v2.1.208 или позже; прикрепление с `Enter` требует v2.1.216 |61| `/artifacts` | Список [артефактов](/docs/ru/artifacts#find-an-artifact-again), которыми вы владеете или которые с вами поделены, затем прикрепить один к сессии, открыть его в браузере или скопировать его ссылку. Доступно где [артефакты](/docs/ru/artifacts#availability) есть. Требует Claude Code v2.1.208 или позже; прикрепление с `Enter` требует v2.1.216 |

60| `/auto-mode-setup` | [Составить записи `autoMode.environment`](/docs/ru/auto-mode-config#generate-environment-entries) из вашего проекта и недавних сессий, затем просмотреть черновик и сохранить его в пользовательские настройки. Требует план Pro, Max или Team и Claude Code v2.1.228 или позже. На нативном Windows требует v2.1.233 или позже |62| `/auto-mode-setup` | [Составить записи `autoMode.environment`](/docs/ru/auto-mode-config#generate-environment-entries) из вашего проекта и недавних сессий, затем просмотреть черновик и сохранить его в пользовательские настройки. Требует план Pro, Max или Team и Claude Code v2.1.228 или позже. На нативном Windows требует v2.1.233 или позже |

61| `/autocompact [auto\|<tokens>]` | Установить окно auto-compact: насколько полным становится контекстное окно перед автоматическим сжатием Claude Code. Передайте размер, такой как `500k`, или `auto` для возврата к окну, настроенному для вашей модели. Claude Code сохраняет значение в пользовательские настройки и применяет его к текущей сессии. См. [Установить окно auto-compact](/docs/ru/model-config#set-the-auto-compact-window) для принимаемых значений и того, что его переопределяет. Без аргумента открывает диалог, показывающий текущее окно. Требует Claude Code v2.1.221 или позже |63| `/autocompact [auto\|<tokens>]` | Установить окно auto-compact: насколько полным становится контекстное окно перед автоматическим сжатием Claude Code. Передайте размер, такой как `500k`, или `auto` для возврата к окну, настроенному для вашей модели. Claude Code сохраняет значение в пользовательские настройки и применяет его к текущей сессии. См. [Установить окно auto-compact](/docs/ru/model-config#set-the-auto-compact-window) для принимаемых значений и того, что его переопределяет. Без аргумента открывает диалог, показывающий текущее окно. Требует Claude Code v2.1.221 или позже |


67| `/bug [report]` | Сообщить об ошибке или поделиться своим разговором. Вы выбираете, сколько истории сессии включить, и подтверждаете на экране согласия перед отправкой чего-либо. Когда вы вошли в Anthropic при подключении первой стороны, отчёт идёт в Anthropic; у поставщика третьей стороны или без учётных данных Anthropic Claude Code записывает отчёт в [локальный архив под `~/.claude/feedback-bundles/`](/docs/ru/data-usage#telemetry-services), который вы пересылаете сами. В [расширении VS Code](/docs/ru/vs-code#use-the-prompt-box) `/bug` открывает собственный диалог обратной связи расширения; требует Claude Code v2.1.229 или позже. Когда вы запускаете его во время ответа Claude, Claude Code открывает диалог сразу же. До версии 2.1.232 Claude Code ставил команду в очередь до завершения хода. Псевдоним: `/share`. До версии 2.1.212 `/bug` и `/share` были псевдонимами `/feedback` |69| `/bug [report]` | Сообщить об ошибке или поделиться своим разговором. Вы выбираете, сколько истории сессии включить, и подтверждаете на экране согласия перед отправкой чего-либо. Когда вы вошли в Anthropic при подключении первой стороны, отчёт идёт в Anthropic; у поставщика третьей стороны или без учётных данных Anthropic Claude Code записывает отчёт в [локальный архив под `~/.claude/feedback-bundles/`](/docs/ru/data-usage#telemetry-services), который вы пересылаете сами. В [расширении VS Code](/docs/ru/vs-code#use-the-prompt-box) `/bug` открывает собственный диалог обратной связи расширения; требует Claude Code v2.1.229 или позже. Когда вы запускаете его во время ответа Claude, Claude Code открывает диалог сразу же. До версии 2.1.232 Claude Code ставил команду в очередь до завершения хода. Псевдоним: `/share`. До версии 2.1.212 `/bug` и `/share` были псевдонимами `/feedback` |

68| `/cd <path>` | Переместить эту сессию в новый рабочий каталог, сохраняя разговор. Введите частичный путь, чтобы увидеть предложения соответствующих каталогов; нажмите `Tab` для принятия. Предложения требуют Claude Code v2.1.206 или позже. Для того, что Claude Code применяет из нового каталога сразу же при перемещении, и как `/cd` отличается от `/add-dir`, см. [Переместить сессию в другой каталог](/docs/ru/permissions#move-the-session-to-another-directory) |70| `/cd <path>` | Переместить эту сессию в новый рабочий каталог, сохраняя разговор. Введите частичный путь, чтобы увидеть предложения соответствующих каталогов; нажмите `Tab` для принятия. Предложения требуют Claude Code v2.1.206 или позже. Для того, что Claude Code применяет из нового каталога сразу же при перемещении, и как `/cd` отличается от `/add-dir`, см. [Переместить сессию в другой каталог](/docs/ru/permissions#move-the-session-to-another-directory) |

69| `/chrome` | Настроить параметры [Claude в Chrome](/docs/ru/chrome) |71| `/chrome` | Настроить параметры [Claude в Chrome](/docs/ru/chrome) |

70| `/claude-api [migrate\|upgrade\|managed-agents-onboard\|prompt-audit\|cost-optimize\|build-eval\|hillclimb]` | **[Skill](/docs/ru/skills#bundled-skills).** Загрузить справочный материал [Claude API](https://platform.claude.com/docs/en/api/overview) и [Managed Agents](https://platform.claude.com/docs/en/managed-agents/overview) для языка вашего проекта. Также активируется автоматически, когда ваш код импортирует `anthropic` или `@anthropic-ai/sdk`. Запустите `migrate` для обновления существующего кода Claude API на более новую модель. Запустите `upgrade` для перемещения зависимости Anthropic SDK вашего проекта через основную версию, в настоящее время пакет Python `anthropic` с 0.x на 1.x. Запустите `managed-agents-onboard` для пошагового руководства, которое создаёт нового Managed Agent. Запустите `prompt-audit` для отмечания инструкций, написанных для более старых моделей в ваших подсказках, skills и описаниях инструментов, и предложения исправлений как diff. Запустите `cost-optimize` для профилирования того, куда идят расходы Claude API вашего проекта, и предложения сбережений из опций, таких как prompt caching, обрезка ненужных входных и выходных токенов, пакетная обработка, усилие и выбор модели, по одному изменению за раз. Запустите `build-eval` для создания набора eval для вашего приложения на базе Claude, и `hillclimb` для итеративного улучшения приложения против существующего eval. Подкоманда `prompt-audit` требует Claude Code v2.1.221 или позже, `upgrade` требует v2.1.236 или позже, `cost-optimize` требует v2.1.247 или позже, а `build-eval` и `hillclimb` требуют v2.1.259 или позже |72| `/claude-api [migrate\|upgrade\|managed-agents-onboard\|prompt-audit\|cost-optimize\|build-eval\|hillclimb\|preserved-thinking-migration]` | **[Skill](/docs/ru/skills#bundled-skills).** Загрузить справочный материал [Claude API](https://platform.claude.com/docs/en/api/overview) и [Managed Agents](https://platform.claude.com/docs/en/managed-agents/overview) для языка вашего проекта. Также активируется автоматически, когда ваш код импортирует `anthropic` или `@anthropic-ai/sdk`. Для того, что делает каждая подкоманда и какую версию она требует, см. [Работать над проектами Claude API](/docs/ru/skills#work-on-claude-api-projects) |

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

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

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

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


84| `/design-sync [hint]` | **[Skill](/docs/ru/skills#bundled-skills).** Преобразовать систему дизайна React вашего репо и загрузить её в [Claude Design](https://claude.ai/design), чтобы дизайны, которые она производит, использовали ваши реальные компоненты. Опционально назовите систему дизайна, например `/design-sync Acme DS`. Первоначальная синхронизация проверяет каждый компонент и может занять несколько часов на большом репо. Доступно на Anthropic API. Ей нужен claude.ai, который CLI не контактирует на Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry или Claude Platform на AWS, или через [Claude apps gateway](/docs/ru/claude-apps-gateway#availability-and-limitations), поэтому команда недоступна там |87| `/design-sync [hint]` | **[Skill](/docs/ru/skills#bundled-skills).** Преобразовать систему дизайна React вашего репо и загрузить её в [Claude Design](https://claude.ai/design), чтобы дизайны, которые она производит, использовали ваши реальные компоненты. Опционально назовите систему дизайна, например `/design-sync Acme DS`. Первоначальная синхронизация проверяет каждый компонент и может занять несколько часов на большом репо. Доступно на Anthropic API. Ей нужен claude.ai, который CLI не контактирует на Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry или Claude Platform на AWS, или через [Claude apps gateway](/docs/ru/claude-apps-gateway#availability-and-limitations), поэтому команда недоступна там |

85| `/desktop` | Продолжить текущую сессию в приложении Claude Code Desktop. Требует macOS или x64 Windows и подписку Claude. Псевдоним: `/app` |88| `/desktop` | Продолжить текущую сессию в приложении Claude Code Desktop. Требует macOS или x64 Windows и подписку Claude. Псевдоним: `/app` |

86| `/diff` | Просмотреть изменения в вашем рабочем дереве, включая правки, которые Claude сделал до сих пор. См. [Просмотреть изменения с /diff](/docs/ru/interactive-mode#review-changes-with-%2Fdiff) |89| `/diff` | Просмотреть изменения в вашем рабочем дереве, включая правки, которые Claude сделал до сих пор. См. [Просмотреть изменения с /diff](/docs/ru/interactive-mode#review-changes-with-%2Fdiff) |

87| `/doctor [prompt-audit [path]]` | **[Skill](/docs/ru/skills#bundled-skills).** Запустить проверку настройки, которая диагностирует проблемы и может их исправить. Проверяет здоровье установки, включая дублирующиеся или оставшиеся установки, проблемы `PATH` и непарсируемые файлы настроек. Находит неиспользуемые skills, MCP серверы и плагины в сравнении с их стоимостью контекста, отмечает медленные [hooks](/docs/ru/hooks) и проверяет наличие более новой версии на вашем [канале выпуска](/docs/ru/setup#configure-release-channel). Дедублирует локальные файлы `CLAUDE.md` против проверенных. Обрезает проверенные файлы [`CLAUDE.md`](/docs/ru/memory#my-claude-md-is-too-large) путём вырезания контента, который Claude мог бы вывести из кодовой базы, и переносит оставшееся всегда загружаемое руководство в [skills](/docs/ru/skills) и вложенные файлы `CLAUDE.md`, которые загружаются по требованию. Также предлагает сделать [auto mode](/docs/ru/permissions#permission-modes) вашим по умолчанию и [предварительно одобрить](/docs/ru/permissions) часто отклоняемые команды только для чтения. Сначала сообщает результаты и просит подтверждение перед изменением чего-либо. Из терминала `claude doctor` выводит диагностику установки только для чтения без запуска сессии. Псевдоним: `/checkup`. Запустите `/doctor prompt-audit` чтобы Claude [проверил ваши файлы `CLAUDE.md`, skills и другую конфигурацию](/docs/ru/memory#write-effective-instructions) на устаревшие или конфликтующие инструкции вместо запуска проверки. Подкоманда `prompt-audit` требует Claude Code v2.1.283 или позже. Проверка обрезки `CLAUDE.md` требует Claude Code v2.1.206 или позже. До версии 2.1.205 `/doctor` открывал экран диагностики только для чтения и нажатие `f` отправляло отчёт Claude |90| `/doctor [prompt-audit [path]]` | **[Skill](/docs/ru/skills#bundled-skills).** Запустить проверку настройки, которая диагностирует проблемы и может их исправить. Проверяет здоровье установки, включая дублирующиеся или оставшиеся установки, проблемы `PATH` и непарсируемые файлы настроек. Находит неиспользуемые skills, MCP серверы и плагины в сравнении с их стоимостью контекста, отмечает медленные [hooks](/docs/ru/hooks) и проверяет наличие более новой версии на вашем [канале выпуска](/docs/ru/setup#configure-release-channel). Дедублирует локальные файлы `CLAUDE.md` против проверенных. Обрезает проверенные файлы [`CLAUDE.md`](/docs/ru/memory#my-claude-md-is-too-large) путём вырезания контента, который Claude мог бы вывести из кодовой базы, и переносит оставшееся всегда загружаемое руководство в [skills](/docs/ru/skills) и вложенные файлы `CLAUDE.md`, которые загружаются по требованию. Также предлагает сделать [auto mode](/docs/ru/permissions#permission-modes) вашим по умолчанию и [предварительно одобрить](/docs/ru/permissions) часто отклоняемые команды только для чтения. Сначала сообщает результаты и просит подтверждение перед изменением чего-либо. Из терминала `claude doctor` выводит диагностику установки только для чтения без запуска сессии. Псевдоним: `/checkup`. Запустите `/doctor prompt-audit` чтобы Claude [проверил ваши файлы `CLAUDE.md`, skills и другую конфигурацию](/docs/ru/memory#audit-your-instruction-files) на устаревшие или конфликтующие инструкции вместо запуска проверки. Подкоманда `prompt-audit` требует Claude Code v2.1.283 или позже. Проверка обрезки `CLAUDE.md` требует Claude Code v2.1.206 или позже. До версии 2.1.205 `/doctor` открывал экран диагностики только для чтения и нажатие `f` отправляло отчёт Claude |

88| `/effort [level\|auto\|status\|ultracode [on\|off]]` | Установить [уровень усилия](/docs/ru/model-config#adjust-effort-level): `low` до `xhigh`, `max`, или `auto`; `status` выводит его. `ultracode` или `ultracode on` включает [ultracode](/docs/ru/workflows#let-claude-decide-with-ultracode) для сессии на текущем уровне, и `ultracode off` выключает его; ключ [`ultracode`](/docs/ru/settings-reference#ultracode) сохраняется. `max` только для сессии. Аргументы `on` и `off` и сохранение текущего уровня требуют Claude Code v2.1.284 или позже. До версии 2.1.284 `/effort ultracode` устанавливал сессию на `xhigh`, и `/effort ultracode off` не удавался с `Invalid argument`. Запустите его во время ответа Claude и, после подтверждения [предупреждения о кэше](/docs/ru/prompt-caching#changing-effort-level), если Claude Code показывает его, Claude Code применяет новый уровень к следующему запросу в этом ходу. До версии 2.1.242 Claude Code решал из флага функции, который он получал от Anthropic, запускать ли команду в середине хода или ставить её в очередь до завершения хода, и всегда ставил её в очередь в сессии, которая не [получает флаги функций](/docs/ru/env-vars#features-that-need-feature-flag-fetching), такой как на [поставщике третьей стороны](/docs/ru/third-party-integrations). Работает в `-p` |91| `/effort [level\|auto\|status\|ultracode [on\|off]]` | Установить [уровень усилия](/docs/ru/model-config#adjust-effort-level): `low` до `xhigh`, `max`, или `auto`; `status` выводит его. `ultracode` или `ultracode on` включает [ultracode](/docs/ru/workflows#let-claude-decide-with-ultracode) для сессии на текущем уровне, и `ultracode off` выключает его; ключ [`ultracode`](/docs/ru/settings-reference#ultracode) сохраняется. `max` только для сессии. Аргументы `on` и `off` и сохранение текущего уровня требуют Claude Code v2.1.284 или позже. До версии 2.1.284 `/effort ultracode` устанавливал сессию на `xhigh`, и `/effort ultracode off` не удавался с `Invalid argument`. Запустите его во время ответа Claude и, после подтверждения [предупреждения о кэше](/docs/ru/prompt-caching#changing-effort-level), если Claude Code показывает его, Claude Code применяет новый уровень к следующему запросу в этом ходу. До версии 2.1.242 Claude Code решал из флага функции, который он получал от Anthropic, запускать ли команду в середине хода или ставить её в очередь до завершения хода, и всегда ставил её в очередь в сессии, которая не [получает флаги функций](/docs/ru/env-vars#features-that-need-feature-flag-fetching), такой как на [поставщике третьей стороны](/docs/ru/third-party-integrations). Работает в `-p` |

89| `/exit` | Выйти из CLI. В прикреплённой [фоновой сессии](/docs/ru/agent-view#attach-to-a-session) это отсоединяет и сессия продолжает работать. Псевдоним: `/quit` |92| `/exit` | Выйти из CLI. В прикреплённой [фоновой сессии](/docs/ru/agent-view#attach-to-a-session) это отсоединяет и сессия продолжает работать. Псевдоним: `/quit` |

90| `/export [filename]` | Экспортировать текущий разговор как простой текст. С именем файла записывает напрямую в этот файл. Без него открывает диалог для копирования в буфер обмена или сохранения в файл |93| `/export [filename]` | Экспортировать текущий разговор как простой текст. С именем файла записывает напрямую в этот файл. Без него открывает диалог для копирования в буфер обмена или сохранения в файл |

91| `/fast [on\|off]` | Переключить [быстрый режим](/docs/ru/fast-mode) включен или выключен. Запустите его во время ответа Claude и Claude Code переключает быстрый режим без ожидания завершения хода, хотя текущий ход завершается с его исходной скоростью. До версии 2.1.242 Claude Code решал из флага функции, который он получал от Anthropic, запускать ли команду в середине хода или ставить её в очередь до завершения хода, и всегда ставил её в очередь в сессии, которая не [получает флаги функций](/docs/ru/env-vars#features-that-need-feature-flag-fetching). Доступность в неинтерактивном режиме с `-p` ограничена; см. [Переключить быстрый режим](/docs/ru/fast-mode#toggle-fast-mode). Требует Claude Code v2.1.205 или позже |94| `/fast [on\|off]` | Переключить [быстрый режим](/docs/ru/fast-mode) включен или выключен. Запустите его во время ответа Claude и Claude Code переключает быстрый режим без ожидания завершения хода, хотя текущий ход завершается с его исходной скоростью. До версии 2.1.242 Claude Code решал из флага функции, который он получал от Anthropic, запускать ли команду в середине хода или ставить её в очередь до завершения хода, и всегда ставил её в очередь в сессии, которая не [получает флаги функций](/docs/ru/env-vars#features-that-need-feature-flag-fetching). Доступность в неинтерактивном режиме с `-p` ограничена; см. [Переключить быстрый режим](/docs/ru/fast-mode#toggle-fast-mode). Требует Claude Code v2.1.205 или позже |

92| `/feedback [report]` | Отправить отзыв о продукте о Claude Code. Открывает тот же диалог, что и [`/bug`](#all-commands), с тем же шагом согласия, правилами отправки и поведением в середине хода. В сессиях с [отзывом, составленным Claude](/docs/ru/tools-reference#sendfeedback-tool-behavior), `/feedback` без аргумента открывает очередь черновиков вместо этого, где вы просматриваете, редактируете, отправляете или отклоняете черновики, которые Claude поставил в очередь; очередь включает опцию для написания нового отчёта в диалоге. С аргументом и для `/bug` всегда диалог открывается напрямую |95| `/feedback [report]` | Отправить отзыв о продукте о Claude Code. Открывает тот же диалог, что и [`/bug`](#all-commands), с тем же шагом согласия, правилами отправки и поведением в середине хода. В сессиях с [отзывом, составленным Claude](/docs/ru/tools-reference#sendfeedback-tool-behavior), `/feedback` без аргумента открывает очередь черновиков вместо этого, где вы просматриваете, редактируете, отправляете или отклоняете черновики, которые Claude поставил в очередь; очередь включает опцию для написания нового отчёта в диалоге. С аргументом, и для `/bug` всегда диалог открывается напрямую |

93| `/fewer-permission-prompts` | **[Skill](/docs/ru/skills#bundled-skills).** Сканировать ваши стенограммы на предмет распространённых вызовов инструментов Bash и MCP только для чтения, затем добавить приоритизированный список разрешений в проект `.claude/settings.json` для уменьшения подсказок разрешений |96| `/fewer-permission-prompts` | **[Skill](/docs/ru/skills#bundled-skills).** Сканировать ваши стенограммы на предмет распространённых вызовов инструментов Bash и MCP только для чтения, затем добавить приоритизированный список разрешений в проект `.claude/settings.json` для уменьшения подсказок разрешений |

94| `/focus` | Переключить представление фокуса, которое показывает только вашу последнюю подсказку, однострочное резюме вызова инструмента с diffstats редактирования и финальный ответ. Резюме вызова инструмента также подсчитывает подагентов, запущенных в ходу, и сворачивает завершённые уведомления фоновых задач в один счёт. Выбор сохраняется между сессиями; установите [`viewMode`](/docs/ru/settings-reference#viewmode) в настройках для переопределения. Доступно только в [полноэкранном рендеринге](/docs/ru/fullscreen). [Расширение VS Code](/docs/ru/vs-code#use-the-prompt-box) предлагает свой собственный вид Focus как переключатель меню команд, сохранённый как параметр расширения, независимый от `viewMode` |97| `/focus` | Переключить представление фокуса, которое показывает только вашу последнюю подсказку, однострочное резюме вызова инструмента с diffstats редактирования и финальный ответ. Резюме вызова инструмента также подсчитывает подагентов, запущенных в ходу, и сворачивает завершённые уведомления фоновых задач в один счёт. Выбор сохраняется между сессиями; установите [`viewMode`](/docs/ru/settings-reference#viewmode) в настройках для переопределения. Доступно только в [полноэкранном рендеринге](/docs/ru/fullscreen). Из [Remote Control](/docs/ru/remote-control) клиента запустите `/focus [on\|off]` для включения или отключения представления фокуса для текущей сессии только, без изменения вашего сохранённого выбора; это требует Claude Code v2.1.281 или позже. [Расширение VS Code](/docs/ru/vs-code#use-the-prompt-box) предлагает свой собственный вид Focus как переключатель меню команд, сохранённый как параметр расширения, независимый от `viewMode` |

95| `/fork [prompt]` | [Скопировать текущий разговор](/docs/ru/agent-view#copy-the-session-with-%2Ffork) в новую фоновую сессию и продолжить работу здесь. Передайте подсказку и копия начнёт работать над ней сразу же; без неё она ждёт в представлении агента для своей первой подсказки. Кроме случаев, когда копия [редактирует на месте](/docs/ru/agent-view#how-file-edits-are-isolated), Claude Code инструктирует её создать свой собственный worktree перед внесением изменений кода; инструкция изоляции требует Claude Code v2.1.221 или позже. Чтобы передать побочную задачу подагенту, результат которого возвращается в этот разговор, используйте `/subtask`; чтобы переключиться в копию самостоятельно, используйте `/branch`. Требует Claude Code v2.1.212 или позже; на v2.1.161 через v2.1.211 и когда [представление агента отключено](/docs/ru/agent-view#turn-off-agent-view), `/fork` запускает [разветвлённый подагент](/docs/ru/sub-agents#fork-the-current-conversation) вместо этого |98| `/fork [prompt]` | [Скопировать текущий разговор](/docs/ru/agent-view#copy-the-session-with-%2Ffork) в новую фоновую сессию и продолжить работу здесь. Передайте подсказку и копия начнёт работать над ней сразу же; без неё она ждёт в представлении агента для своей первой подсказки. Кроме случаев, когда копия [редактирует на месте](/docs/ru/agent-view#how-file-edits-are-isolated), Claude Code инструктирует её создать свой собственный worktree перед внесением изменений кода; инструкция изоляции требует Claude Code v2.1.221 или позже. Чтобы передать побочную задачу подагенту, результат которого возвращается в этот разговор, используйте `/subtask`; чтобы переключиться в копию самостоятельно, используйте `/branch`. Требует Claude Code v2.1.212 или позже; на v2.1.161 через v2.1.211 и когда [представление агента отключено](/docs/ru/agent-view#turn-off-agent-view), `/fork` запускает [разветвлённый подагент](/docs/ru/sub-agents#fork-the-current-conversation) вместо этого |

96| `/goal [condition\|clear]` | Установить [цель](/docs/ru/goal): Claude продолжает работать между ходами до тех пор, пока условие не будет выполнено или цель [очищается по другой причине](/docs/ru/goal#how-evaluation-works). Без аргумента показывает текущую или недавно достигнутую цель. `clear`, `stop`, `off`, `reset`, `none` или `cancel` удаляет активную цель рано |99| `/goal [condition\|clear]` | Установить [цель](/docs/ru/goal): Claude продолжает работать между ходами до тех пор, пока условие не будет выполнено или цель [очищается по другой причине](/docs/ru/goal#how-evaluation-works). Без аргумента показывает текущую или недавно достигнутую цель. `clear`, `stop`, `off`, `reset`, `none` или `cancel` удаляет активную цель рано |

97| `/heapdump` | Записать снимок кучи JavaScript и разбор памяти в `~/Desktop` или ваш домашний каталог на Linux без папки Desktop для диагностики высокого использования памяти. Прикрепляйте только файл `-diagnostics.json` при сообщении о проблеме с памятью; `.heapsnapshot` содержит ваш полный разговор и учётные данные, поэтому не делитесь им. [Скрыто из меню команд](#how-the-command-menu-matches-what-you-type); введите его полностью. См. [что делать с выводом](/docs/ru/troubleshooting#high-cpu-or-memory-usage) |100| `/heapdump` | Записать снимок кучи JavaScript и разбор памяти в `~/Desktop` или ваш домашний каталог на Linux без папки Desktop для диагностики высокого использования памяти. Прикрепляйте только файл `-diagnostics.json` при сообщении о проблеме с памятью; `.heapsnapshot` содержит ваш полный разговор и учётные данные, поэтому не делитесь им. [Скрыто из меню команд](#how-the-command-menu-matches-what-you-type); введите его полностью. См. [что делать с выводом](/docs/ru/troubleshooting#high-cpu-or-memory-usage) |


121| `/pr-comments [PR]` | Удалено в v2.1.91. Попросите Claude напрямую просмотреть комментарии pull request вместо этого. На более ранних версиях получает и отображает комментарии из GitHub pull request; автоматически обнаруживает PR для текущей ветки или передайте URL или номер PR. Требует CLI `gh` |124| `/pr-comments [PR]` | Удалено в v2.1.91. Попросите Claude напрямую просмотреть комментарии pull request вместо этого. На более ранних версиях получает и отображает комментарии из GitHub pull request; автоматически обнаруживает PR для текущей ветки или передайте URL или номер PR. Требует CLI `gh` |

122| `/privacy-settings` | Просмотреть и обновить ваши параметры конфиденциальности. Доступно только для подписчиков плана Pro и Max |125| `/privacy-settings` | Просмотреть и обновить ваши параметры конфиденциальности. Доступно только для подписчиков плана Pro и Max |

123| `/radio` | Открыть Claude FM lo-fi радио в вашем браузере. Выводит URL потока, когда браузер недоступен |126| `/radio` | Открыть Claude FM lo-fi радио в вашем браузере. Выводит URL потока, когда браузер недоступен |

124| `/rate-limit-options` | Показать способы продолжить работу, когда лимит использования claude.ai блокирует запрос: ждать и [продолжить автоматически, когда лимит сбросится](/docs/ru/interactive-mode#wait-for-a-usage-limit-to-reset), добавить [кредиты использования](/docs/ru/costs#add-usage-credits-to-your-subscription) или обновить ваш план. Claude Code также может открыть это меню самостоятельно, когда вы достигнете лимита на вашем собственном терминале. См. [Отключить автоматическое продолжение](/docs/ru/interactive-mode#turn-automatic-continue-off). Требует подписку claude.ai. Не отображается в меню команд; введите полностью. Строки ожидания и продолжения требуют Claude Code v2.1.234 или позже |127| `/rate-limit-options` | Показать способы продолжить работу, когда лимит использования claude.ai блокирует запрос: ждать и [продолжить автоматически, когда лимит сбросится](/docs/ru/interactive-mode#wait-for-a-usage-limit-to-reset), добавить [кредиты использования](/docs/ru/costs#add-usage-credits-to-your-subscription) или обновить ваш план. Claude Code также может открыть это меню самостоятельно, когда вы достигнете лимита на вашем собственном терминале. См. [Отключить автоматическое продолжение](/docs/ru/interactive-mode#turn-automatic-continue-off). Требует подписку claude.ai. Строки ожидания и продолжения требуют Claude Code v2.1.234 или позже |

125| `/recap` | Создать однострочное резюме текущей сессии по требованию. См. [Резюме сессии](/docs/ru/interactive-mode#session-recap) для автоматического резюме, которое появляется после того, как вы были в отсутствии |128| `/recap` | Создать однострочное резюме текущей сессии по требованию. См. [Резюме сессии](/docs/ru/interactive-mode#session-recap) для автоматического резюме, которое появляется после того, как вы были в отсутствии |

126| `/release-notes` | Просмотреть журнал изменений в интерактивном средстве выбора версий. Выберите конкретную версию для просмотра её примечаний к выпуску или выберите показать все версии. Примечания появляются в вашей стенограмме без входа в разговор, который видит Claude |129| `/release-notes` | Просмотреть журнал изменений в интерактивном средстве выбора версий. Выберите конкретную версию для просмотра её примечаний к выпуску или выберите показать все версии. Примечания появляются в вашей стенограмме без входа в разговор, который видит Claude |

127| `/reload-plugins [--force]` | Перезагрузить все активные [плагины](/docs/ru/plugins/overview) для применения ожидающих изменений без перезагрузки. Сообщает счёты для каждого перезагруженного компонента и отмечает любые ошибки загрузки. Когда перезагрузка изменит, какие инструменты MCP загружены и инвалидирует кэш подсказок, команда предупреждает и пропускает, если вы не передадите `--force`. Также доступно в неинтерактивном режиме (`-p`), Agent SDK и приложении рабочего стола, где оно запускается только на входе, введённом напрямую в сессию и не применяет изменения MCP плагинов; требует Claude Code v2.1.260 или позже. См. [Применить изменения плагинов без перезагрузки](/docs/ru/plugins/cli-reference#reload-plugins) |130| `/reload-plugins [--force]` | Перезагрузить все активные [плагины](/docs/ru/plugins/overview) для применения ожидающих изменений без перезагрузки. Сообщает счёты для каждого перезагруженного компонента и отмечает любые ошибки загрузки. Когда перезагрузка изменит, какие инструменты MCP загружены и инвалидирует кэш подсказок, команда предупреждает и пропускает, если вы не передадите `--force`. Также доступно в неинтерактивном режиме (`-p`), Agent SDK и приложении рабочего стола, где оно запускается только на входе, введённом напрямую в сессию и не применяет изменения MCP плагинов; требует Claude Code v2.1.260 или позже. См. [Применить изменения плагинов без перезагрузки](/docs/ru/plugins/cli-reference#reload-plugins) |

costs.md +2 −0

Details

96 96 

97Запустите [`/insights`](/docs/ru/commands#all-commands) для отчёта о том, как вы работаете, а не о том, сколько токенов вы использовали. Он анализирует ваши недавние сессии на этом устройстве и пишет отчёт HTML, охватывающий то, над чем вы работаете, точки трения, такие как неправильно понятые запросы или ошибочный код, и предложения по более эффективному использованию Claude Code. Один запуск анализирует до 200 сессий, которые он ещё не видел, и пропускает очень короткие. Когда сессии исключены, заголовок отчёта показывает проанализированное количество с общим количеством в скобках, например `200 sessions (412 total)`.97Запустите [`/insights`](/docs/ru/commands#all-commands) для отчёта о том, как вы работаете, а не о том, сколько токенов вы использовали. Он анализирует ваши недавние сессии на этом устройстве и пишет отчёт HTML, охватывающий то, над чем вы работаете, точки трения, такие как неправильно понятые запросы или ошибочный код, и предложения по более эффективному использованию Claude Code. Один запуск анализирует до 200 сессий, которые он ещё не видел, и пропускает очень короткие. Когда сессии исключены, заголовок отчёта показывает проанализированное количество с общим количеством в скобках, например `200 sessions (412 total)`.

98 98 

99Когда [автоматический режим](/docs/ru/permission-modes#eliminate-prompts-with-auto-mode) доступен для сессии и ваши недавние сессии в основном выполнялись без него, отчёт также может включать оценку того, сколько подсказок разрешений автоматический режим мог бы обработать в этих сессиях.

100 

99Claude Code пишет последний отчёт в `~/.claude/usage-data/report.html` и сохраняет копию с временной меткой каждого запуска в том же каталоге, поэтому более ранние отчёты не перезаписываются. Claude Code удаляет отчёты по тому же расписанию, что и остальные данные вашей сессии: при запуске он удаляет файлы старше [`cleanupPeriodDays`](/docs/ru/claude-directory#cleaned-up-automatically), 30 дней по умолчанию.101Claude Code пишет последний отчёт в `~/.claude/usage-data/report.html` и сохраняет копию с временной меткой каждого запуска в том же каталоге, поэтому более ранние отчёты не перезаписываются. Claude Code удаляет отчёты по тому же расписанию, что и остальные данные вашей сессии: при запуске он удаляет файлы старше [`cleanupPeriodDays`](/docs/ru/claude-directory#cleaned-up-automatically), 30 дней по умолчанию.

100 102 

101Вы можете запустить `/insights` на любом плане и с любым поставщиком. Анализ выполняется через того же поставщика и аккаунт, что и ваши обычные сессии, и токены учитываются в вашем плане или использовании API. Сессии с других устройств и claude.ai не включены.103Вы можете запустить `/insights` на любом плане и с любым поставщиком. Анализ выполняется через того же поставщика и аккаунт, что и ваши обычные сессии, и токены учитываются в вашем плане или использовании API. Сессии с других устройств и claude.ai не включены.

desktop.md +52 −46

Details

57 Работа с кодом57 Работа с кодом

58</h2>58</h2>

59 59 

60Дайте Claude правильный контекст, контролируйте, сколько он делает самостоятельно, и проверьте, что он изменил.60Предоставьте Claude правильный контекст, контролируйте, сколько он делает самостоятельно, и проверяйте внесённые им изменения.

61 61 

62<h3 id="use-the-prompt-box">62<h3 id="use-the-prompt-box">

63 Использование поля подсказки63 Используйте поле подсказки

64</h3>64</h3>

65 65 

66Введите, что вы хотите, чтобы сделал Claude, и нажмите **Enter** для отправки. Claude читает файлы вашего проекта, вносит изменения и запускает команды на основе вашего [режима разрешений](#choose-a-permission-mode). Вы можете прервать Claude в любой момент: нажмите кнопку остановки для немедленного прерывания или введите коррекцию и нажмите **Enter** для отправки без остановки выполняемого действия. Claude читает коррекцию как только текущее действие завершится и корректирует перед своим следующим шагом.66Введите, что вы хотите, чтобы Claude сделал, и нажмите **Enter** для отправки. Claude читает файлы вашего проекта, вносит изменения и выполняет команды на основе вашего [режима разрешений](#choose-a-permission-mode). Вы можете изменить направление действий Claude в любой момент: нажмите кнопку остановки, чтобы прервать немедленно, или введите исправление и нажмите **Enter** для отправки без остановки выполняемого действия. Claude прочитает исправление, как только завершится текущее действие, и скорректирует свои действия перед следующим шагом.

67 67 

68Кнопка **+** рядом с полем подсказки дает вам доступ к вложениям файлов, [skills](#use-skills), [коннекторам](#connect-external-tools) и [плагинам](#install-plugins).68Кнопка **+** рядом с полем подсказки даёт вам доступ к вложениям файлов, [навыкам](#use-skills), [коннекторам](#connect-external-tools) и [плагинам](#install-plugins).

69 69 

70<h3 id="add-files-and-context-to-prompts">70<h3 id="add-files-and-context-to-prompts">

71 Добавление файлов и контекста к подсказкам71 Добавляйте файлы и контекст в подсказки

72</h3>72</h3>

73 73 

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

75 75 

76* **@mention файлы**: введите `@` с последующим именем файла, чтобы добавить файл в контекст разговора. Claude может затем читать и ссылаться на этот файл. @mention недоступен в облачных сеансах и сеансах WSL.76* **@mention файлов**: введите `@` и имя файла, чтобы добавить файл в контекст беседы. Claude сможет затем читать и ссылаться на этот файл. @mention недоступен в облачных сеансах и сеансах WSL.

77* **Вложение файлов**: прикрепляйте изображения, PDF-файлы и другие файлы к вашей подсказке, используя кнопку вложения, или перетаскивайте файлы прямо в подсказку. Это полезно для обмена скриншотами ошибок, макетами дизайна или справочными документами.77* **Вложение файлов**: вложите изображения, PDF-файлы и другие файлы в вашу подсказку, используя кнопку вложения, или перетащите файлы прямо в поле подсказки. Это полезно для обмена скриншотами ошибок, макетами дизайна или справочными документами.

78 78 

79<h3 id="choose-a-permission-mode">79<h3 id="choose-a-permission-mode">

80 Выбор режима разрешений80 Выберите режим разрешений

81</h3>81</h3>

82 82 

83Режимы разрешений контролируют, сколько автономности имеет Claude во время сеанса: спрашивает ли он перед редактированием файлов, запуском команд или обоих. Вы можете переключать режимы в любое время, используя селектор режима рядом с кнопкой отправки. Чтобы одобрить каждое изменение самостоятельно, переключитесь на Manual.83Режимы разрешений контролируют, насколько автономно Claude действует во время сеанса: спрашивает ли он перед редактированием файлов, выполнением команд или обоим. Вы можете переключать режимы разрешений в любой момент, используя селектор режима рядом с кнопкой отправки. Чтобы одобрять каждое изменение самостоятельно, переключитесь на Manual.

84 84 

85Чтобы установить режим по умолчанию для новых локальных сеансов, добавьте `permissions.defaultMode` в ваш [файл параметров](/docs/ru/settings#where-settings-live). Приложение для рабочего стола читает те же файлы параметров, что и CLI. Режим, который вы выбираете в селекторе, запоминается для каждой папки и имеет приоритет над `defaultMode` для этой папки, кроме Plan, который применяется только к текущему сеансу.85Чтобы установить режим по умолчанию для новых локальных сеансов, добавьте `permissions.defaultMode` в ваш [файл параметров](/docs/ru/settings#where-settings-live). Приложение для рабочего стола читает те же файлы параметров, что и CLI. Режим, который вы выбираете в селекторе, запоминается для каждой папки и имеет приоритет над `defaultMode` для этой папки, за исключением Plan, который применяется только к текущему сеансу.

86 86 

87| Режим | Ключ параметров | Поведение |87| Режим | Ключ параметров | Поведение |

88| - | - | - |88| - | - | - |

89| **Manual** | `default` | Claude спрашивает перед редактированием файлов или запуском команд. Вы видите различия и можете принять или отклонить каждое изменение. |89| **Manual** | `default` | Claude спрашивает перед редактированием файлов или выполнением команд. Вы видите diff и можете принять или отклонить каждое изменение. |

90| **Accept edits** | `acceptEdits` | Claude автоматически принимает редактирование файлов и общие команды файловой системы, такие как `mkdir`, `touch` и `mv`, но всё ещё спрашивает перед запуском других команд терминала. Используйте это, когда вы доверяете изменениям файлов и хотите более быструю итерацию. |90| **Accept edits** | `acceptEdits` | Claude автоматически принимает редактирование файлов и общие команды файловой системы, такие как `mkdir`, `touch` и `mv`, но всё ещё спрашивает перед выполнением других команд терминала. Используйте это, когда вы доверяете изменениям файлов и хотите более быструю итерацию. |

91| **Plan** | `plan` | Claude читает файлы и запускает команды для исследования, затем предлагает план без редактирования вашего исходного кода. Хорошо для сложных задач, где вы хотите сначала проверить подход. |91| **Plan** | `plan` | Claude читает файлы и выполняет команды для исследования, затем предлагает план без редактирования вашего исходного кода. Хорошо подходит для сложных задач, когда вы хотите сначала проверить подход. |

92| **Auto** | `auto` | Claude выполняет все действия с фоновыми проверками безопасности, которые проверяют соответствие вашему запросу. Снижает подсказки разрешений при сохранении надзора. Появляется, когда [auto mode доступен](#auto-mode-availability); отдельного переключателя Settings для этого нет. |92| **Auto** | `auto` | Claude работает без обычных подсказок; перед выполнением действий, таких как команды shell и сетевые запросы, фоновый классификатор проверяет, что они соответствуют вашему запросу. Появляется, когда [auto mode доступен](#auto-mode-availability); отдельного переключателя Settings для этого нет. |

93| **Bypass permissions** | `bypassPermissions` | Claude работает без подсказок разрешений, кроме [действий, которые ни один режим не одобряет автоматически](/docs/ru/permission-modes#actions-no-mode-auto-approves), классификаторов безопасности, когда Claude [действует на внешних сайтах](#browse-external-sites), или действий на рабочем столе, где Claude всегда спрашивает в первую очередь, таких как [архивирование сеанса](#work-across-sessions). Эквивалентно `--dangerously-skip-permissions` в CLI. На планах Pro и Max включите это в Settings → Claude Code под "Allow bypass permissions mode"; на планах Team и Enterprise нет переключателя Settings, и политика организации контролирует это вместо этого. Используйте только в изолированных контейнерах или виртуальных машинах. |93| **Bypass permissions** | `bypassPermissions` | Claude работает без подсказок разрешений, за исключением [действий, которые ни один режим не одобряет автоматически](/docs/ru/permission-modes#actions-no-mode-auto-approves), классификаторов безопасности, когда Claude [действует на внешних сайтах](#browse-external-sites), или действий рабочего стола, где Claude всегда спрашивает в первую очередь, таких как [архивирование сеанса](#work-across-sessions). Эквивалентно `--dangerously-skip-permissions` в CLI. На планах Pro и Max включите это в Settings → Claude Code в разделе "Allow bypass permissions mode"; на планах Team и Enterprise переключателя Settings нет, и вместо этого политика организации его контролирует. Используйте это только в sandboxed контейнерах или виртуальных машинах. |

94 94 

95Более ранние версии вкладки Code обозначали эти режимы как Ask permissions, Auto accept edits и Plan mode.95Более ранние версии вкладки Code обозначали эти режимы как Ask permissions, Auto accept edits и Plan mode.

96 96 


103В развёртываниях Enterprise, которые маршрутизируют Desktop на Google Cloud's Agent Platform, auto mode также доступен по умолчанию; см. [Auto mode на Bedrock, Agent Platform или Foundry](/docs/ru/permission-modes#enable-auto-mode-on-bedrock-agent-platform-or-foundry) для поддерживаемых моделей.103В развёртываниях Enterprise, которые маршрутизируют Desktop на Google Cloud's Agent Platform, auto mode также доступен по умолчанию; см. [Auto mode на Bedrock, Agent Platform или Foundry](/docs/ru/permission-modes#enable-auto-mode-on-bedrock-agent-platform-or-foundry) для поддерживаемых моделей.

104 104 

105<Tip title="Best practice">105<Tip title="Best practice">

106 Начните сложные задачи в Plan, чтобы Claude наметил подход перед внесением изменений. После одобрения плана переключитесь на Accept edits или Manual для его выполнения. См. [explore first, then plan, then code](/docs/ru/best-practices#explore-first-then-plan-then-code) для получения дополнительной информации об этом рабочем процессе.106 Начните сложные задачи в Plan, чтобы Claude наметил подход перед внесением изменений. После того как вы одобрите план, переключитесь на Accept edits или Manual для его выполнения. См. [explore first, then plan, then code](/docs/ru/best-practices#explore-first-then-plan-then-code) для получения дополнительной информации об этом рабочем процессе.

107</Tip>107</Tip>

108 108 

109Облачные сеансы поддерживают Accept edits, Plan и Auto. Accept edits соответствует режиму `default`: облачные сеансы предварительно одобряют редактирование файлов, поэтому селектор показывает Accept edits вместо Manual. Bypass permissions недоступен в облачных сеансах, включая сеансы в [самостоятельно размещённой среде](/docs/ru/self-hosted-environments).109Облачные сеансы поддерживают Accept edits, Plan и Auto. Accept edits соответствует режиму `default`: облачные сеансы предварительно одобряют редактирование файлов, поэтому селектор показывает Accept edits вместо Manual. Bypass permissions недоступен в облачных сеансах, включая сеансы в [самостоятельно размещённой среде](/docs/ru/self-hosted-environments).

110 110 

111Администраторы предприятия могут ограничить, какие режимы разрешений доступны. См. [конфигурация предприятия](#enterprise-configuration) для получения подробной информации.111Администраторы Enterprise могут ограничить, какие режимы разрешений доступны. См. [конфигурация enterprise](#enterprise-configuration) для получения подробной информации.

112 112 

113<h3 id="preview-your-app">113<h3 id="preview-your-app">

114 Предпросмотр вашего приложения114 Предпросмотр вашего приложения

115</h3>115</h3>

116 116 

117Claude может запустить dev-сервер и открыть его в панели Browser для проверки своих изменений. Это работает как для фронтенд-веб-приложений, так и для бэкенд-серверов: Claude может тестировать конечные точки API, просматривать логи сервера и итерировать по найденным проблемам. В большинстве случаев Claude автоматически запускает сервер после редактирования файлов проекта. Вы также можете попросить Claude предпросмотр в любое время. По умолчанию Claude [автоматически проверяет](#auto-verify-changes) изменения после каждого редактирования.117Claude может запустить dev сервер и открыть его в панели Browser для проверки своих изменений. Это работает как для фронтенд веб-приложений, так и для бэкенд серверов: Claude может тестировать API endpoints, просматривать логи сервера и итерировать по найденным проблемам. В большинстве случаев Claude автоматически запускает сервер после редактирования файлов проекта. Вы также можете попросить Claude выполнить предпросмотр в любой момент. По умолчанию Claude [автоматически проверяет](#auto-verify-changes) изменения после каждого редактирования.

118 118 

119Панель Browser также может открывать статические HTML-файлы, PDF-файлы, изображения и видео из вашего проекта. Нажмите на путь HTML, PDF, изображения или видео в чате, чтобы открыть его там.119Панель Browser также может открывать статические HTML файлы, PDF-файлы, изображения и видео из вашего проекта. Нажмите на путь HTML, PDF, изображения или видео в чате, чтобы открыть его там.

120 120 

121Из панели Browser вы можете:121Из панели Browser вы можете:

122 122 

123* Взаимодействовать с вашим запущенным приложением прямо в панели Browser123* Взаимодействовать с вашим запущенным приложением прямо в панели Browser

124* Смотреть, как Claude автоматически проверяет свои собственные изменения: он делает скриншоты, проверяет DOM, нажимает элементы, заполняет формы и исправляет найденные проблемы124* Смотреть, как Claude автоматически проверяет свои собственные изменения: он делает скриншоты, проверяет DOM, нажимает на элементы, заполняет формы и исправляет найденные проблемы

125* Запускать или останавливать серверы из раскрывающегося списка сервера в панели инструментов сеанса125* Запускать или останавливать серверы из выпадающего меню сервера в панели инструментов сеанса

126* Сохранять cookies и локальное хранилище между перезагрузками сервера, выбрав **Persist sessions** в раскрывающемся списке, чтобы вам не пришлось повторно входить во время разработки126* Сохранять cookies и локальное хранилище при перезагрузке сервера, выбрав **Persist sessions** в выпадающем меню, чтобы вам не пришлось повторно входить во время разработки

127* Редактировать конфигурацию сервера или остановить все серверы сразу127* Редактировать конфигурацию сервера или остановить все серверы сразу

128 128 

129Claude создаёт начальную конфигурацию сервера на основе вашего проекта. Если ваше приложение использует пользовательскую команду dev, отредактируйте `.claude/launch.json` в соответствии с вашей установкой. См. [Configure preview servers](#configure-preview-servers) для полного справочника.129Claude создаёт начальную конфигурацию сервера на основе вашего проекта. Если ваше приложение использует пользовательскую команду dev, отредактируйте `.claude/launch.json` в соответствии с вашей установкой. См. [Configure preview servers](#configure-preview-servers) для полного справочника.


138 138 

139Claude может читать и взаимодействовать с внешними страницами, используя те же инструменты, которые он использует для [проверки вашего приложения](#preview-your-app), с двумя дополнительными проверками безопасности:139Claude может читать и взаимодействовать с внешними страницами, используя те же инструменты, которые он использует для [проверки вашего приложения](#preview-your-app), с двумя дополнительными проверками безопасности:

140 140 

141* Классификаторы безопасности проверяют действия записи Claude на внешних страницах, такие как нажатие и ввод текста, в каждом режиме разрешений. Это те же классификаторы, которые использует [auto mode](#choose-a-permission-mode), и когда они отмечают действие, вы получаете подсказку разрешения независимо от режима.141* Классификаторы безопасности проверяют действия Claude по записи на внешних страницах, такие как нажатие и ввод текста, в каждом режиме разрешений. Это те же классификаторы, которые использует [auto mode](#choose-a-permission-mode), и когда они отмечают действие, вы получаете подсказку разрешения независимо от режима.

142* В режимах разрешений, отличных от Auto и Bypass permissions, проверка списка разрешённых доменов также применяется перед тем, как Claude переходит на новый сайт.142* В режимах разрешений, отличных от Auto и Bypass permissions, проверка списка разрешённых доменов также применяется перед тем, как Claude переходит на новый сайт.

143 143 

144<h4 id="approve-claude’s-actions-on-a-site">144<h4 id="approve-claude’s-actions-on-a-site">

145 Одобрение действий Claude на сайте145 Одобрите действия Claude на сайте

146</h4>146</h4>

147 147 

148В первый раз, когда Claude действует на внешнем сайте, появляется карточка разрешения и Claude ждёт вашего выбора: **Allow once**, **Always allow** или **Deny**. **Allow once** одобряет действие без сохранения чего-либо. **Always allow** сохраняет одобрение для этого сайта на вашем устройстве, и вы можете отозвать его в Settings. Каждый сайт требует собственного одобрения, включая поддомены. Ваши локальные dev-серверы и файлы проекта не требуют одобрения, поэтому [auto-verify](#auto-verify-changes) продолжает работать без подсказок.148Когда Claude впервые действует на внешнем сайте, появляется карточка разрешения и Claude ждёт вашего выбора: **Allow once**, **Always allow** или **Deny**. **Allow once** одобряет действие без сохранения чего-либо. **Always allow** сохраняет одобрение для этого сайта на вашем устройстве, и вы можете отозвать его в Settings. Каждый сайт требует собственного одобрения, включая поддомены. Ваши локальные dev серверы и файлы проекта не требуют одобрения, поэтому [auto-verify](#auto-verify-changes) продолжает работать без подсказок.

149 149 

150Даже на одобренном сайте Claude не будет покупать товары, создавать учётные записи или обходить CAPTCHAs без вашего ввода. Просмотр в панели Browser использует ту же модель безопасности, что и [Claude in Chrome extension](/docs/ru/chrome). См. [Using Claude in Chrome safely](https://support.claude.com/en/articles/12902428-using-claude-in-chrome-safely) для того, как Claude обрабатывает чувствительные сайты и рискованные действия.150Даже на одобренном сайте Claude не будет покупать товары, создавать учётные записи или обходить CAPTCHA без вашего ввода. Просмотр в панели Browser использует ту же модель безопасности, что и [Claude в расширении Chrome](/docs/ru/chrome). См. [Using Claude in Chrome safely](https://support.claude.com/en/articles/12902428-using-claude-in-chrome-safely) для получения информации о том, как Claude обрабатывает чувствительные сайты и рискованные действия.

151 151 

152<h4 id="choose-between-the-browser-and-the-chrome-extension">152<h4 id="choose-between-the-browser-and-the-chrome-extension">

153 Выбор между Browser и Chrome extension153 Выберите между Browser и расширением Chrome

154</h4>154</h4>

155 155 

156Панель Browser использует чистый профиль браузера, отдельный от вашего личного браузера, без каких-либо сохранённых входов или истории. Используйте его для создания и тестирования вашего приложения и для сайтов, которые не требуют вашей личности. Когда вы хотите, чтобы Claude действовал как вы в ваших вошедших сеансах, используйте [Claude in Chrome extension](/docs/ru/chrome) вместо этого, которая делится состоянием входа вашего браузера.156Панель Browser использует чистый профиль браузера, отдельный от вашего личного браузера, без ваших сохранённых входов или истории. Используйте его для создания и тестирования вашего приложения и для сайтов, которые не требуют вашей личности. Когда вы хотите, чтобы Claude действовал как вы в ваших вошедших сеансах, используйте вместо этого [Claude в расширении Chrome](/docs/ru/chrome), которое делится состоянием входа вашего браузера.

157 157 

158<h4 id="restrict-external-browsing-for-your-organization">158<h4 id="restrict-external-browsing-for-your-organization">

159 Ограничение внешнего просмотра для вашей организации159 Ограничьте внешний просмотр для вашей организации

160</h4>160</h4>

161 161 

162Browser следует тем же [элементам управления списком разрешённых и заблокированных сайтов](https://support.claude.com/en/articles/13065128-claude-in-chrome-admin-controls), что и Claude in Chrome extension. Если ваша организация уже настроила эти списки для расширения, Browser уважает их автоматически. Администраторы также могут отключить инструменты Claude на внешних страницах с помощью параметра управления [`browserExternalPageTools`](#managed-settings). С отключёнными инструментами пользователи всё ещё могут переходить на внешние сайты; инструменты Claude не могут читать или действовать на них.162Browser следует тем же [элементам управления списком разрешённых и заблокированных сайтов](https://support.claude.com/en/articles/13065128-claude-in-chrome-admin-controls), что и расширение Claude в Chrome. Если ваша организация уже настроила эти списки для расширения, Browser их автоматически соблюдает. Администраторы также могут отключить инструменты Claude на внешних страницах с помощью управляемого параметра [`browserExternalPageTools`](#managed-settings). С отключёнными инструментами пользователи всё ещё могут посещать внешние сайты; инструменты Claude не могут их читать или действовать на них.

163 163 

164Чтобы полностью отключить внешний просмотр, установите параметр управления [`disableBrowserExternalNavigation`](#managed-settings) на `true`. Это блокирует всю внешнюю навигацию в Browser, включая сайты в списке разрешённых вашей организации; локальные dev-серверы и предпросмотры файлов продолжают работать. Используйте `browserExternalPageTools` для того, чтобы позволить пользователям продолжать просмотр внешних сайтов без инструментов Claude, и `disableBrowserExternalNavigation` для блокирования внешних сайтов как для пользователей, так и для Claude.164Чтобы полностью отключить внешний просмотр, установите управляемый параметр [`disableBrowserExternalNavigation`](#managed-settings) на `true`. Это блокирует всю внешнюю навигацию в Browser, включая сайты в списке разрешённых вашей организации; локальные dev серверы и предпросмотры файлов продолжают работать. Используйте `browserExternalPageTools`, чтобы позволить пользователям продолжать просмотр внешних сайтов без инструментов Claude, и `disableBrowserExternalNavigation`, чтобы заблокировать внешние сайты как для пользователей, так и для Claude.

165 165 

166<h3 id="review-changes-with-diff-view">166<h3 id="review-changes-with-diff-view">

167 Просмотр изменений с помощью diff view167 Проверьте изменения с помощью представления diff

168</h3>168</h3>

169 169 

170После того как Claude вносит изменения в ваш код, diff view позволяет вам проверить изменения файл за файлом перед созданием pull request.170После того как Claude вносит изменения в ваш код, представление diff позволяет вам проверить изменения файл за файлом перед созданием pull request.

171 171 

172Когда Claude изменяет файлы, появляется индикатор статистики различий, показывающий количество добавленных и удалённых строк, например `+12 -1`. Нажмите на этот индикатор, чтобы открыть средство просмотра различий, которое отображает список файлов слева и изменения для каждого файла справа.172Когда Claude изменяет файлы, появляется индикатор статистики diff, показывающий количество добавленных и удалённых строк, например `+12 -1`. Нажмите на этот индикатор, чтобы открыть средство просмотра diff, которое отображает список файлов слева и изменения для каждого файла справа.

173 173 

174Чтобы прокомментировать определённые строки, нажмите на любую строку в diff, чтобы открыть поле комментария. Введите вашу обратную связь и нажмите **Enter**, чтобы добавить комментарий. После добавления комментариев к нескольким строкам отправьте все комментарии сразу:174Чтобы прокомментировать определённые строки, нажмите на любую строку в diff, чтобы открыть поле комментария. Введите ваш отзыв и нажмите **Enter** для добавления комментария. После добавления комментариев к нескольким строкам отправьте все комментарии сразу:

175 175 

176* **macOS**: нажмите **Cmd+Enter**176* **macOS**: нажмите **Cmd+Enter**

177* **Windows**: нажмите **Ctrl+Enter**177* **Windows**: нажмите **Ctrl+Enter**

178 178 

179Claude читает ваши комментарии и вносит запрошенные изменения, которые появляются как новый diff, который вы можете проверить.179Claude прочитает ваши комментарии и внесёт запрошенные изменения, которые появятся как новый diff, который вы можете проверить.

180 180 

181<h3 id="review-your-code">181<h3 id="review-your-code">

182 Проверка вашего кода182 Проверьте ваш код

183</h3>183</h3>

184 184 

185В diff view нажмите **Review code** в панели инструментов в верхнем правом углу, чтобы попросить Claude оценить изменения перед тем, как вы их зафиксируете. Claude проверяет текущие различия и оставляет комментарии прямо в diff view. Вы можете ответить на любой комментарий или попросить Claude пересмотреть.185В представлении diff нажмите **Review code** в панели инструментов в верхнем правом углу, чтобы попросить Claude оценить изменения перед тем, как вы их зафиксируете. Claude проверяет текущие diff и оставляет комментарии прямо в представлении diff. Вы можете ответить на любой комментарий или попросить Claude пересмотреть.

186 186 

187Проверка сосредоточена на высокозначимых проблемах: ошибки компиляции, определённые логические ошибки, уязвимости безопасности и очевидные ошибки. Она не отмечает стиль, форматирование, существующие проблемы или что-либо, что поймал бы linter.187Проверка сосредоточена на высокозначимых проблемах: ошибки компиляции, определённые логические ошибки, уязвимости безопасности и очевидные ошибки. Она не отмечает стиль, форматирование, существующие проблемы или что-либо, что поймал бы linter.

188 188 

189<h3 id="monitor-pull-request-status">189<h3 id="monitor-pull-request-status">

190 Мониторинг статуса pull request190 Мониторьте статус pull request

191</h3>191</h3>

192 192 

193После открытия pull request в сеансе появляется строка статуса CI. Claude Code использует GitHub CLI для опроса результатов проверок и выявления сбоев.193После того как вы откроете pull request, в сеансе появляется строка статуса CI. Claude Code использует GitHub CLI для опроса результатов проверок и выявления сбоев.

194 194 

195* **Auto-fix**: когда включено, Claude автоматически пытается исправить сбои CI, читая вывод ошибки и итерируя.195* **Auto-fix**: когда включено, Claude автоматически пытается исправить сбои CI, читая вывод ошибки и итерируя.

196* **Auto-merge**: когда включено, Claude объединяет PR после прохождения всех проверок. Метод слияния — squash. Auto-merge должен быть [включен в параметрах вашего репозитория GitHub](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/managing-auto-merge-for-pull-requests-in-your-repository) для работы.196* **Auto-merge**: когда включено, Claude объединяет PR после того, как все проверки пройдены. Метод объединения — squash. Сначала включите auto-merge в [параметрах вашего репозитория GitHub](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/managing-auto-merge-for-pull-requests-in-your-repository); без этого Claude не может объединить PR.

197 197 

198Используйте переключатели **Auto-fix** и **Auto-merge** в строке статуса CI для включения любой опции. Claude Code также отправляет уведомление рабочего стола при завершении CI. Чтобы архивировать сеанс автоматически после слияния или закрытия PR, включите [auto-archive](#work-in-parallel-with-sessions) в Settings → Claude Code.198Используйте переключатели **Auto-fix** и **Auto-merge** в строке статуса CI для включения любого из вариантов. Claude Code также отправляет уведомление рабочего стола, когда CI завершается. Чтобы автоматически архивировать сеанс после объединения или закрытия PR, включите [auto-archive](#work-across-sessions) в Settings → Claude Code.

199 199 

200<Note>200<Note>

201 Мониторинг PR требует установки и аутентификации [GitHub CLI (`gh`)](https://cli.github.com/) на вашей машине. Если `gh` не установлен, Desktop предложит вам установить его в первый раз, когда вы попытаетесь создать PR.201 Мониторинг PR требует, чтобы [GitHub CLI (`gh`)](https://cli.github.com/) был установлен и аутентифицирован на вашей машине. Если `gh` не установлен, Desktop предложит вам установить его в первый раз, когда вы попытаетесь создать PR.

202</Note>202</Note>

203 203 

204<h2 id="arrange-your-workspace">204<h2 id="arrange-your-workspace">


496 496 

497Локальные сеансы загружают ваши личные skills из `~/.claude/skills/`. Сеанс [SSH](#ssh-sessions) читает `~/.claude/skills/` из домашней директории удалённого хоста, а не с вашей машины.497Локальные сеансы загружают ваши личные skills из `~/.claude/skills/`. Сеанс [SSH](#ssh-sessions) читает `~/.claude/skills/` из домашней директории удалённого хоста, а не с вашей машины.

498 498 

499Локальные и облачные сеансы также загружают skills, включённые для вашей учётной записи claude.ai. Облачные сеансы загружают их вместо `~/.claude/skills/`, как описано в [Skills в сеансах Cowork и облачных сеансах](/docs/ru/skills#skills-in-cowork-and-cloud-sessions).499Локальные и облачные сеансы также загружают skills, включённые для вашей учётной записи claude.ai, за исключением локальных сеансов, когда ваша организация устанавливает [`disableSideloadFlags`](/docs/ru/settings-reference#disablesideloadflags). Облачные сеансы загружают их вместо `~/.claude/skills/`, как описано в [Skills в сеансах Cowork и облачных сеансах](/docs/ru/skills#skills-in-cowork-and-cloud-sessions).

500 500 

501<h3 id="install-plugins">501<h3 id="install-plugins">

502 Установка плагинов502 Установка плагинов


506 506 

507Для локальных и [SSH](#ssh-sessions) сеансов нажмите кнопку **+** рядом с полем подсказки и выберите **Plugins**, чтобы увидеть ваши установленные плагины и их skills. Чтобы добавить плагин, выберите **Add plugin** из подменю, чтобы открыть браузер плагинов, который показывает доступные плагины из ваших настроенных [marketplaces](/docs/ru/plugins/overview), включая официальный marketplace Anthropic. Выберите **Manage plugins**, чтобы включить, отключить или удалить плагины.507Для локальных и [SSH](#ssh-sessions) сеансов нажмите кнопку **+** рядом с полем подсказки и выберите **Plugins**, чтобы увидеть ваши установленные плагины и их skills. Чтобы добавить плагин, выберите **Add plugin** из подменю, чтобы открыть браузер плагинов, который показывает доступные плагины из ваших настроенных [marketplaces](/docs/ru/plugins/overview), включая официальный marketplace Anthropic. Выберите **Manage plugins**, чтобы включить, отключить или удалить плагины.

508 508 

509Вы можете ограничить плагины вашей учётной записью пользователя, конкретным проектом или только локально. Если ваша организация управляет плагинами централизованно, эти плагины доступны в сеансах desktop так же, как они есть в CLI.509Вы можете ограничить плагины вашей учётной записью пользователя, конкретным проектом или только локально. Если ваша организация управляет плагинами централизованно, эти плагины доступны в сеансах desktop так же, как они есть в CLI, за исключением тех, которые приложение desktop [скрывает под `disableSideloadFlags`](/docs/ru/settings-reference#disablesideloadflags).

510 510 

511Браузер плагинов недоступен в облачных сеансах, и плагины, которые вы устанавливаете из приложения desktop, недоступны для облачных сеансов. Облачный сеанс также не устанавливает плагины, которые объявляет `.claude/settings.json` репозитория, как описано в [Что переносится из вашей установки](/docs/ru/cloud-environments#what-carries-over-from-your-setup). Плагины недоступны в WSL сеансах. Для полного справочника плагинов, включая создание собственных плагинов, см. [plugins](/docs/ru/plugins/overview).511Браузер плагинов недоступен в облачных сеансах, и плагины, которые вы устанавливаете из приложения desktop, недоступны для облачных сеансов. Облачный сеанс также не устанавливает плагины, которые объявляет `.claude/settings.json` репозитория, как описано в [Что переносится из вашей установки](/docs/ru/cloud-environments#what-carries-over-from-your-setup). Плагины недоступны в WSL сеансах. Для полного справочника плагинов, включая создание собственных плагинов, см. [plugins](/docs/ru/plugins/overview).

512 512 


834* **Remote Control**: включите или отключите [Remote Control](/docs/ru/remote-control) для вашей организации834* **Remote Control**: включите или отключите [Remote Control](/docs/ru/remote-control) для вашей организации

835* **Disable Bypass permissions mode**: предотвратите пользователей в вашей организации от включения режима обхода разрешений835* **Disable Bypass permissions mode**: предотвратите пользователей в вашей организации от включения режима обхода разрешений

836 836 

837<Note>

838 Форма OpenTelemetry для Cowork в разделе **Monitoring** в [параметрах конфиденциальности и данных](https://claude.ai/admin-settings/data-privacy-controls) консоли администратора применяется только к сеансам Cowork. В сеансе Cowork на этой машине приложение desktop передаёт этот сборщик в Claude Code как переменные окружения `OTEL_*`, поэтому форма вступает в силу, даже если Claude Code в этом сеансе [никогда не получает параметры консоли администратора](#managed-settings).

839 

840 Чтобы экспортировать телеметрию из сеансов вкладки Code, установите `CLAUDE_CODE_ENABLE_TELEMETRY` и переменные `OTEL_*` в блоке `env` ваших управляемых параметров Claude Code, как показано в [конфигурации администратора для мониторинга](/docs/ru/monitoring-usage#administrator-configuration). Локальные, облачные и SSH-сеансы каждый читают [управляемые параметры из разных источников](#managed-settings). Для хостов, которые может достичь облачный сеанс, см. [доступ в сеть](/docs/ru/cloud-environments#network-access). Для `service.name`, который сообщают сеансы вкладки Code, см. [информация о сервисе](/docs/ru/monitoring-usage#service-information).

841</Note>

842 

837<h3 id="managed-settings">843<h3 id="managed-settings">

838 Управляемые параметры844 Управляемые параметры

839</h3>845</h3>

errors.md +165 −15

Details

96| `rejected the credential from its headersHelper` / `rejected the Authorization header in its config` | [Authentication](#mcp-server-needs-you-to-sign-in-again) |96| `rejected the credential from its headersHelper` / `rejected the Authorization header in its config` | [Authentication](#mcp-server-needs-you-to-sign-in-again) |

97| `MCP server "<name>" needs additional permissions (scope: "<scope>") — run /mcp to re-authenticate` | [Authentication](#mcp-server-needs-you-to-sign-in-again) |97| `MCP server "<name>" needs additional permissions (scope: "<scope>") — run /mcp to re-authenticate` | [Authentication](#mcp-server-needs-you-to-sign-in-again) |

98| `MCP server "<name>" requires re-authorization (token expired)` | [Authentication](#mcp-server-needs-you-to-sign-in-again) |98| `MCP server "<name>" requires re-authorization (token expired)` | [Authentication](#mcp-server-needs-you-to-sign-in-again) |

99| `This server's URL is missing or not a valid URL, so sign-in can't start` | [Authentication](#mcp-server-url-is-missing-or-not-a-valid-url) |

99| `Issuer mismatch in authorization response (RFC 9207)` | [Authentication](#issuer-mismatch-in-authorization-response) |100| `Issuer mismatch in authorization response (RFC 9207)` | [Authentication](#issuer-mismatch-in-authorization-response) |

101| `Refusing to send credentials to non-https token endpoint` / `<short-name> from the MCP SDK for <server-url>` | [Authentication](#refusing-to-send-credentials-to-non-https-token-endpoint) |

100| `Cloud gateway session expired — run /login to reconnect.` | [Authentication](#cloud-gateway-session-expired) |102| `Cloud gateway session expired — run /login to reconnect.` | [Authentication](#cloud-gateway-session-expired) |

101| `Cloud gateway <url> no longer accepts this session` | [Authentication](#cloud-gateway-session-expired) |103| `Cloud gateway <url> no longer accepts this session` | [Authentication](#cloud-gateway-session-expired) |

102| `Sign-in timed out while waiting for you to continue. Try again.` | [Authentication](#sign-in-timed-out-while-waiting-for-you-to-continue) |104| `Sign-in timed out while waiting for you to continue. Try again.` | [Authentication](#sign-in-timed-out-while-waiting-for-you-to-continue) |


152| `There's an issue with the selected model` | [Request errors](#theres-an-issue-with-the-selected-model) |154| `There's an issue with the selected model` | [Request errors](#theres-an-issue-with-the-selected-model) |

153| `Model ... is not a recognized model id` | [Request errors](#model-is-not-a-recognized-model-id) |155| `Model ... is not a recognized model id` | [Request errors](#model-is-not-a-recognized-model-id) |

154| `Model ... not found` | [Request errors](#model-not-found) |156| `Model ... not found` | [Request errors](#model-not-found) |

157| `Couldn't confirm model ... with the API` | [Request errors](#couldnt-confirm-model-with-the-api) |

155| `API error: ... · model not changed` | [Request errors](#api-error-model-not-changed) |158| `API error: ... · model not changed` | [Request errors](#api-error-model-not-changed) |

156| `Claude Opus is not available with the Claude Pro plan` | [Request errors](#claude-opus-is-not-available-with-the-claude-pro-plan) |159| `Claude Opus is not available with the Claude Pro plan` | [Request errors](#claude-opus-is-not-available-with-the-claude-pro-plan) |

157| `Claude Code ... does not support this model; version ... or newer is required` | [Request errors](#claude-code-does-not-support-this-model) |160| `Claude Code ... does not support this model; version ... or newer is required` | [Request errors](#claude-code-does-not-support-this-model) |

158| `Claude Code ... is older than the minimum version required by your organization's policy` | [Request errors](#claude-code-does-not-support-this-model) |161| `Claude Code ... is older than the minimum version required by your organization's policy` | [Request errors](#claude-code-does-not-support-this-model) |

159| `Model ... is restricted by your organization's settings` | [Request errors](#model-is-restricted-by-your-organizations-settings) |162| `Model ... is restricted by your organization's settings` | [Request errors](#model-is-restricted-by-your-organizations-settings) |

160| `Model ... is not available. Your organization restricts model selection.` | [Request errors](#model-is-restricted-by-your-organizations-settings) |163| `Model ... is not available. Your organization restricts model selection.` | [Request errors](#model-is-restricted-by-your-organizations-settings) |

164| `Can't switch to the default model` | [Request errors](#cant-switch-to-the-default-model) |

161| `Model switch ... blocked by a PreModelSwitch hook` | [Request errors](#model-switch-was-blocked-by-a-premodelswitch-hook) |165| `Model switch ... blocked by a PreModelSwitch hook` | [Request errors](#model-switch-was-blocked-by-a-premodelswitch-hook) |

162| `couldn't save it as your default` / `couldn't confirm it was saved as your default` | [Request errors](#couldnt-save-it-as-your-default) |166| `couldn't save it as your default` / `couldn't confirm it was saved as your default` | [Request errors](#couldnt-save-it-as-your-default) |

163| `thinking.type.enabled is not supported for this model` | [Request errors](#thinking-type-enabled-is-not-supported-for-this-model) |167| `thinking.type.enabled is not supported for this model` | [Request errors](#thinking-type-enabled-is-not-supported-for-this-model) |


201| `Cannot add MCP server to scope: managed` | [Command-line errors](#cannot-add-mcp-server-to-the-managed-scope) |205| `Cannot add MCP server to scope: managed` | [Command-line errors](#cannot-add-mcp-server-to-the-managed-scope) |

202| `is Anthropic-hosted and doesn't support local OAuth` | [Command-line errors](#anthropic-hosted-and-doesnt-support-local-oauth) |206| `is Anthropic-hosted and doesn't support local OAuth` | [Command-line errors](#anthropic-hosted-and-doesnt-support-local-oauth) |

203| `Can't read .mcp.json: it isn't a regular file or is larger than 2097152 bytes` | [Command-line errors](#cant-read-mcp-json) |207| `Can't read .mcp.json: it isn't a regular file or is larger than 2097152 bytes` | [Command-line errors](#cant-read-mcp-json) |

208| `MCP server "<name>" was not saved to` / `was not removed from` | [Command-line errors](#mcp-server-was-not-saved-or-removed) |

209| `MCP server "<name>" may not have been saved` / `may not have been removed` | [Command-line errors](#mcp-server-may-not-have-been-saved-or-removed) |

204| `Server rejected the Authorization header minted by the configured headersHelper` | [Command-line errors](#server-rejected-the-authorization-header-minted-by-the-configured-headershelper) |210| `Server rejected the Authorization header minted by the configured headersHelper` | [Command-line errors](#server-rejected-the-authorization-header-minted-by-the-configured-headershelper) |

205| `Error: MCP tool <name> (passed via --permission-prompt-tool) not found` | [Command-line errors](#mcp-permission-prompt-tool-not-found) |211| `Error: MCP tool <name> (passed via --permission-prompt-tool) not found` | [Command-line errors](#mcp-permission-prompt-tool-not-found) |

206| `OAuth callback port <port> is already in use — another process may be holding it` | [Command-line errors](#oauth-callback-port-is-already-in-use) |212| `OAuth callback port <port> is already in use — another process may be holding it` | [Command-line errors](#oauth-callback-port-is-already-in-use) |


219| `Ultrareview clones <owner>/<repo> in the cloud with the GitHub account connected to your Claude account, and none is connected` | [Command-line errors](#no-github-account-is-connected-to-your-claude-account) |225| `Ultrareview clones <owner>/<repo> in the cloud with the GitHub account connected to your Claude account, and none is connected` | [Command-line errors](#no-github-account-is-connected-to-your-claude-account) |

220| `Your connected GitHub account can't see <owner>/<repo>` | [Command-line errors](#your-connected-github-account-cant-see-the-repository) |226| `Your connected GitHub account can't see <owner>/<repo>` | [Command-line errors](#your-connected-github-account-cant-see-the-repository) |

221| `The GitHub App preflight failed transiently (network or service hiccup) — retry in a moment to start from GitHub instead` | [Command-line errors](#the-github-app-preflight-failed-transiently) |227| `The GitHub App preflight failed transiently (network or service hiccup) — retry in a moment to start from GitHub instead` | [Command-line errors](#the-github-app-preflight-failed-transiently) |

228| `Not uploading this working tree` with `the upload cannot follow that setting` | [Command-line errors](#the-repository-upload-cant-follow-a-git-setting) |

222| `GitHub isn't connected to your Claude account, so this repository can't be cloned in the cloud` | [Command-line errors](#github-isnt-connected-to-your-claude-account) |229| `GitHub isn't connected to your Claude account, so this repository can't be cloned in the cloud` | [Command-line errors](#github-isnt-connected-to-your-claude-account) |

223| `Single sign-on authorization needed` | [Command-line errors](#single-sign-on-authorization-needed) |230| `Single sign-on authorization needed` | [Command-line errors](#single-sign-on-authorization-needed) |

224| `Failed to resume the conversation` | [Command-line errors](#failed-to-resume-the-conversation) |231| `Failed to resume the conversation` | [Command-line errors](#failed-to-resume-the-conversation) |


252| `Plugin "<name>@synced" is required by your organization and can't be disabled here` | [Plugin errors](#plugin-is-required-by-your-organization) |259| `Plugin "<name>@synced" is required by your organization and can't be disabled here` | [Plugin errors](#plugin-is-required-by-your-organization) |

253| `"<plugin>" was not uninstalled: it is still switched on in <file>` | [Plugin errors](#plugin-was-not-uninstalled) |260| `"<plugin>" was not uninstalled: it is still switched on in <file>` | [Plugin errors](#plugin-was-not-uninstalled) |

254| `"<plugin>" was not uninstalled: <file> is there and could not be read` | [Plugin errors](#plugin-was-not-uninstalled) |261| `"<plugin>" was not uninstalled: <file> is there and could not be read` | [Plugin errors](#plugin-was-not-uninstalled) |

262| `Plugin "<plugin>" was not uninstalled: installed_plugins.json` | [Plugin troubleshooting](/docs/ru/plugins/troubleshooting#installed-plugins-json-holds-a-record-this-version-cannot-read) |

255| `would be spawned with zero tools — refusing` | [Tool errors](#agent-would-be-spawned-with-zero-tools) |263| `would be spawned with zero tools — refusing` | [Tool errors](#agent-would-be-spawned-with-zero-tools) |

256| `File is covered by a Read deny rule in your permission settings` | [Tool errors](#file-is-covered-by-a-read-deny-rule) |264| `File is covered by a Read deny rule in your permission settings` | [Tool errors](#file-is-covered-by-a-read-deny-rule) |

257| `cannot contain null bytes (\0)` | [Tool errors](#path-cannot-contain-null-bytes) |265| `cannot contain null bytes (\0)` | [Tool errors](#path-cannot-contain-null-bytes) |


727 The prompt to confirm went unanswered735 The prompt to confirm went unanswered

728</h3>736</h3>

729 737 

730Если ваша учётная запись требует [Fable usage-credits consent](/docs/ru/model-config#fable-and-usage-credits), Claude Code просит вас подтвердить перед запросом Fable, который будет выставлять счёт за кредиты использования. Когда никто не отвечает на этот запрос согласия в сеансе, который может не иметь никого у его терминала, Claude Code закрывает запрос и завершает ход одним из этих сообщений:738Если ваша учётная запись требует [Fable usage-credits consent](/docs/ru/model-config#fable-and-usage-credits), Claude Code просит вас подтвердить перед запросом Fable, который будет выставлять счёт за кредиты использования. Когда запрос согласия закрывается без ответа, Claude Code завершает ход одним из этих сообщений:

731 739 

732```text theme={null}740```text theme={null}

733Fable limit reached · continuing on Fable 5.1 uses usage credits, and the prompt to confirm went unanswered — nothing was sent · answer it where this session is running, or /model to change741Fable limit reached · continuing on Fable 5.1 uses usage credits, and the prompt to confirm went unanswered — nothing was sent · answer it where this session is running, or /model to change


736 744 

737Сообщения называют модель Fable сеанса, поэтому на Fable 5 они читают `continuing on Fable 5` и `Fable 5 now uses usage credits`. До версии v2.1.257 первое сообщение начиналось с `Fable 5 limit reached`.745Сообщения называют модель Fable сеанса, поэтому на Fable 5 они читают `continuing on Fable 5` и `Fable 5 now uses usage credits`. До версии v2.1.257 первое сообщение начиналось с `Fable 5 limit reached`.

738 746 

739Это происходит в сеансах [Remote Control](/docs/ru/remote-control), [background sessions](/docs/ru/agent-view) и сеансах товарищей [agent team](/docs/ru/agent-teams). Claude Code показывает запрос согласия только в собственном интерактивном представлении сеанса: терминале, где он работает, или для фонового сеанса, в [agents view](/docs/ru/agent-view) после подключения. Клиент Remote Control не может его отобразить. Claude Code закрывает запрос в крайний срок [`dialogExpiry`](/docs/ru/settings-reference#dialogexpiry), пять минут по умолчанию, или как только появляется новый запрос, пока никто не печатает на этом терминале, например запрос, отправленный из клиента Remote Control. Печать на терминале, где работает сеанс, отменяет крайний срок, и Claude Code ждёт вашего ответа. В присоединённом представлении фонового сеанса печать не отменяет крайний срок, и новый запрос всё ещё закрывает запрос согласия, поэтому ответьте перед тем, как это произойдёт. Claude Code ничего не отправляет и сохраняет вашу модель, поэтому когда вы отправляете следующий запрос, Claude Code снова показывает запрос согласия.747Это происходит в сеансах [Remote Control](/docs/ru/remote-control), [background sessions](/docs/ru/agent-view), [agent team](/docs/ru/agent-teams) товарищей и сеансах, которые другое приложение размещает через Agent SDK. Для информации о том, когда Claude Code закрывает запрос, см. [Fable and usage credits](/docs/ru/model-config#fable-and-usage-credits).

740 748 

741**Что делать:**749**Что делать:**

742 750 

743* На терминале, где работает сеанс, отправьте другой запрос и ответьте на запрос согласия, когда он появится снова. Для фонового сеанса сначала подключитесь к нему из [agents view](/docs/ru/agent-view). Повторная отправка из клиента Remote Control показывает это сообщение снова, потому что клиент не может отобразить запрос.751* Где работает сеанс, на терминале или в приложении, которое его размещает, отправьте другой запрос и ответьте на запрос согласия, когда он появится снова. Для фонового сеанса сначала подключитесь к нему из [agents view](/docs/ru/agent-view). Повторная отправка из клиента Remote Control показывает это сообщение снова, потому что клиент не может отобразить запрос.

744* Запустите `/model`, чтобы переключиться на модель, которая не выставляет счёт за кредиты использования752* Запустите `/model`, чтобы переключиться на модель, которая не выставляет счёт за кредиты использования

745* Чтобы дать себе больше времени для доступа к этому терминалу, установите [`dialogExpiry`](/docs/ru/settings-reference#dialogexpiry) на более длительное значение или `"never"`753* Чтобы дать себе больше времени, установите [`dialogExpiry`](/docs/ru/settings-reference#dialogexpiry) на более длительное значение или `"never"`

746 754 

747До версии v2.1.236 это сообщение не появлялось: пока был подключен клиент Remote Control, Claude Code ждал 60 секунд ответа, а затем продолжал ход на вашей модели по умолчанию.755До версии v2.1.236 это сообщение не появлялось: пока был подключен клиент Remote Control, Claude Code ждал 60 секунд ответа, а затем продолжал ход на вашей модели по умолчанию.

748 756 


1495 1503 

1496До v2.1.274 этот случай показал сообщение `needs you to sign in again`, и до v2.1.273 он показал `requires re-authorization (token expired)` как другие случаи.1504До v2.1.274 этот случай показал сообщение `needs you to sign in again`, и до v2.1.273 он показал `requires re-authorization (token expired)` как другие случаи.

1497 1505 

1506<h3 id="mcp-server-url-is-missing-or-not-a-valid-url">

1507 MCP server URL is missing or not a valid URL

1508</h3>

1509 

1510Claude Code отказал в запуске входа OAuth для удаленного MCP сервера, потому что настроенный `url` сервера не разбирается как URL. Если Claude Code не имеет более конкретной проблемы конфигурации для сообщения сервера, запуск [`claude mcp login <name>`](/docs/ru/mcp#authenticate-from-the-command-line) в вашей оболочке выводит отказ как:

1511 

1512```text theme={null}

1513Couldn't complete authentication for "<name>": This server's URL is missing or not a valid URL, so sign-in can't start. Fix the URL in its MCP config (or set the environment variable it uses) and try again.

1514```

1515 

1516**Что делать:**

1517 

1518* Установите запись `url` на реальную конечную точку сервера, где сервер настроен, или установите переменную окружения, которую его [`${VAR}` reference](/docs/ru/mcp#environment-variable-expansion-in-mcp-json) называет, затем запустите вход снова.

1519 

1498<h3 id="issuer-mismatch-in-authorization-response">1520<h3 id="issuer-mismatch-in-authorization-response">

1499 Issuer mismatch in authorization response1521 Issuer mismatch in authorization response

1500</h3>1522</h3>


1515 1537 

1516До v2.1.232 Claude Code использовал только v2 runtime в постепенном развертывании или когда вы установили `MCP_SDK_GENERATION=v2`.1538До v2.1.232 Claude Code использовал только v2 runtime в постепенном развертывании или когда вы установили `MCP_SDK_GENERATION=v2`.

1517 1539 

1540<h3 id="refusing-to-send-credentials-to-non-https-token-endpoint">

1541 Refusing to send credentials to non-https token endpoint

1542</h3>

1543 

1544На [v2 runtime](/docs/ru/mcp#mcp-client-runtimes) Claude Code отправляет запрос токена [MCP OAuth](/docs/ru/mcp#authenticate-with-remote-mcp-servers) только на конечную точку токена, обслуживаемую через HTTPS или на `localhost`, `127.0.0.1` или `::1`. Это сообщение означает, что конечная точка токена сервера ни то, ни другое, поэтому Claude Code остановился перед отправкой запроса. Это происходит после входа в браузер, поэтому шаг браузера сначала успешен, и снова, когда Claude Code обновляет токен сервера.

1545 

1546В его полной форме сообщение поступает из MCP SDK и цитирует конечную точку токена, которую он отказал. В журнале отладки оно следует `Error during auth completion:` для входа или `Token refresh failed:` для обновления. В вашей оболочке `claude mcp login <name>` выводит его после `Couldn't complete authentication for "<name>":`, и в сеансе `/mcp` показывает его под меню сервера:

1547 

1548```text theme={null}

1549Refusing to send credentials to non-https token endpoint 'http://192.168.1.50:8123/oauth/token'. OAuth token requests MUST use TLS (localhost / 127.0.0.1 / ::1 are exempt).

1550```

1551 

1552Claude Code рассматривает URL сервера, который имеет строку запроса или длинный случайный сегмент пути, как возможно секретный. Для такого сервера он редактирует ошибки входа, которые MCP SDK вызывает перед его отображением или логированием. Эта ошибка затем читается как короткое имя, которое может измениться между выпусками, такое как `io`, за которым следует `from the MCP SDK for` и отредактированный URL сервера. Другие ошибки из MCP SDK принимают ту же форму там. Отредактированное сообщение может быть этой ошибкой только, когда конечная точка токена сервера — это простой `http://` по адресу, отличному от `localhost`, `127.0.0.1` или `::1`.

1553 

1554**Что делать:**

1555 

1556* Обслуживайте эту конечную точку токена через HTTPS, например, поместив сервер за обратный прокси или туннель, который завершает TLS и настраивает сервер на объявление адреса `https://`

1557* Чтобы подключиться без изменения сервера, запустите Claude Code с [`MCP_SDK_GENERATION=v1`](/docs/ru/env-vars), чьи [runtime](/docs/ru/mcp#mcp-client-runtimes) не применяют это правило и отправляют запрос токена через простой HTTP. Этот выбор длится до выхода и применяется к каждому серверу. Среда выполнения v1 также пропускает [issuer check](#issuer-mismatch-in-authorization-response), поэтому предпочитайте обслуживание конечной точки через HTTPS

1558 

1518<h3 id="aws-credentials-expired-or-invalid">1559<h3 id="aws-credentials-expired-or-invalid">

1519 AWS credentials expired or invalid1560 AWS credentials expired or invalid

1520</h3>1561</h3>


1937 1978 

1938* Откройте подпрограмму для редактирования или запустите облачный сеанс. Выберите значок облака, показывающий имя вашей среды, такое как **Default**, чтобы открыть селектор. Наведите указатель на вашу среду и нажмите значок параметров.1979* Откройте подпрограмму для редактирования или запустите облачный сеанс. Выберите значок облака, показывающий имя вашей среды, такое как **Default**, чтобы открыть селектор. Наведите указатель на вашу среду и нажмите значок параметров.

1939* В диалоговом окне **Update cloud environment** измените **Network access** с **Trusted** на **Custom**, затем добавьте заблокированный домен в **Allowed domains**. Введите один домен в строку. Установите флажок **Also include default list of common package managers**, чтобы сохранить [default allowlist](/docs/ru/cloud-environments#default-allowed-domains) вместе с вашими пользовательскими доменами. Выберите **Full** вместо этого, если вы хотите неограниченный доступ.1980* В диалоговом окне **Update cloud environment** измените **Network access** с **Trusted** на **Custom**, затем добавьте заблокированный домен в **Allowed domains**. Введите один домен в строку. Установите флажок **Also include default list of common package managers**, чтобы сохранить [default allowlist](/docs/ru/cloud-environments#default-allowed-domains) вместе с вашими пользовательскими доменами. Выберите **Full** вместо этого, если вы хотите неограниченный доступ.

1940* Нажмите **Save changes**. Следующий запуск использует обновленный список разрешений.1981* Нажмите **Save changes**. Следующий запуск использует обновленный список разрешений. Для облачного сеанса, который уже открыт, см. [when a network access change reaches existing sessions](/docs/ru/cloud-environments#network-access).

1941 1982 

1942См. [Network access](/docs/ru/cloud-environments#network-access) для уровней доступа и списка разрешений по умолчанию. Локальные сеансы CLI не затронуты этой политикой.1983См. [Network access](/docs/ru/cloud-environments#network-access) для уровней доступа и списка разрешений по умолчанию. Локальные сеансы CLI не затронуты этой политикой.

1943 1984 


2346 Model is not a recognized model id2387 Model is not a recognized model id

2347</h3>2388</h3>

2348 2389 

2349Строка модели, которую вы передали переключателю модели, не является псевдонимом модели, ID модели, который эта версия Claude Code знает, или ID, который начинается с `claude-`. Обычные причины — опечатка в ID, отображаемое имя, такое как `Sonnet 5`, где ожидается ID `claude-sonnet-5`, или псевдоним, который распознают только более новые версии Claude Code. Claude Code отклоняет переключение немедленно. До версии 2.1.200 Claude Code сохранял строку и завершался с ошибкой на следующем запросе с [There's an issue with the selected model](#theres-an-issue-with-the-selected-model).2390Строка, которую вы передали переключателю модели, не является одним Claude Code может использовать как модель, поэтому он отклонил переключение без отправки запроса и сеанс сохраняет свою текущую модель. Вы можете получить эту ошибку, когда модель установлена через метод [Agent SDK](/docs/ru/agent-sdk/typescript) `setModel()`, приложением, которое запускает Claude Code CLI для вас, такое как [Desktop app](/docs/ru/desktop), или когда вы выбираете модель с устройства, подключённого через [Remote Control](/docs/ru/remote-control). До версии 2.1.200 Claude Code сохранял строку и завершался с ошибкой на следующем запросе с [There's an issue with the selected model](#theres-an-issue-with-the-selected-model).

2350 2391 

2351```text theme={null}2392```text theme={null}

2352Model "claud-sonnet-5" is not a recognized model id. Did you mean 'claude-sonnet-5'?2393Model "Sonnet5" is not a recognized model id. Did you mean 'claude-sonnet-5'?

2353```2394```

2354 2395 

2355Конечная подсказка называет ближайший соответствующий псевдоним или ID модели. Когда ничего не достаточно близко, она читается `Run /model to see available models.` вместо этого. В сеансе, который [Desktop app](/docs/ru/desktop) запускает для вас, подсказка без совпадения читается `Switch to a different model.`2396В этом примере приложение отправило отображаемое имя `Sonnet 5`, которое сообщение повторяет без его пробела. Конечная подсказка называет ближайший соответствующий псевдоним или ID модели. Когда ничего не достаточно близко, она читается `Run /model to see available models.` вместо этого. В сеансе, который [Desktop app](/docs/ru/desktop) запускает для вас, подсказка без совпадения читается `Switch to a different model.`

2356 2397 

2357Claude Code производит эту ошибку локально в момент запроса переключения, перед любым запросом API. Она применяется, когда модель установлена через метод [Agent SDK](/docs/ru/agent-sdk/typescript) `setModel()`, приложением, таким как [Desktop app](/docs/ru/desktop), которое запускает Claude Code CLI для вас, или когда вы выбираете модель с устройства, подключённого через [Remote Control](/docs/ru/remote-control). До версии 2.1.260 проверка не охватывала выборы Remote Control, поэтому Claude Code применял выбор и следующий запрос завершался с [There's an issue with the selected model](#theres-an-issue-with-the-selected-model).2398Когда вы переключаетесь через Agent SDK или приложение на Anthropic API, только строка, которая не может быть ID модели, получает эту ошибку, такая как отображаемое имя или пустая строка.

2399 

2400Когда вы выбираете модель с устройства Remote Control, Claude Code проверяет строку локально. Любая строка, которая не является псевдонимом модели, моделью, которую Claude Code перечисляет или вы настроили, или ID, который начинается с `claude-`, получает эту ошибку, неправильно введённый ID, такой как `claud-sonnet-5`, включённый. До версии 2.1.260 эта проверка не охватывала выборы Remote Control, поэтому неузнанная строка была применена и завершилась с ошибкой на следующем запросе.

2358 2401 

2359**Что делать:**2402**Что делать:**

2360 2403 

2361* Запустите `/model` без аргумента, чтобы открыть выбор и выбрать из моделей, доступных вашей учётной записи, затем передайте показанный там псевдоним или ID2404* Запустите `/model` без аргумента, чтобы открыть выбор и выбрать из моделей, доступных вашей учётной записи, затем передайте показанный там псевдоним или ID

2362* Если вы использовали псевдоним, который поддерживает более новая версия Claude Code, запустите `claude update`. Полный ID, который начинается с `claude-`, проходит эту локальную проверку даже когда модель новее вашей версии Claude Code. Сервер всё ещё может требовать минимальную версию для этой модели; смотрите [Claude Code does not support this model](#claude-code-does-not-support-this-model).2405* Если вы использовали псевдоним, который поддерживает только более новая версия Claude Code, запустите `claude update`, или передайте полный ID модели вместо этого. Сервер всё ещё может требовать минимальную версию Claude Code для этой модели; смотрите [Claude Code does not support this model](#claude-code-does-not-support-this-model).

2363* Модель, сохранённая до версии 2.1.200, не восстанавливается этой проверкой. Если устаревшее значение продолжает возвращаться, удалите его из мест, перечисленных в [Setting your model](/docs/ru/model-config#setting-your-model).2406* Модель, сохранённая до версии 2.1.200, не восстанавливается этой проверкой. Если устаревшее значение продолжает возвращаться, удалите его из мест, перечисленных в [Setting your model](/docs/ru/model-config#setting-your-model).

2364* Проверка выполняется только на Anthropic API. На любом другом поставщике или шлюзе, включая пользовательский `ANTHROPIC_BASE_URL`, поставщик определяет имена моделей, поэтому Claude Code принимает любую строку и передаёт её. Claude Code всё ещё может написать [неузнанную диагностическую строку ID модели](#unrecognized-model-id-on-a-request) во время запроса на каждом поставщике.2407* На любом поставщике, отличном от Anthropic API, или позади шлюза или пользовательского `ANTHROPIC_BASE_URL`, только пустая строка получает эту ошибку. Claude Code всё ещё может написать [неузнанную диагностическую строку ID модели](#unrecognized-model-id-on-a-request) во время запроса на каждом поставщике.

2365 2408 

2366<h3 id="model-not-found">2409<h3 id="model-not-found">

2367 Model not found2410 Model not found

2368</h3>2411</h3>

2369 2412 

2370Вы выбрали модель с `/model <имя>` и Claude Code не смог подтвердить, что модель с этим именем существует. Когда имя не является [псевдонимом модели](/docs/ru/model-config#model-aliases) или другим написанием, которое Claude Code принимает локально, `/model` проверяет его с минимальным запросом API, и эта ошибка обычно является ответом вашей конечной точки API. Имя, которое не может быть ID модели вообще, такое как содержащее пробелы, получает то же сообщение.2413Вы выбрали модель по имени и Claude Code не смог подтвердить, что модель с этим именем существует. Когда имя не является [псевдонимом модели](/docs/ru/model-config#model-aliases) или другим написанием Claude Code принимает локально, Claude Code проверяет его с минимальным запросом API, и эта ошибка обычно является ответом вашей конечной точки API. С `/model <имя>`, имя, которое не может быть ID модели вообще, такое как содержащее пробелы, получает то же сообщение.

2371 2414 

2372```text theme={null}2415```text theme={null}

2373Model 'claude-opus-9' not found2416Model 'claude-opus-9' not found


2379 2422 

2380* Запустите `/model` без аргумента и выберите из моделей, доступных вашей учётной записи, или используйте [псевдоним модели](/docs/ru/model-config#model-aliases), такой как `sonnet`, который разрешается в поддерживаемое значение по умолчанию2423* Запустите `/model` без аргумента и выберите из моделей, доступных вашей учётной записи, или используйте [псевдоним модели](/docs/ru/model-config#model-aliases), такой как `sonnet`, который разрешается в поддерживаемое значение по умолчанию

2381* Если вы ввели полный ID, проверьте его в каталоге моделей вашего поставщика. Недавно запущенная модель может быть доступна на Anthropic API перед тем, как ваш поставщик или регион её предложит.2424* Если вы ввели полный ID, проверьте его в каталоге моделей вашего поставщика. Недавно запущенная модель может быть доступна на Anthropic API перед тем, как ваш поставщик или регион её предложит.

2425* В Agent SDK `setModel()` завершается с этим сообщением и сеанс продолжает работать на своей предыдущей модели. В TypeScript SDK вызовите [`supportedModels()`](/docs/ru/agent-sdk/typescript#query-object) для перечисления моделей, на которые вы можете переключиться.

2382* До версии 2.1.265 `/model` также отклонял написание псевдонима `opusplan[1m]` с этой ошибкой. В этих версиях обновите Claude Code или установите модель в [settings](/docs/ru/model-config#setting-your-model) или с помощью `--model` вместо этого.2426* До версии 2.1.265 `/model` также отклонял написание псевдонима `opusplan[1m]` с этой ошибкой. В этих версиях обновите Claude Code или установите модель в [settings](/docs/ru/model-config#setting-your-model) или с помощью `--model` вместо этого.

2383 2427 

2428<h3 id="couldnt-confirm-model-with-the-api">

2429 Couldn't confirm model with the API

2430</h3>

2431 

2432Вы выбрали модель через метод [Agent SDK](/docs/ru/agent-sdk/typescript) `setModel()` или приложение, которое запускает Claude Code CLI для вас, такое как [Desktop app](/docs/ru/desktop), и запрос, который подтверждает ID модели с вашей конечной точкой API, не получил ответ в течение пяти секунд. Сеанс сохраняет свою текущую модель.

2433 

2434```text theme={null}

2435Couldn't confirm model "claude-sonnet-5" with the API. Try again, or run /model to see available models.

2436```

2437 

2438В сеансе, который [Desktop app](/docs/ru/desktop) запускает для вас, сообщение заканчивается на `Try again.`

2439 

2440**Что делать:**

2441 

2442* Переключитесь на модель снова

2443* Если переключение продолжает завершаться с ошибкой, проверьте, что Claude Code может достичь вашу конечную точку API; смотрите [Network and connection errors](#network-and-connection-errors)

2444 

2384<h3 id="api-error-model-not-changed">2445<h3 id="api-error-model-not-changed">

2385 API error when checking the picked model2446 API error when checking the picked model

2386</h3>2447</h3>


2432API Error: 400 Claude Code 2.1.240 is older than the minimum version required by your organization's policy. Run 'claude update', or update the Claude desktop app, to continue.2493API Error: 400 Claude Code 2.1.240 is older than the minimum version required by your organization's policy. Run 'claude update', or update the Claude desktop app, to continue.

2433```2494```

2434 2495 

2496Версия, которую API проверяет, — это версия, сообщённая бинарным файлом Claude Code, который сделал запрос.

2497 

2435**Что делать:**2498**Что делать:**

2436 2499 

2437* Запустите `claude update` или обновите Claude desktop app, затем начните новый сеанс2500Обновите этот бинарный файл, затем начните новый сеанс. Откуда пришёл бинарный файл, решает как, кроме [self-hosted environment](/docs/ru/self-hosted-environments-deploy#pin-the-version):

2438* Для формулировки для каждой модели вы можете продолжить работу в текущем сеансе, переключившись на другую модель с помощью `/model`2501 

2502| Бинарный файл, который сделал запрос | Как его обновить |

2503| :- | :- |

2504| Claude Code, который вы установили | Запустите `claude update` |

2505| Claude desktop app | Обновите приложение |

2506| Бинарный файл, который [VS Code extension](/docs/ru/vs-code) объединяет | Обновите расширение |

2507| Бинарный файл, который пакет Agent SDK объединяет | [Обновите пакет SDK](/docs/ru/agent-sdk/hosting#runtime-dependencies), затем перезагрузите ваше приложение. В [скомпилированном однофайловом исполняемом файле](/docs/ru/agent-sdk/typescript#compile-to-a-single-executable), пересоберите его |

2508 

2509* Для формулировки для каждой модели вы можете продолжить работу в текущем сеансе, переключившись на другую модель: запустите `/model` в CLI, вызовите [`setModel()`](/docs/ru/agent-sdk/typescript#query-object) на объекте `Query` TypeScript SDK в режиме потокового входа, или вызовите [`set_model()`](/docs/ru/agent-sdk/python#claudesdkclient) на `ClaudeSDKClient` Python SDK

2439* Для формулировки политики организации обновитесь перед продолжением2510* Для формулировки политики организации обновитесь перед продолжением

2440 2511 

2441<h3 id="model-is-restricted-by-your-organizations-settings">2512<h3 id="model-is-restricted-by-your-organizations-settings">


2460* Если ограниченная модель была установлена в `--model`, `ANTHROPIC_MODEL`, поле `model` файла настроек или frontmatter [подагента](/docs/ru/sub-agents#choose-a-model), навыка или команды, удалите или обновите это значение, чтобы уведомление не повторялось2531* Если ограниченная модель была установлена в `--model`, `ANTHROPIC_MODEL`, поле `model` файла настроек или frontmatter [подагента](/docs/ru/sub-agents#choose-a-model), навыка или команды, удалите или обновите это значение, чтобы уведомление не повторялось

2461* Если вам нужен доступ к ограниченной модели, попросите администратора вашей организации её включить. Смотрите [Organization model restrictions](/docs/ru/model-config#organization-model-restrictions).2532* Если вам нужен доступ к ограниченной модели, попросите администратора вашей организации её включить. Смотрите [Organization model restrictions](/docs/ru/model-config#organization-model-restrictions).

2462 2533 

2534<h3 id="cant-switch-to-the-default-model">

2535 Can't switch to the default model

2536</h3>

2537 

2538Вы выбрали модель Default, например, выбрав строку Default в выборе `/model` или введя `/model default`. Claude Code отклонил переключение, поэтому сеанс сохраняет свою текущую модель.

2539 

2540```text theme={null}

2541Can't switch to the default model: your organization's managed settings block it (claude-opus-4-6) in "deniedModels", and none of the models they allow can be used as the default instead. Ask your administrator to update "deniedModels" or "availableModels".

2542```

2543 

2544Формулировка после двоеточия называет, что заблокировало переключение:

2545 

2546* **`your organization's managed settings block it ... in "deniedModels"`**: список управляемого отказа блокирует модель, на которую разрешается опция Default

2547* **`your organization allows only the models listed in "availableModels"`**: список разрешений [`availableModels`](/docs/ru/model-config#restrict-model-selection) с [`availableModelsMatch`](/docs/ru/settings-reference#availablemodelsmatch), установленным на `"exact"`, исключает модель, на которую разрешается опция Default

2548* **`Claude Code couldn't read your organization's managed settings to check which models they allow`**: [управляемые настройки](/docs/ru/managed-settings) не могли быть прочитаны, и Claude Code отказывает переключение, а не применяет его без проверки

2549 

2550**Что делать:**

2551 

2552* Для формулировок [`deniedModels`](/docs/ru/settings-reference#deniedmodels) и `availableModels` запустите `/model` и выберите модель, которую разрешает ваша организация, по имени

2553* Попросите администратора обновить управляемую настройку, которую называет сообщение

2554* Для формулировки `couldn't read` перезагрузите Claude Code; если это продолжает происходить, попросите администратора проверить управляемые настройки

2555 

2556Если сеанс вместо этого не запускается с сообщением `Claude Code can't start` в этих управляемых настройках, смотрите [Managed settings block the default model](#managed-settings-block-the-default-model).

2557 

2463<h3 id="model-switch-was-blocked-by-a-premodelswitch-hook">2558<h3 id="model-switch-was-blocked-by-a-premodelswitch-hook">

2464 Model switch was blocked by a PreModelSwitch hook2559 Model switch was blocked by a PreModelSwitch hook

2465</h3>2560</h3>


3066 3161 

3067* Проверьте, что находится в `.mcp.json` в вашем текущем каталоге. Замените его обычным файлом JSON в [формате project-scope](/docs/ru/mcp#project-scope) или удалите его, затем запустите команду снова.3162* Проверьте, что находится в `.mcp.json` в вашем текущем каталоге. Замените его обычным файлом JSON в [формате project-scope](/docs/ru/mcp#project-scope) или удалите его, затем запустите команду снова.

3068 3163 

3164<h3 id="mcp-server-was-not-saved-or-removed">

3165 Сервер MCP был не сохранён или не удалён

3166</h3>

3167 

3168Вы запустили `claude mcp add`, `claude mcp add-json` или `claude mcp remove` для сервера в области `user` или `local` [scope](/docs/ru/mcp#mcp-installation-scopes). Обе области хранятся в `~/.claude.json`, и изменение не находится в этом файле, когда Claude Code читает его обратно после записи. Команда завершает работу с этой ошибкой вместо своей строки успеха.

3169 

3170```text theme={null}

3171MCP server "example" was not saved to /home/user/.claude.json. If that file is read-only or protected by a sandbox, make it writable or run the command outside the sandbox, then add the server again.

3172```

3173 

3174После удаления сообщение читает `was not removed from` и заканчивается с `then remove the server again`. Для сервера `local`-scope путь сопровождается каталогом проекта, к которому принадлежит запись, как `(local scope for /path/to/project)`.

3175 

3176До версии v2.1.283 `claude mcp add`, `claude mcp add-json` и `claude mcp remove` сообщали об успехе даже когда изменение не достигало файла.

3177 

3178**Что делать:**

3179 

3180* Сделайте файл, который указывает сообщение, доступным для записи, или запустите команду вне песочницы, затем запустите ту же команду добавления или удаления снова.

3181 

3182<h3 id="mcp-server-may-not-have-been-saved-or-removed">

3183 Сервер MCP может не быть сохранён или удалён

3184</h3>

3185 

3186Вы запустили `claude mcp add`, `claude mcp add-json` или `claude mcp remove` для сервера в области `user` или `local` [scope](/docs/ru/mcp#mcp-installation-scopes), и Claude Code не смог прочитать `~/.claude.json` обратно для подтверждения изменения. Изменение может быть или не быть на диске. Текст в скобках — это ошибка из этого чтения.

3187 

3188```text theme={null}

3189MCP server "example" may not have been saved: /home/user/.claude.json could not be read to confirm the change (EACCES: permission denied, open '/home/user/.claude.json'). Run `claude mcp get example` to check, then add the server again if it is missing.

3190```

3191 

3192После удаления сообщение читает `may not have been removed` и заканчивается с `then remove the server again if it is still listed`.

3193 

3194До версии v2.1.283 команды сообщали об успехе даже когда изменение не могло быть подтверждено.

3195 

3196**Что делать:**

3197 

3198* Запустите `claude mcp get <name>` для проверки того, находится ли изменение на диске. Для сервера `local`-scope запустите его из каталога проекта, к которому принадлежит сервер, так как локальная область — это для каждого проекта.

3199* Если сервер отсутствует после добавления или всё ещё указан после удаления, запустите ту же команду добавления или удаления снова.

3200 

3069<h3 id="anthropic-hosted-and-doesnt-support-local-oauth">3201<h3 id="anthropic-hosted-and-doesnt-support-local-oauth">

3070 Сервер размещён Anthropic и не поддерживает локальный OAuth3202 Сервер размещён Anthropic и не поддерживает локальный OAuth

3071</h3>3203</h3>


3376 3508 

3377До версии v2.1.251 Claude Code заканчивал сообщение с `Please set up GitHub on https://claude.ai/code` даже когда проверка GitHub не прошла только временно, и совет по установке не может очистить временный сбой.3509До версии v2.1.251 Claude Code заканчивал сообщение с `Please set up GitHub on https://claude.ai/code` даже когда проверка GitHub не прошла только временно, и совет по установке не может очистить временный сбой.

3378 3510 

3511<h3 id="the-repository-upload-cant-follow-a-git-setting">

3512 Хост репозитория не может быть загружен

3513</h3>

3514 

3515Вы запустили [облачный сеанс, который загружает ваш локальный репозиторий](/docs/ru/claude-code-on-the-web#send-local-repositories-without-github), или [ultrareview](/docs/ru/ultrareview) ветки, и загрузка не может следовать одному из параметров git, которые решают, какие правила атрибутов применяются к вашим файлам. Если загрузка прошла и пропустила правило, файл, который git преобразует перед сохранением, такой как тот, который чистый фильтр шифрует, может достичь облака как он находится на диске. Claude Code отказывает загрузку вместо этого, и ничего не загружается:

3516 

3517```text theme={null}

3518Not uploading this working tree: core.ignoreCase (which decides whether .gitattributes patterns match file names regardless of letter case) is set in <file>, and the upload cannot follow that setting, so a file git would change before storing it (to encrypt it, for example) could be uploaded as it is on disk. Move the core.ignoreCase line into this repository's .git/config or directly into your ~/.gitconfig, then retry.

3519```

3520 

3521Сообщение указывает параметр и где он установлен, и заканчивается исправлением для случая, который вы попали. Тот же отказ появляется для `core.attributesFile` и `attr.tree`, каждый со своим исправлением.

3522 

3523Сообщение может указывать файл конфигурации, который ваша конфигурация git вытягивает через директиву `include` или `includeIf`, даже когда условие этой директивы не применяется к этому репозиторию.

3524 

3525**Что делать:**

3526 

3527* Примените исправление в финальном предложении сообщения

3528 

3379<h3 id="github-isnt-connected-to-your-claude-account">3529<h3 id="github-isnt-connected-to-your-claude-account">

3380 GitHub не подключен к вашему аккаунту Claude3530 GitHub не подключен к вашему аккаунту Claude

3381</h3>3531</h3>


3888 Plugin was not uninstalled4038 Plugin was not uninstalled

3889</h3>4039</h3>

3890 4040 

3891Вы запустили [`claude plugin uninstall`](/docs/ru/plugins/cli-reference#plugin-uninstall), или выбрали **Uninstall** на вкладке `/plugin` **Installed**, и удаление остановилось с сообщением, начинающимся с `"<plugin>" was not uninstalled:`.4041Вы запустили [`claude plugin uninstall`](/docs/ru/plugins/cli-reference#plugin-uninstall), или выбрали **Uninstall** на вкладке `/plugin` **Installed**, и удаление остановилось с сообщением, начинающимся с `"<plugin>" was not uninstalled:`. Если текст после этого двоеточия начинается с `installed_plugins.json` вместо названия файла параметров, причина заключается в содержимом `installed_plugins.json`, которое эта версия Claude Code не может прочитать. Для этой формы см. [`installed_plugins.json` holds a record this version can't read](/docs/ru/plugins/troubleshooting#installed-plugins-json-holds-a-record-this-version-cannot-read).

3892 4042 

3893Когда Claude Code удалила запись плагина из `enabledPlugins` и прочитала файлы параметров этой области обратно, либо плагин всё ещё был включён там, либо файл, который мог бы его включить, не мог быть прочитан или проверен. Удаление сохранённых опций, секретов и данных плагина, пока запись параметров могла бы его включить обратно, привело бы к их потере, поэтому удаление останавливается вместо этого: плагин остаётся установленным и ничто, что он сохранил, не удаляется.4043Когда Claude Code удалила запись плагина из `enabledPlugins` и прочитала файлы параметров этой области обратно, либо плагин всё ещё был включён там, либо файл, который мог бы его включить, не мог быть прочитан или проверен. Удаление сохранённых опций, секретов и данных плагина, пока запись параметров могла бы его включить обратно, привело бы к их потере, поэтому удаление останавливается вместо этого: плагин остаётся установленным и ничто, что он сохранил, не удаляется.

3894 4044 

fast-mode.md +2 −0

Details

72 72 

73Введите `/fast on` в сеансе, чтобы включить быстрый режим. Он остается включенным только для этого сеанса и не сохраняется как ваше значение по умолчанию. [Требования](#requirements) применяются и в облачных сеансах.73Введите `/fast on` в сеансе, чтобы включить быстрый режим. Он остается включенным только для этого сеанса и не сохраняется как ваше значение по умолчанию. [Требования](#requirements) применяются и в облачных сеансах.

74 74 

75В браузере на [claude.ai/code](https://claude.ai/code) вы также можете включать и отключать быстрый режим из меню модели в поле сообщения. Меню показывает переключатель, когда ваш план включает быстрый режим и выбранная модель его поддерживает.

76 

75<h2 id="understand-the-cost-tradeoff">77<h2 id="understand-the-cost-tradeoff">

76 Понимание компромисса стоимости78 Понимание компромисса стоимости

77</h2>79</h2>

Details

312| [Computer use](/docs/ru/computer-use) | ✓ | ✓ | ✗ | ✗ |312| [Computer use](/docs/ru/computer-use) | ✓ | ✓ | ✗ | ✗ |

313| Dispatch ([Desktop](/docs/ru/desktop#sessions-from-dispatch)) | ✓ | ✓ | ✗ | ✗ |313| Dispatch ([Desktop](/docs/ru/desktop#sessions-from-dispatch)) | ✓ | ✓ | ✗ | ✗ |

314| [Code Review](/docs/ru/code-review) | ✗ | ✗ | ✓ | ✓ |314| [Code Review](/docs/ru/code-review) | ✗ | ✗ | ✓ | ✓ |

315| [Artifacts](/docs/ru/artifacts) | ✓ | ✓ | ✓ | Admin-enabled |315| [Artifacts](/docs/ru/artifacts) | ✓ | ✓ | ✓ | ✓ |

316| [Analytics dashboard and contribution metrics](/docs/ru/analytics) | ✗ | ✗ | ✓ | ✓ |316| [Analytics dashboard and contribution metrics](/docs/ru/analytics) | ✗ | ✗ | ✓ | ✓ |

317| [Enterprise Analytics API](/docs/ru/analytics#access-data-programmatically) | ✗ | ✗ | ✗ | ✓ |317| [Enterprise Analytics API](/docs/ru/analytics#access-data-programmatically) | ✗ | ✗ | ✗ | ✓ |

318| [Server-managed settings](/docs/ru/server-managed-settings) | ✗ | ✗ | ✓ | ✓ |318| [Server-managed settings](/docs/ru/server-managed-settings) | ✗ | ✗ | ✓ | ✓ |

fullscreen.md +1 −1

Details

294 294 

295С отключённым захватом мыши прокрутка с помощью клавиатуры с `PgUp`, `PgDn`, `Ctrl+Home` и `Ctrl+End` по-прежнему работает, и ваш терминал обрабатывает выделение нативно. Вы теряете щелчок для позиционирования курсора, щелчок для расширения, щелчок по URL и прокрутку колеса внутри Claude Code.295С отключённым захватом мыши прокрутка с помощью клавиатуры с `PgUp`, `PgDn`, `Ctrl+Home` и `Ctrl+End` по-прежнему работает, и ваш терминал обрабатывает выделение нативно. Вы теряете щелчок для позиционирования курсора, щелчок для расширения, щелчок по URL и прокрутку колеса внутри Claude Code.

296 296 

297Чтобы сохранить прокрутку колеса, но отключить обработку щелчков, перетаскивания и наведения, установите вместо этого `CLAUDE_CODE_DISABLE_MOUSE_CLICKS=1`. Требуется Claude Code версии v2.1.195 или позже. `CLAUDE_CODE_DISABLE_MOUSE` имеет приоритет, когда установлены обе переменные.297Чтобы сохранить прокрутку колеса, но отключить обработку щелчков, перетаскивания и наведения, установите вместо этого `CLAUDE_CODE_DISABLE_MOUSE_CLICKS=1`. `CLAUDE_CODE_DISABLE_MOUSE` имеет приоритет, когда установлены обе переменные.

298 298 

299С отключёнными щелчками Claude Code по-прежнему захватывает мышь, поэтому колесо и сенсорная панель прокручивают беседу, но левые щелчки ничего не делают внутри Claude Code. Вам по-прежнему нужно удерживать клавишу вашего терминала для нативного выделения щелчком и перетаскиванием. Щелчок правой кнопкой и вставка средней кнопкой продолжают работать на терминалах, которые их поддерживают.299С отключёнными щелчками Claude Code по-прежнему захватывает мышь, поэтому колесо и сенсорная панель прокручивают беседу, но левые щелчки ничего не делают внутри Claude Code. Вам по-прежнему нужно удерживать клавишу вашего терминала для нативного выделения щелчком и перетаскиванием. Щелчок правой кнопкой и вставка средней кнопкой продолжают работать на терминалах, которые их поддерживают.

300 300 

Details

43 43 

44Claude Code затем отправляет ветку с выбранными файлами рабочего процесса, уже настроенными на использование этого секрета, и открывает GitHub в вашем браузере с готовым к созданию pull request. Создайте и объедините этот pull request, и `@claude` будет работать в репозитории.44Claude Code затем отправляет ветку с выбранными файлами рабочего процесса, уже настроенными на использование этого секрета, и открывает GitHub в вашем браузере с готовым к созданию pull request. Создайте и объедините этот pull request, и `@claude` будет работать в репозитории.

45 45 

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

47 

46Если вы выберете рабочий процесс проверки, Claude размещает каждую проверку на самом pull request как встроенный комментарий к каждой найденной проблеме или как один сводный комментарий, когда он не находит ничего. Claude пропускает некоторые pull requests, такие как черновики. Пример [рабочего процесса проверки](#run-a-skill) использует тот же skill и перечисляет их. До версии 2.1.229 Claude писал свою проверку только в журнал выполнения рабочего процесса.48Если вы выберете рабочий процесс проверки, Claude размещает каждую проверку на самом pull request как встроенный комментарий к каждой найденной проблеме или как один сводный комментарий, когда он не находит ничего. Claude пропускает некоторые pull requests, такие как черновики. Пример [рабочего процесса проверки](#run-a-skill) использует тот же skill и перечисляет их. До версии 2.1.229 Claude писал свою проверку только в журнал выполнения рабочего процесса.

47 49 

48Чтобы обновить рабочий процесс проверки, созданный более ранней версией, выполните одно из следующих действий:50Чтобы обновить рабочий процесс проверки, созданный более ранней версией, выполните одно из следующих действий:

Details

95 Требования к сети95 Требования к сети

96</h3>96</h3>

97 97 

98Для сессий, размещённых на Anthropic, ваш экземпляр GHES должен быть доступен из инфраструктуры Anthropic, чтобы Claude мог клонировать репозитории и публиковать комментарии проверки. Если ваш экземпляр GHES находится за брандмауэром, добавьте в список разрешений [IP-адреса исходящего трафика Anthropic](https://platform.claude.com/docs/en/api/ip-addresses#outbound-ip-addresses). Сессии в [самостоятельно размещённой среде](/docs/ru/self-hosted-environments-deploy#configure-git) клонируют изнутри вашей сети, если только запускающий не согласится на [прокси Git Anthropic](/docs/ru/self-hosted-environments-deploy#use-the-anthropic-git-proxy), который получает данные со стороны Anthropic и требует той же доступности; [коннектор SCM](/docs/ru/self-hosted-environments-reference#scm-connector-flags) охватывает размещённые потоки перед сессией, такие как средство выбора репозитория, для хоста GHES, который маршрутизируется только внутри.98Для сессий, размещённых на Anthropic, ваш экземпляр GHES должен быть доступен из инфраструктуры Anthropic, чтобы Claude мог клонировать репозитории и публиковать комментарии проверки. Если ваш экземпляр GHES находится за брандмауэром, добавьте в список разрешений [IP-адреса исходящего трафика Anthropic](https://platform.claude.com/docs/en/api/ip-addresses#outbound-ip-addresses). Сессии в [самостоятельно размещённой среде](/docs/ru/self-hosted-environments-deploy#configure-git) клонируют изнутри вашей сети, если только запускающий не согласится на [прокси Git Anthropic](/docs/ru/self-hosted-environments-deploy#use-the-anthropic-git-proxy), который получает данные со стороны Anthropic и требует той же доступности. Размещённые потоки перед сессией, такие как средство выбора репозитория, выполняются на стороне Anthropic перед началом сессии. Им требуется, чтобы ваш экземпляр GHES был доступен из инфраструктуры Anthropic даже когда сессия выполняется в самостоятельно размещённой среде. [Коннектор SCM](/docs/ru/self-hosted-environments-reference#scm-connector-flags) недоступен, поэтому эти потоки не могут достичь хоста GHES, который маршрутизируется только внутри.

99 99 

100<h2 id="developer-workflow">100<h2 id="developer-workflow">

101 Рабочий процесс разработчика101 Рабочий процесс разработчика


246 Экземпляр GHES недоступен246 Экземпляр GHES недоступен

247</h3>247</h3>

248 248 

249Если проверки или облачные сессии истекают по времени, ваш экземпляр GHES может быть недоступен из инфраструктуры Anthropic. Убедитесь, что ваш брандмауэр разрешает входящие соединения с [IP-адресов Anthropic](https://platform.claude.com/docs/en/api/ip-addresses#outbound-ip-addresses). Сессии в [самостоятельно размещённой среде](/docs/ru/self-hosted-environments) достигают GHES изнутри вашей сети, поэтому для них проверьте собственный сетевой путь runner и [SCM connector](/docs/ru/self-hosted-environments-reference#scm-connector-flags) вместо этого.249Если проверки или облачные сессии истекают по времени, ваш экземпляр GHES может быть недоступен из инфраструктуры Anthropic. Убедитесь, что ваш брандмауэр разрешает входящие соединения с [IP-адресов Anthropic](https://platform.claude.com/docs/en/api/ip-addresses#outbound-ip-addresses). Сессии в [самостоятельно размещённой среде](/docs/ru/self-hosted-environments) достигают GHES изнутри вашей сети, поэтому когда одна из них не может клонировать, проверьте собственный сетевой путь runner вместо этого. Для средства выбора репозитория и других размещённых предварительных потоков сессии см. [Требования к сети](#network-requirements).

250 250 

251<h3 id="session-start-fails-with-unable-to-get-organization-uuid">251<h3 id="session-start-fails-with-unable-to-get-organization-uuid">

252 Запуск сессии не удаётся с `Unable to get organization UUID`252 Запуск сессии не удаётся с `Unable to get organization UUID`

glossary.md +14 −6

Details

24 Agent teams24 Agent teams

25</h3>25</h3>

26 26 

27Несколько независимых сеансов Claude Code, координируемых лидером команды, с общим списком задач и обменом сообщениями между участниками. В отличие от [subagents](#subagent), которые работают в одном сеансе и отчитываются только перед родительским агентом, члены команды имеют собственное окно контекста, и вы можете взаимодействовать с любым из них напрямую. Agent teams являются экспериментальной функцией и отключены по умолчанию; см. [Enable agent teams](/docs/ru/agent-teams#enable-agent-teams).27Несколько независимых сеансов Claude Code, координируемых лидером команды, с общим списком задач и обменом сообщениями между участниками. В отличие от [subagents](#subagent), которые работают в одном сеансе и отчитываются только перед родительским агентом, члены команды имеют собственное окно контекста, и вы можете взаимодействовать с любым из них напрямую. Agent teams находятся на экспериментальном этапе и отключены по умолчанию; см. [Enable agent teams](/docs/ru/agent-teams#enable-agent-teams).

28 28 

29Подробнее: [Run agent teams](/docs/ru/agent-teams)29Подробнее: [Run agent teams](/docs/ru/agent-teams)

30 30 


32 Agentic coding32 Agentic coding

33</h3>33</h3>

34 34 

35Рабочий процесс, при котором AI может автономно читать файлы, выполнять команды и вносить изменения, пока вы наблюдаете, перенаправляете или отходите в сторону, в отличие от чат-ассистентов на основе текста, которые только отвечают текстом, который вы должны применить самостоятельно. Claude Code является агентским, потому что он имеет [tools](#tool), которые позволяют ему действовать, а не только давать советы.35Рабочий процесс, при котором AI может автономно читать файлы, выполнять команды и вносить изменения, пока вы наблюдаете, перенаправляете или отходите в сторону, в отличие от чат-ассистентов на основе текста, которые только отвечают текстом, который вы должны применить самостоятельно. Claude Code является агентным, потому что он имеет [tools](#tool), которые позволяют ему действовать, а не только давать советы.

36 36 

37Подробнее: [How Claude Code works](/docs/ru/how-claude-code-works)37Подробнее: [How Claude Code works](/docs/ru/how-claude-code-works)

38 38 


40 Agentic harness40 Agentic harness

41</h3>41</h3>

42 42 

43Инструменты, управление контекстом и среда выполнения, которые превращают языковую модель в способного агента кодирования. Claude Code — это harness; Claude — это модель внутри него. Harness предоставляет доступ к файлам, выполнение shell-команд, управление разрешениями, загрузку памяти и цикл, который связывает действия вместе.43Инструменты, управление контекстом и среда выполнения, которые превращают языковую модель в способного агента кодирования. Claude Code — это harness; Claude — это модель внутри него. Harness обеспечивает доступ к файлам, выполнение shell-команд, управление разрешениями, загрузку памяти и цикл, который связывает действия вместе.

44 44 

45Подробнее: [How Claude Code works](/docs/ru/how-claude-code-works)45Подробнее: [How Claude Code works](/docs/ru/how-claude-code-works)

46 46 


48 Agentic loop48 Agentic loop

49</h3>49</h3>

50 50 

51Цикл, через который Claude проходит для каждой задачи: собрать контекст, предпринять действие, проверить результаты и повторять до завершения. Каждое использование инструмента возвращает информацию, которая информирует следующий шаг. Вы можете прервать цикл в любой момент для перенаправления. Большинство точек расширения, включая [hooks](#hook), [skills](#skill) и [MCP](#mcp-model-context-protocol), подключаются к определенным фазам этого цикла.51Цикл, через который Claude проходит для каждой задачи: сбор контекста, выполнение действия, проверка результатов и повторение до завершения. Каждое использование инструмента возвращает информацию, которая информирует следующий шаг. Вы можете прервать цикл в любой момент для перенаправления. Большинство точек расширения, включая [hooks](#hook), [skills](#skill) и [MCP](#mcp-model-context-protocol), подключаются к определенным фазам этого цикла.

52 52 

53Подробнее: [How Claude Code works](/docs/ru/how-claude-code-works#the-agentic-loop)53Подробнее: [How Claude Code works](/docs/ru/how-claude-code-works#the-agentic-loop)

54 54 


56 Artifact56 Artifact

57</h3>57</h3>

58 58 

59Живая интерактивная веб-страница, которую Claude Code публикует из вашего сеанса на приватный URL на claude.ai, чтобы вы могли видеть результат визуально или поделиться им вместо чтения текста терминала. Страница обновляется на месте, когда сеанс переиздается. Артефакты, которые вы создаете из Claude Code, появляются в той же галерее, что и артефакты, созданные в разговорах claude.ai. Совместное использование зависит от вашего плана: на Pro и Max — публичная ссылка, которую может открыть кто угодно; на Team и Enterprise — совместное использование в вашей организации, плюс публичные ссылки после того, как владелец их включит.59Живая интерактивная веб-страница, которую Claude Code публикует из вашего сеанса на приватный URL на claude.ai, чтобы вы могли видеть результат визуально или поделиться им вместо чтения текста терминала. Страница обновляется на месте, когда сеанс переиздается. Артефакты, которые вы создаете из Claude Code, появляются в той же галерее, что и артефакты, созданные в разговорах claude.ai. Параметры общего доступа зависят от вашего плана: см. [Share an artifact](/docs/ru/artifacts#share-an-artifact).

60 60 

61Подробнее: [Share session output as artifacts](/docs/ru/artifacts)61Подробнее: [Share session output as artifacts](/docs/ru/artifacts)

62 62 


72 Auto mode72 Auto mode

73</h3>73</h3>

74 74 

75[Permission mode](#permission-mode), в котором отдельная модель классификатора проверяет действия вместо вас, поэтому Claude Code выполняет большинство из них без вашего запроса. Claude Code все еще просит вас перед действиями, которые совпадают с вашими явными правилами запроса. Начиная с Claude Code v2.1.283 или более поздней версии, auto mode является [встроенным начальным режимом разрешений](/docs/ru/permission-modes#which-mode-a-session-starts-in) для интерактивного терминала и сеансов VS Code на всех планах, а на более ранних версиях только на планах Pro, Max и Team. Классификатор блокирует расширение области действия, ненадежную инфраструктуру и [prompt injection](#prompt-injection). Результаты инструментов удаляются из того, что он видит, поэтому враждебный контент в файле или веб-странице не может манипулировать им напрямую.75[Permission mode](#permission-mode), в котором отдельная модель классификатора проверяет действия вместо вас, поэтому Claude Code выполняет большинство из них без вашего запроса. Claude Code по-прежнему просит вас перед действиями, которые соответствуют вашим явным правилам запроса. Начиная с Claude Code v2.1.283 или более поздней версии, auto mode является [встроенным начальным режимом разрешений](/docs/ru/permission-modes#which-mode-a-session-starts-in) для интерактивного терминала и сеансов VS Code, а в более ранних версиях только на планах Pro, Max и Team. Классификатор блокирует расширение области действия, ненадежную инфраструктуру и [prompt injection](#prompt-injection). Результаты инструментов удаляются из того, что он видит, поэтому враждебный контент в файле или веб-странице не может манипулировать им напрямую.

76 76 

77Подробнее: [Eliminate prompts with auto mode](/docs/ru/permission-modes#eliminate-prompts-with-auto-mode)77Подробнее: [Eliminate prompts with auto mode](/docs/ru/permission-modes#eliminate-prompts-with-auto-mode)

78 78 


475 475 

476Подробнее: [Tools available to Claude](/docs/ru/tools-reference)476Подробнее: [Tools available to Claude](/docs/ru/tools-reference)

477 477 

478<h3 id="transcript">

479 Transcript

480</h3>

481 

482Сохранённая запись [session](#session). Разговор — это то, что вы и Claude обмениваете; transcript — это тот же разговор, сохранённый как файл, по умолчанию в `~/.claude/projects/<project>/<session-id>.jsonl`. Claude Code читает файл обратно, когда вы возобновляете, что позволяет разговору продолжаться после завершения сеанса. Для просмотра того же разговора на экране см. [transcript viewer](/docs/ru/interactive-mode#transcript-viewer).

483 

484Подробнее: [Where transcripts are stored](/docs/ru/sessions#where-transcripts-are-stored)

485 

478<h3 id="turn">486<h3 id="turn">

479 Turn487 Turn

480</h3>488</h3>

Details

315 315 

316Claude Sonnet 5, Opus 4.6 и более поздние версии, а также Sonnet 4.6 поддерживают [контекстное окно с 1M токенов](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model) на платформе Agent Platform Google Cloud. Sonnet 5 всегда работает с окном 1M, без варианта `[1m]` для выбора. Для других моделей Claude Code автоматически включает расширенное контекстное окно при выборе варианта модели с 1M.316Claude Sonnet 5, Opus 4.6 и более поздние версии, а также Sonnet 4.6 поддерживают [контекстное окно с 1M токенов](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model) на платформе Agent Platform Google Cloud. Sonnet 5 всегда работает с окном 1M, без варианта `[1m]` для выбора. Для других моделей Claude Code автоматически включает расширенное контекстное окно при выборе варианта модели с 1M.

317 317 

318[Мастер установки](#sign-in-with-agent-platform) предлагает опцию контекстного окна с 1M при закреплении моделей. Чтобы включить его для вручную закрепленной модели, добавьте `[1m]` к ID модели. Подробности см. в разделе [Закрепите модели для развертываний третьих сторон](/docs/ru/model-config#pin-models-for-third-party-deployments).318[Мастер установки](#sign-in-with-agent-platform) предлагает опцию контекстного окна с 1M при закреплении моделей. Чтобы включить его для вручную закрепленной модели, добавьте `[1m]` к ID модели. Подробности см. в разделе [Закрепите модели для развертываний третьих сторон](/docs/ru/model-config#pin-models-for-third-party-deployments), включая способы использования окна 1M без изменения закрепления.

319 319 

320<h2 id="troubleshooting">320<h2 id="troubleshooting">

321 Устранение неполадок321 Устранение неполадок

hooks.md +332 −317

Details

274 274 

275Hooks из файлов настроек, управляемых параметров политики и плагинов также запускаются внутри [subagents](/docs/ru/sub-agents). Когда subagent вызывает инструмент, события инструмента, такие как `PreToolUse` и `PostToolUse`, запускают те же настроенные hooks, что и в основном разговоре, и входные данные содержат поля `agent_id` и `agent_type` [общих входных полей](#common-input-fields), которые идентифицируют subagent.275Hooks из файлов настроек, управляемых параметров политики и плагинов также запускаются внутри [subagents](/docs/ru/sub-agents). Когда subagent вызывает инструмент, события инструмента, такие как `PreToolUse` и `PostToolUse`, запускают те же настроенные hooks, что и в основном разговоре, и входные данные содержат поля `agent_id` и `agent_type` [общих входных полей](#common-input-fields), которые идентифицируют subagent.

276 276 

277Администраторы предприятия могут использовать `allowManagedHooksOnly` для ограничения того, какие hooks запускаются:277Администраторы могут использовать [`allowManagedHooksOnly`](/docs/ru/settings-reference#allowmanagedhooksonly) в [управляемых параметрах](/docs/ru/managed-settings) для ограничения того, какие hooks запускаются:

278 278 

279* Ваши пользовательские, проектные, локальные и плагинные hooks блокируются. Hooks из плагинов, принудительно включённых в управляемых параметрах `enabledPlugins`, исключены279* Ваши пользовательские, проектные, локальные и плагинные hooks блокируются. Hooks из плагинов, принудительно включённых в управляемых параметрах `enabledPlugins`, исключены

280* Claude Code также сужает ваши параметры [`statusLine`](/docs/ru/statusline), [`fileSuggestion`](/docs/ru/settings-reference#filesuggestion) и [`subagentStatusLine`](/docs/ru/statusline#subagent-status-lines) до управляемых параметров280* Claude Code также сужает ваши параметры [`statusLine`](/docs/ru/statusline), [`fileSuggestion`](/docs/ru/settings-reference#filesuggestion) и [`subagentStatusLine`](/docs/ru/statusline#subagent-status-lines) до управляемых параметров


304 304 

305Фильтр на пути регулярного выражения проверяется с помощью `RegExp.prototype.test` JavaScript, который успешно совпадает в любом месте значения. `Edit.*` совпадает как с `Edit`, так и с `NotebookEdit`; оберните шаблон в `^` и `$`, как в `^Edit$`, когда вам нужно совпадение всей строки.305Фильтр на пути регулярного выражения проверяется с помощью `RegExp.prototype.test` JavaScript, который успешно совпадает в любом месте значения. `Edit.*` совпадает как с `Edit`, так и с `NotebookEdit`; оберните шаблон в `^` и `$`, как в `^Edit$`, когда вам нужно совпадение всей строки.

306 306 

307Дефисы в наборе точного совпадения требуют Claude Code v2.1.195 или позже. На более ранних версиях дефисное имя, такое как `code-reviewer`, оценивается как регулярное выражение без привязки, поэтому оно также срабатывает для `senior-code-reviewer`; закрепите его как `^code-reviewer$` на этих версиях, чтобы совпадать только с этим именем.

308 

309`FileChanged` и `StopFailure` используют более узкий набор точного совпадения только букв, цифр, `_` и `|`. Дефис, пробел или запятая в фильтре для этих двух событий держит его на пути регулярного выражения, и только `|` разделяет альтернативы. Каждое другое событие с поддержкой фильтра в таблице ниже принимает `|` или `,`.307`FileChanged` и `StopFailure` используют более узкий набор точного совпадения только букв, цифр, `_` и `|`. Дефис, пробел или запятая в фильтре для этих двух событий держит его на пути регулярного выражения, и только `|` разделяет альтернативы. Каждое другое событие с поддержкой фильтра в таблице ниже принимает `|` или `,`.

310 308 

311Событие `FileChanged` не следует этим правилам при построении своего списка наблюдения. См. [FileChanged](#filechanged).309Событие `FileChanged` не следует этим правилам при построении своего списка наблюдения. См. [FileChanged](#filechanged).


380* `mcp__brave-search__.*` совпадает со всеми инструментами с сервера, чьё имя содержит дефис378* `mcp__brave-search__.*` совпадает со всеми инструментами с сервера, чьё имя содержит дефис

381* `mcp__.*__write.*` совпадает с любым инструментом, чьё имя начинается с `write` из любого сервера379* `mcp__.*__write.*` совпадает с любым инструментом, чьё имя начинается с `write` из любого сервера

382 380 

383Дефисы в наборе точного совпадения требуют Claude Code v2.1.195 или позже. На более ранних версиях голый дефисный префикс, такой как `mcp__brave-search`, оценивается как регулярное выражение без привязки и совпадает с каждым инструментом с этого сервера. Форма `mcp__brave-search__.*` работает на каждой версии.

384 

385Инструменты из [plugin-bundled MCP server](/docs/ru/mcp#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](/docs/ru/mcp#plugin-provided-mcp-servers) для того, как строится имя с областью.381Инструменты из [plugin-bundled MCP server](/docs/ru/mcp#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](/docs/ru/mcp#plugin-provided-mcp-servers) для того, как строится имя с областью.

386 382 

387Этот пример логирует все операции сервера memory и проверяет операции записи из любого MCP сервера:383Этот пример логирует все операции сервера memory и проверяет операции записи из любого MCP сервера:


919| :- | :- | :- |915| :- | :- | :- |

920| `PreToolUse` | Да | Блокирует вызов инструмента |916| `PreToolUse` | Да | Блокирует вызов инструмента |

921| `PermissionRequest` | Нет | Exit code 2 не учитывается для этого события и поток разрешений продолжается без изменений. Отклоните через объект [`decision`](#permissionrequest-decision-control) вместо этого |917| `PermissionRequest` | Нет | Exit code 2 не учитывается для этого события и поток разрешений продолжается без изменений. Отклоните через объект [`decision`](#permissionrequest-decision-control) вместо этого |

922| `UserPromptSubmit` | Да | Блокирует обработку запроса и стирает запрос |918| `UserPromptSubmit` | Да | Блокирует обработку запроса. См. [What a blocked prompt leaves behind](#what-a-blocked-prompt-leaves-behind) |

923| `UserPromptExpansion` | Да | Блокирует расширение |919| `UserPromptExpansion` | Да | Блокирует расширение |

924| `Stop` | Да | Предотвращает остановку Claude, продолжает разговор |920| `Stop` | Да | Предотвращает остановку Claude, продолжает разговор |

925| `SubagentStop` | Да | Предотвращает остановку subagent |921| `SubagentStop` | Да | Предотвращает остановку subagent |


1169 События hooks1165 События hooks

1170</h2>1166</h2>

1171 1167 

1172Каждое событие соответствует точке в жизненном цикле Claude Code, где могут выполняться hooks. Разделы ниже упорядочены в соответствии с жизненным циклом: от настройки сеанса через агентский цикл к завершению сеанса. Каждый раздел описывает, когда срабатывает событие, какие matchers оно поддерживает, какой JSON-ввод оно получает и как управлять поведением через вывод.1168Каждое событие соответствует точке в жизненном цикле Claude Code, где могут выполняться hooks. Разделы ниже упорядочены в соответствии с жизненным циклом: от настройки сеанса через агентский цикл до завершения сеанса. Каждый раздел описывает, когда срабатывает событие, какие matchers оно поддерживает, какой JSON-ввод оно получает и как управлять поведением через вывод.

1173 1169 

1174<h3 id="sessionstart">1170<h3 id="sessionstart">

1175 SessionStart1171 SessionStart

1176</h3>1172</h3>

1177 1173 

1178Запускается, когда Claude Code начинает новый сеанс или возобновляет существующий сеанс. Полезно для загрузки контекста разработки, такого как существующие проблемы или недавние изменения в вашей кодовой базе, или для установки переменных окружения. Для статического контекста, который не требует скрипта, используйте вместо этого [CLAUDE.md](/docs/ru/memory).1174Запускается, когда Claude Code начинает новый сеанс или возобновляет существующий сеанс. Полезно для загрузки контекста разработки, такого как существующие проблемы или недавние изменения в вашей кодовой базе, или для установки переменных окружения. Для статического контекста, который не требует скрипта, используйте [CLAUDE.md](/docs/ru/memory) вместо этого.

1179 1175 

1180SessionStart запускается в каждом сеансе, поэтому держите эти hooks быстрыми. Поддерживаются только hooks `type: "command"` и `type: "mcp_tool"`. См. [MCP tool hook fields](#mcp-tool-hook-fields) для информации о том, когда выполняются hooks `mcp_tool`.1176SessionStart запускается в каждом сеансе, поэтому держите эти hooks быстрыми. Поддерживаются только hooks `type: "command"` и `type: "mcp_tool"`. См. [MCP tool hook fields](#mcp-tool-hook-fields) для информации о том, когда выполняются hooks `mcp_tool`.

1181 1177 


1187| `resume` | `--resume`, `--continue` или `/resume` |1183| `resume` | `--resume`, `--continue` или `/resume` |

1188| `clear` | `/clear` |1184| `clear` | `/clear` |

1189| `compact` | Автоматическое или ручное сжатие |1185| `compact` | Автоматическое или ручное сжатие |

1190| `fork` | Новый сеанс, разветвленный из существующего: `--fork-session` с `--resume` или `--continue`, фоновая копия `/fork` или `/branch` |1186| `fork` | Новый сеанс, разветвленный из существующего: `--fork-session` с `--resume` или `--continue`, фоновая копия `/fork`, `/branch` или разговор, который вы [переместили в фон](/docs/ru/agent-view#from-inside-a-session) |

1191 1187 

1192До версии 2.1.214 разветвленные сеансы сообщали источник `"resume"`.1188До версии 2.1.214 разветвленные сеансы сообщали источник `"resume"`.

1193 1189 

1194Когда вы запускаете интерактивный сеанс, возобновляете разговор при запуске с `--continue` или `--resume` или запускаете `/clear`, hooks SessionStart выполняются в фоновом режиме. Вы можете сразу же печатать, и возобновленный разговор появляется без ожидания hooks. Первый ответ Claude все еще ждет завершения hooks, поэтому их контекст достигает Claude.1190Когда вы запускаете интерактивный сеанс, возобновляете разговор при запуске с `--continue` или `--resume` или запускаете `/clear`, hooks SessionStart выполняются в фоне. Вы можете сразу начать печатать, и возобновленный разговор появляется без ожидания завершения hooks. Первый ответ Claude все еще ждет завершения hooks, поэтому их контекст достигает Claude.

1195 1191 

1196Когда вы переключаете разговоры с `/resume` внутри сеанса, переключение ждет завершения hooks. Если вы запустите `/clear` или переключитесь на другой разговор, пока фоновые hooks все еще выполняются, ничего из того, что они возвращают, не применяется к сеансу.1192Когда вы переключаете разговоры с `/resume` внутри сеанса, переключение ждет завершения hooks. Если вы запустите `/clear` или переключитесь на другой разговор, пока фоновые hooks все еще выполняются, ничего из того, что они возвращают, не применяется к сеансу.

1197 1193 

1198То же самое ожидание применяется при запуске, включая возобновленный сеанс: подсказка, которую вы отправляете, пока hooks SessionStart все еще выполняются, не достигает Claude до их завершения.1194То же самое ожидание применяется при запуске, включая возобновленный сеанс: подсказка, которую вы отправляете, пока выполняются hooks SessionStart, не достигает Claude, пока они не завершатся.

1199 1195 

1200Во время любого ожидания нажмите `Esc`, чтобы вернуть подсказку в ввод без отправки. Hooks продолжают выполняться.1196Во время любого ожидания нажмите `Esc`, чтобы вернуть подсказку в ввод без отправки. Hooks продолжают выполняться.

1201 1197 

1202<h4 id="sessionstart-input">1198<h4 id="sessionstart-input">

1203 Ввод SessionStart1199 SessionStart input

1204</h4>1200</h4>

1205 1201 

1206Помимо [общих полей ввода](#common-input-fields), hooks SessionStart получают `source` и опционально `model`, `agent_type` и `session_title`:1202Помимо [общих полей ввода](#common-input-fields), hooks SessionStart получают `source` и опционально `model`, `agent_type` и `session_title`:


1209| :- | :- |1205| :- | :- |

1210| `source` | Как был запущен сеанс: `"startup"` для новых сеансов, `"resume"` для возобновленных сеансов, `"clear"` после `/clear`, `"compact"` после сжатия или `"fork"` для нового сеанса, разветвленного из существующего |1206| `source` | Как был запущен сеанс: `"startup"` для новых сеансов, `"resume"` для возобновленных сеансов, `"clear"` после `/clear`, `"compact"` после сжатия или `"fork"` для нового сеанса, разветвленного из существующего |

1211| `model` | Идентификатор активной модели. Может быть опущен, например после `/clear` или когда сеанс восстанавливается через восстановление разговора, поэтому проверьте наличие поля перед его чтением |1207| `model` | Идентификатор активной модели. Может быть опущен, например после `/clear` или когда сеанс восстанавливается через восстановление разговора, поэтому проверьте наличие поля перед его чтением |

1212| `agent_type` | Имя агента, присутствует при запуске Claude Code с `claude --agent <name>` |1208| `agent_type` | Имя агента, присутствует, когда вы запускаете Claude Code с `claude --agent <name>` |

1213| `session_title` | Текущее название сеанса, если оно уже установлено, например через `--name` или `/rename`. Hook, который выдает `sessionTitle`, может сначала проверить `session_title`, чтобы избежать перезаписи названия, установленного пользователем явно |1209| `session_title` | Текущее название сеанса, если оно уже установлено, например через `--name`, `/rename`, вывод hook `sessionTitle` или метод `renameSession()` Agent SDK. Hook, который выдает `sessionTitle`, может сначала проверить это поле, чтобы избежать перезаписи существующего пользовательского названия |

1210 

1211Сеанс, который вы не назвали, все еще может иметь [сгенерированное название](/docs/ru/sessions#name-your-sessions). Это название не является пользовательским названием и не появляется в `session_title`.

1214 1212 

1215Когда `source` имеет значение `"resume"` или `"fork"` и транскрипт содержит по крайней мере один ответ от Claude, hooks SessionStart также получают четыре поля ниже. Ваш hook может использовать их для сообщения о стоимости возобновления устаревшего разговора перед первым запросом, например в [`systemMessage`](#json-output). Эти поля требуют Claude Code v2.1.251 или позже.1213Когда `source` имеет значение `"resume"` или `"fork"` и транскрипт содержит по крайней мере один ответ от Claude, hooks SessionStart также получают четыре поля ниже. Ваш hook может использовать их для сообщения о том, какие затраты на возобновление устаревшего разговора до первого запроса, например в [`systemMessage`](#json-output). Эти поля требуют Claude Code v2.1.251 или позже.

1216 1214 

1217| Поле | Описание |1215| Поле | Описание |

1218| :- | :- |1216| :- | :- |


1239```1237```

1240 1238 

1241<h4 id="sessionstart-decision-control">1239<h4 id="sessionstart-decision-control">

1242 Управление решением SessionStart1240 Управление решениями SessionStart

1243</h4>1241</h4>

1244 1242 

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

1246 1244 

1247| Поле | Описание |1245| Поле | Описание |

1248| :- | :- |1246| :- | :- |

1249| `additionalContext` | Строка, добавленная в контекст Claude в начале разговора, перед первой подсказкой. См. [Add context for Claude](#add-context-for-claude) для информации о том, как доставляется текст и что в него поместить |1247| `additionalContext` | Строка, добавленная в контекст Claude в начале разговора, перед первой подсказкой. См. [Add context for Claude](#add-context-for-claude) для информации о том, как доставляется текст и что в него поместить |

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

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

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

1253| `reloadSkills` | Логическое значение. Когда `true`, Claude Code повторно сканирует [skill](/docs/ru/skills) и директории команд после завершения hooks SessionStart, поэтому skills, установленные hook, доступны в том же сеансе, начиная с первой подсказки |1251| `reloadSkills` | Логическое значение. Когда `true`, Claude Code повторно сканирует [skill](/docs/ru/skills) и директории команд после завершения hooks SessionStart, поэтому skills, установленные hook, доступны в том же сеансе, начиная с первой подсказки |

1254 1252 

1255```json theme={null}1253```json theme={null}


1275echo '{"hookSpecificOutput": {"hookEventName": "SessionStart", "reloadSkills": true}}'1273echo '{"hookSpecificOutput": {"hookEventName": "SessionStart", "reloadSkills": true}}'

1276```1274```

1277 1275 

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

1279 1277 

1280<h4 id="persist-environment-variables">1278<h4 id="persist-environment-variables">

1281 Сохранение переменных окружения1279 Persist environment variables

1282</h4>1280</h4>

1283 1281 

1284Hooks SessionStart имеют доступ к переменной окружения `CLAUDE_ENV_FILE`, которая предоставляет путь к файлу, где вы можете сохранить переменные окружения для последующих команд Bash.1282Hooks SessionStart имеют доступ к переменной окружения `CLAUDE_ENV_FILE`, которая предоставляет путь к файлу, где вы можете сохранять переменные окружения для последующих команд Bash.

1285 1283 

1286Чтобы установить отдельные переменные окружения, напишите операторы `export` в `CLAUDE_ENV_FILE`. Используйте добавление (`>>`) для сохранения переменных, установленных другими hooks:1284Чтобы установить отдельные переменные окружения, напишите операторы `export` в `CLAUDE_ENV_FILE`. Используйте добавление (`>>`) для сохранения переменных, установленных другими hooks:

1287 1285 


1324 Setup1322 Setup

1325</h3>1323</h3>

1326 1324 

1327Срабатывает только при запуске Claude Code с `--init-only` или с `--init` или `--maintenance` в [неинтерактивном режиме](/docs/ru/headless) с флагом `-p`. Не срабатывает при нормальном запуске. Используйте для одноразовой установки зависимостей или запланированной очистки, которую вы явно запускаете из CI или скриптов, отдельно от нормального запуска сеанса. Для инициализации для каждого сеанса используйте вместо этого [SessionStart](#sessionstart).1325Срабатывает только при запуске Claude Code с `--init-only` или с `--init` или `--maintenance` в [неинтерактивном режиме](/docs/ru/headless) с флагом `-p`. Не срабатывает при нормальном запуске. Используйте его для одноразовой установки зависимостей или запланированной очистки, которую вы явно запускаете из CI или скриптов, отдельно от нормального запуска сеанса. Для инициализации для каждого сеанса используйте [SessionStart](#sessionstart) вместо этого.

1328 1326 

1329Значение matcher соответствует флагу CLI, который запустил hook:1327Значение matcher соответствует флагу CLI, который запустил hook:

1330 1328 


1337 1335 

1338Когда вы запускаете или продолжаете разговор с `-p`, вам также нужно предоставить подсказку как аргумент или через stdin. Вы можете пропустить подсказку, когда hook `SessionStart` предоставляет [`initialUserMessage`](#sessionstart-decision-control) или когда вы возобновляете сеанс с [отложенным вызовом инструмента](#defer-a-tool-call-for-later).1336Когда вы запускаете или продолжаете разговор с `-p`, вам также нужно предоставить подсказку как аргумент или через stdin. Вы можете пропустить подсказку, когда hook `SessionStart` предоставляет [`initialUserMessage`](#sessionstart-decision-control) или когда вы возобновляете сеанс с [отложенным вызовом инструмента](#defer-a-tool-call-for-later).

1339 1337 

1340При успехе `--init-only` ничего не выводит на терминал. Чтобы подтвердить, что hooks выполнились, начните с `claude --debug-file <path> --init-only`, заменив `<path>` на местоположение файла журнала, и проверьте журнал на наличие записей hooks Setup и SessionStart.1338При успехе `--init-only` ничего не выводит на терминал. Чтобы подтвердить, что hooks выполнились, запустите с `claude --debug-file <path> --init-only`, заменив `<path>` на местоположение файла журнала, и проверьте журнал на наличие записей hooks Setup и SessionStart.

1341 1339 

1342Поскольку Setup не срабатывает при каждом запуске, плагин, которому нужна установленная зависимость, не может полагаться только на Setup. Практический паттерн — проверить зависимость при первом использовании и установить при отсутствии, например hook или skill, который тестирует `${CLAUDE_PLUGIN_DATA}/node_modules` и запускает `npm install`, если отсутствует. См. [persistent data directory](/docs/ru/plugins/components#path-variables-and-persistent-data) для информации о том, где хранить установленные зависимости. Если вы распространяете свой плагин через marketplace, вам может не понадобиться этот паттерн: Claude Code [автоматически устанавливает подходящие зависимости пакетов Node.js](/docs/ru/plugins/loading#node-js-package-dependencies) при кэшировании плагина.1340Поскольку Setup не срабатывает при каждом запуске, plugin, которому нужна установленная зависимость, не может полагаться только на Setup. Практический паттерн — проверить зависимость при первом использовании и установить при отсутствии, например hook или skill, который тестирует `${CLAUDE_PLUGIN_DATA}/node_modules` и запускает `npm install`, если отсутствует. См. [persistent data directory](/docs/ru/plugins/components#path-variables-and-persistent-data) для информации о том, где хранить установленные зависимости. Если вы распространяете ваш plugin через marketplace, вам может не понадобиться этот паттерн: Claude Code [автоматически устанавливает подходящие зависимости пакета Node.js](/docs/ru/plugins/loading#node-js-package-dependencies) при кэшировании plugin.

1343 1341 

1344<h4 id="setup-input">1342<h4 id="setup-input">

1345 Ввод Setup1343 Setup input

1346</h4>1344</h4>

1347 1345 

1348Помимо [общих полей ввода](#common-input-fields), hooks Setup получают поле `trigger`, установленное либо на `"init"`, либо на `"maintenance"`:1346Помимо [общих полей ввода](#common-input-fields), hooks Setup получают поле `trigger`, установленное либо на `"init"`, либо на `"maintenance"`:


1358```1356```

1359 1357 

1360<h4 id="setup-decision-control">1358<h4 id="setup-decision-control">

1361 Управление решением Setup1359 Управление решениями Setup

1362</h4>1360</h4>

1363 1361 

1364Hooks Setup не могут блокировать; выполнение продолжается при любом коде выхода. При каждом коде выхода Claude Code отбрасывает [поля JSON-вывода](#json-output) hook Setup, такие как `systemMessage`, `continue` и `hookSpecificOutput.additionalContext`. С `-p` stdout, stderr и код выхода hook Setup появляются в выводе запуска только как [`hook_response` события](/docs/ru/headless#read-session-metadata) при запуске с `--output-format stream-json --verbose`.1362Hooks Setup не могут блокировать; выполнение продолжается при любом коде выхода. При каждом коде выхода Claude Code отбрасывает [поля вывода JSON](#json-output) hook Setup, такие как `systemMessage`, `continue` и `hookSpecificOutput.additionalContext`. С `-p` stdout, stderr и код выхода hook Setup появляются в выводе запуска только как [`hook_response` события](/docs/ru/headless#read-session-metadata) при запуске с `--output-format stream-json --verbose`.

1365 1363 

1366Hooks Setup имеют доступ к `CLAUDE_ENV_FILE`. Переменные, записанные в этот файл, сохраняются в последующих командах Bash для сеанса, как и в [hooks SessionStart](#persist-environment-variables). На `Setup` выполняются только hooks `type: "command"`. Hook `type: "mcp_tool"` на `Setup` всегда пропускается, как описано в [MCP tool hook fields](#mcp-tool-hook-fields).1364Hooks Setup имеют доступ к `CLAUDE_ENV_FILE`. Переменные, записанные в этот файл, сохраняются в последующих командах Bash для сеанса, как в [hooks SessionStart](#persist-environment-variables). На `Setup` выполняются только hooks `type: "command"`. Hook `type: "mcp_tool"` на `Setup` всегда пропускается, как описано в [MCP tool hook fields](#mcp-tool-hook-fields).

1367 1365 

1368<h3 id="instructionsloaded">1366<h3 id="instructionsloaded">

1369 InstructionsLoaded1367 InstructionsLoaded

1370</h3>1368</h3>

1371 1369 

1372Срабатывает, когда файл `CLAUDE.md` или `.claude/rules/*.md` загружается в контекст. Это событие срабатывает при запуске сеанса для файлов, загружаемых с нетерпением, и снова позже, когда файлы загружаются с нетерпением, например когда Claude получает доступ к подпапке, содержащей вложенный `CLAUDE.md`, или когда условные правила с frontmatter `paths:` совпадают. Hook не поддерживает блокировку или управление решением. Он выполняется асинхронно в целях наблюдаемости.1370Срабатывает, когда файл `CLAUDE.md` или `.claude/rules/*.md` загружается в контекст. Это событие срабатывает при запуске сеанса для файлов, загруженных с нетерпением, и снова позже, когда файлы загружаются с нетерпением, например когда Claude получает доступ к подпапке, которая содержит вложенный `CLAUDE.md`, или когда условные правила с frontmatter `paths:` совпадают. Hook не поддерживает блокировку или управление решениями. Он выполняется асинхронно в целях наблюдаемости.

1373 1371 

1374Это событие не срабатывает, когда Claude [читает `AGENTS.md` напрямую](/docs/ru/memory#agents-md) через параметр **Project instructions**. Оно срабатывает, когда `CLAUDE.md` импортирует ваш `AGENTS.md` с `load_reason`, установленным на `include`, как для любого другого импортированного файла, и когда `CLAUDE.md` является символической ссылкой на него, как нормальная загрузка `CLAUDE.md`.1372Это событие не срабатывает, когда Claude [читает `AGENTS.md` напрямую](/docs/ru/memory#agents-md) через параметр **Project instructions**. Оно срабатывает, когда `CLAUDE.md` импортирует ваш `AGENTS.md` с `load_reason`, установленным на `include`, как для любого другого импортированного файла, и когда `CLAUDE.md` является символической ссылкой на него, как обычная загрузка `CLAUDE.md`.

1375 1373 

1376Matcher выполняется против `load_reason`. Например, используйте `"matcher": "session_start"` для срабатывания только для файлов, загруженных при запуске сеанса, или `"matcher": "path_glob_match|nested_traversal"` для срабатывания только для ленивых загрузок.1374Matcher выполняется против `load_reason`. Например, используйте `"matcher": "session_start"` для срабатывания только для файлов, загруженных при запуске сеанса, или `"matcher": "path_glob_match|nested_traversal"` для срабатывания только для ленивых загрузок.

1377 1375 

1378<h4 id="instructionsloaded-input">1376<h4 id="instructionsloaded-input">

1379 Ввод InstructionsLoaded1377 InstructionsLoaded input

1380</h4>1378</h4>

1381 1379 

1382Помимо [общих полей ввода](#common-input-fields), hooks InstructionsLoaded получают эти поля:1380Помимо [общих полей ввода](#common-input-fields), hooks InstructionsLoaded получают эти поля:


1385| :- | :- |1383| :- | :- |

1386| `file_path` | Абсолютный путь к файлу инструкций, который был загружен |1384| `file_path` | Абсолютный путь к файлу инструкций, который был загружен |

1387| `memory_type` | Область действия файла: `"User"`, `"Project"`, `"Local"` или `"Managed"` |1385| `memory_type` | Область действия файла: `"User"`, `"Project"`, `"Local"` или `"Managed"` |

1388| `load_reason` | Почему файл был загружен: `"session_start"`, `"nested_traversal"`, `"path_glob_match"`, `"include"` или `"compact"`. Значение `"compact"` срабатывает, когда файлы инструкций перезагружаются после события сжатия |1386| `load_reason` | Почему был загружен файл: `"session_start"`, `"nested_traversal"`, `"path_glob_match"`, `"include"` или `"compact"`. Значение `"compact"` срабатывает, когда файлы инструкций перезагружаются после события сжатия |

1389| `globs` | Шаблоны глобов путей из frontmatter `paths:` файла, если они есть. Присутствует только для загрузок `path_glob_match` |1387| `globs` | Шаблоны glob путей из frontmatter `paths:` файла, если они есть. Присутствует только для загрузок `path_glob_match` |

1390| `trigger_file_path` | Путь к файлу, доступ к которому запустил эту загрузку, для ленивых загрузок |1388| `trigger_file_path` | Путь к файлу, доступ к которому запустил эту загрузку, для ленивых загрузок |

1391| `parent_file_path` | Путь к файлу инструкций родителя, который включил этот, для загрузок `include` |1389| `parent_file_path` | Путь к родительскому файлу инструкций, который включил этот, для загрузок `include` |

1392 1390 

1393```json theme={null}1391```json theme={null}

1394{1392{


1403```1401```

1404 1402 

1405<h4 id="instructionsloaded-decision-control">1403<h4 id="instructionsloaded-decision-control">

1406 Управление решением InstructionsLoaded1404 Управление решениями InstructionsLoaded

1407</h4>1405</h4>

1408 1406 

1409Hooks InstructionsLoaded не имеют управления решением. Они не могут блокировать или изменять загрузку инструкций. Claude Code отбрасывает их [поля JSON-вывода](#json-output), такие как `systemMessage` и `continue`. Используйте это событие для аудита логирования, отслеживания соответствия или наблюдаемости.1407Hooks InstructionsLoaded не имеют управления решениями. Они не могут блокировать или изменять загрузку инструкций. Claude Code отбрасывает их [поля вывода JSON](#json-output), такие как `systemMessage` и `continue`. Используйте это событие для аудита журнала, отслеживания соответствия или наблюдаемости.

1410 1408 

1411<h3 id="userpromptsubmit">1409<h3 id="userpromptsubmit">

1412 UserPromptSubmit1410 UserPromptSubmit

1413</h3>1411</h3>

1414 1412 

1415Запускается, когда пользователь отправляет подсказку, перед обработкой Claude. Это позволяет вам добавить дополнительный контекст на основе подсказки/разговора, проверить подсказки или заблокировать определенные типы подсказок.1413Запускается, когда пользователь отправляет подсказку, перед обработкой Claude. Это позволяет вам добавлять дополнительный контекст на основе подсказки/разговора, проверять подсказки или блокировать определенные типы подсказок.

1416 1414 

1417Hooks `UserPromptSubmit` имеют тайм-аут по умолчанию 30 секунд для типов `command`, `http` и `mcp_tool`, короче, чем 600-секундный стандарт для этих типов на большинстве других событий. Поскольку этот hook выполняется перед каждой подсказкой и блокирует обработку модели до его завершения, застрявший hook замораживает сеанс. Если вашему hook нужно больше времени, установите поле `timeout` в записи hook.1415Hooks `UserPromptSubmit` имеют тайм-аут по умолчанию 30 секунд для типов `command`, `http` и `mcp_tool`, короче, чем 600-секундный по умолчанию для этих типов на большинстве других событий. Поскольку этот hook выполняется перед каждой подсказкой и блокирует обработку модели до его завершения, застрявший hook замораживает сеанс. Если вашему hook нужно больше времени, установите поле `timeout` в записи hook.

1418 1416 

1419Помимо command hook, который вы запускаете с [`async: true`](#run-hooks-in-the-background), hook `UserPromptSubmit` command, HTTP или MCP tool, который достигает своего тайм-аута, отменяется и его вывод, включая любой `additionalContext`, отбрасывается. Подсказка все еще достигает Claude без этого контекста. Транскрипт показывает уведомление с названием hook, тайм-аутом, который сработал, и что вывод был отброшен.1417Помимо hook команды, который вы запускаете с [`async: true`](#run-hooks-in-the-background), hook `UserPromptSubmit` команды, HTTP или MCP tool, который достигает своего тайм-аута, отменяется и его вывод, включая любой `additionalContext`, отбрасывается. Подсказка все еще достигает Claude без этого контекста. Транскрипт показывает уведомление с названием hook, тайм-аутом, который сработал, и что вывод был отброшен.

1420 1418 

1421[Callback hook Agent SDK](/docs/ru/agent-sdk/hooks) на `UserPromptSubmit`, который достигает своего тайм-аута, блокирует подсказку сообщением с названием hook и тайм-аутом, потому что callback там может действовать как политический шлюз, который не должен открываться при отказе. Сеанс продолжается. До версии 2.1.208 тайм-аут callback на этом событии заканчивал ход с ошибкой выполнения.1419[Agent SDK callback hook](/docs/ru/agent-sdk/hooks) на `UserPromptSubmit`, который достигает своего тайм-аута, блокирует подсказку сообщением с названием hook и тайм-аутом, потому что callback там может действовать как политический шлюз, который не должен отказывать открыто. Сеанс продолжается. До версии 2.1.208 тайм-аут callback на этом событии заканчивал ход с ошибкой выполнения.

1422 1420 

1423<h4 id="userpromptsubmit-input">1421<h4 id="userpromptsubmit-input">

1424 Ввод UserPromptSubmit1422 UserPromptSubmit input

1425</h4>1423</h4>

1426 1424 

1427Помимо [общих полей ввода](#common-input-fields), hooks UserPromptSubmit получают поле `prompt`, содержащее текст, отправленный пользователем. Вставленный контент, который свернулся в заполнитель `[Pasted text #N]`, прибывает развернутым на месте. В сеансах, где Claude Code [отмечает вставленный текст для Claude](/docs/ru/terminal-config#how-claude-treats-pasted-text), этот развернутый контент находится между строкой `<pasted_content id="…">` и строкой `</pasted_content id="…">`, поэтому учитывайте эти строки, если ваш hook анализирует подсказку.1425Помимо [общих полей ввода](#common-input-fields), hooks UserPromptSubmit получают поле `prompt`, содержащее текст, отправленный пользователем. Вставленный контент, который свернулся в заполнитель `[Pasted text #N]`, прибывает развернутым на месте. В сеансах, где Claude Code [отмечает вставленный текст для Claude](/docs/ru/terminal-config#how-claude-treats-pasted-text), этот развернутый контент находится между строкой `<pasted_content id="…">` и строкой `</pasted_content id="…">`, поэтому учитывайте эти строки, если ваш hook анализирует подсказку.

1428 1426 

1427Hooks UserPromptSubmit также получают `session_title`, когда сеанс имеет пользовательское название, с тем же значением, что и [поле SessionStart `session_title`](#sessionstart-input).

1428 

1429```json theme={null}1429```json theme={null}

1430{1430{

1431 "session_id": "abc123",1431 "session_id": "abc123",


1438```1438```

1439 1439 

1440<h4 id="userpromptsubmit-decision-control">1440<h4 id="userpromptsubmit-decision-control">

1441 Управление решением UserPromptSubmit1441 Управление решениями UserPromptSubmit

1442</h4>1442</h4>

1443 1443 

1444Hooks `UserPromptSubmit` могут управлять тем, обрабатывается ли подсказка пользователя, и добавлять контекст. Все [поля JSON-вывода](#json-output) доступны.1444Hooks `UserPromptSubmit` могут управлять тем, обрабатывается ли подсказка пользователя, и добавлять контекст. Все [поля вывода JSON](#json-output) доступны.

1445 1445 

1446Есть два способа добавить контекст к разговору при коде выхода 0:1446Есть два способа добавить контекст к разговору при коде выхода 0:

1447 1447 

1448* **Простой текст stdout**: Claude Code добавляет stdout, который он [рассматривает как простой текст](#exit-code-0), в контекст Claude1448* **Простой текст stdout**: Claude Code добавляет stdout, который он [рассматривает как простой текст](#exit-code-0), в контекст Claude

1449* **JSON с `additionalContext`**: используйте формат JSON ниже для большего контроля. Значение `additionalContext` добавляется как контекст1449* **JSON с `additionalContext`**: используйте формат JSON ниже для большего контроля. Поле `additionalContext` добавляется как контекст

1450 1450 

1451Ни один канал не создает видимую запись в транскрипте. Простой stdout и значение `additionalContext` каждый вводятся как системное напоминание, которое начинается с названия hook; Claude читает оба. Чтобы подтвердить доставку, проверьте [debug log](#debug-hooks).1451Ни один канал не создает видимую запись в транскрипте. Простой stdout и значение `additionalContext` каждый вводятся как системное напоминание, которое начинается с имени hook; Claude читает оба. Чтобы подтвердить доставку, проверьте [debug log](#debug-hooks).

1452 1452 

1453Чтобы заблокировать подсказку, верните объект JSON с `decision`, установленным на `"block"`:1453Чтобы заблокировать подсказку, верните объект JSON с `decision`, установленным на `"block"`:

1454 1454 

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

1456| :- | :- |1456| :- | :- |

1457| `decision` | `"block"` предотвращает обработку подсказки и стирает ее из контекста. Опустите, чтобы позволить подсказке продолжить |1457| `decision` | `"block"` останавливает подсказку перед тем, как она достигнет Claude. Опустите, чтобы позволить подсказке продолжить |

1458| `reason` | Показано пользователю, когда `decision` имеет значение `"block"`. Не добавляется в контекст |1458| `reason` | Показано пользователю, когда `decision` имеет значение `"block"`. Не добавляется в контекст |

1459| `additionalContext` | Строка, добавленная в контекст Claude рядом с отправленной подсказкой. См. [Add context for Claude](#add-context-for-claude) |1459| `additionalContext` | Строка, добавленная в контекст Claude рядом с отправленной подсказкой. См. [Add context for Claude](#add-context-for-claude) |

1460| `sessionTitle` | Устанавливает название сеанса. Используйте для автоматического именования сеансов на основе содержания подсказки |1460| `sessionTitle` | Устанавливает название сеанса. Используйте для автоматического именования сеансов на основе содержания подсказки |

1461| `suppressOriginalPrompt` | Если `true`, когда `decision` имеет значение `"block"`, опускает исходный текст подсказки из сообщения блокировки, показанного пользователю |1461| `suppressOriginalPrompt` | Если `true`, когда hook блокирует подсказку, оставляет текст подсказки вне сообщения блокировки. См. [What a blocked prompt leaves behind](#what-a-blocked-prompt-leaves-behind) |

1462 1462 

1463Hook, который блокирует выходом 2, маршрутизируется так же, как `reason`: сообщение блокировки показывает текст stderr пользователю и не добавляется в контекст.1463Hook, который блокирует выходом 2, маршрутизируется так же, как `reason`: сообщение блокировки показывает текст stderr пользователю, и оно не добавляется в контекст.

1464 1464 

1465```json theme={null}1465```json theme={null}

1466{1466{


1469 "hookSpecificOutput": {1469 "hookSpecificOutput": {

1470 "hookEventName": "UserPromptSubmit",1470 "hookEventName": "UserPromptSubmit",

1471 "additionalContext": "My additional context here",1471 "additionalContext": "My additional context here",

1472 "sessionTitle": "My session title"1472 "sessionTitle": "My session title",

1473 "suppressOriginalPrompt": true

1473 }1474 }

1474}1475}

1475```1476```

1476 1477 

1478<h4 id="what-a-blocked-prompt-leaves-behind">

1479 Что оставляет после себя заблокированная подсказка

1480</h4>

1481 

1482Заблокированная подсказка никогда не достигает Claude, но ее текст не удаляется везде. По умолчанию сообщение блокировки, показанное пользователю, заканчивается на `Original prompt:`, за которым следует отправленный текст, и Claude Code записывает это сообщение в файл транскрипта сеанса на диск. Чтобы оставить текст вне сообщения, выведите JSON с `"suppressOriginalPrompt": true` внутри `hookSpecificOutput`. Это работает, блокирует ли hook с `decision: "block"` или выходом 2. Hook выхода 2, который не выводит JSON, всегда получает текст подсказки в своем сообщении блокировки.

1483 

1484`suppressOriginalPrompt` изменяет только сообщение блокировки. Отправленный текст все еще может появляться в локальных файлах, таких как транскрипт сеанса и история подсказок, поэтому блокирующий hook не является способом держать секрет вне диска. Чтобы ограничить или удалить эти файлы, см. [Plaintext storage](/docs/ru/claude-directory#plaintext-storage) и [Clear local data](/docs/ru/claude-directory#clear-local-data).

1485 

1477<h3 id="userpromptexpansion">1486<h3 id="userpromptexpansion">

1478 UserPromptExpansion1487 UserPromptExpansion

1479</h3>1488</h3>


1482 1491 

1483Это событие охватывает путь, который `PreToolUse` не охватывает: hook `PreToolUse`, соответствующий инструменту `Skill`, срабатывает только, когда Claude вызывает инструмент, но ввод `/skillname` напрямую обходит `PreToolUse`. `UserPromptExpansion` срабатывает на этом прямом пути.1492Это событие охватывает путь, который `PreToolUse` не охватывает: hook `PreToolUse`, соответствующий инструменту `Skill`, срабатывает только, когда Claude вызывает инструмент, но ввод `/skillname` напрямую обходит `PreToolUse`. `UserPromptExpansion` срабатывает на этом прямом пути.

1484 1493 

1485Совпадает с `command_name`. Оставьте matcher пустым для срабатывания на каждой команде типа подсказки.1494Совпадает с `command_name`. Оставьте matcher пустым, чтобы срабатывать на каждой команде типа подсказки.

1486 1495 

1487<h4 id="userpromptexpansion-input">1496<h4 id="userpromptexpansion-input">

1488 Ввод UserPromptExpansion1497 UserPromptExpansion input

1489</h4>1498</h4>

1490 1499 

1491Помимо [общих полей ввода](#common-input-fields), hooks UserPromptExpansion получают `expansion_type`, `command_name`, `command_args`, `command_source` и исходную строку `prompt`. Поле `expansion_type` имеет значение `slash_command` для skill и пользовательских команд или `mcp_prompt` для подсказок сервера MCP.1500Помимо [общих полей ввода](#common-input-fields), hooks UserPromptExpansion получают `expansion_type`, `command_name`, `command_args`, `command_source` и исходную строку `prompt`. Поле `expansion_type` — это `slash_command` для skill и пользовательских команд или `mcp_prompt` для подсказок MCP сервера.

1492 1501 

1493```json theme={null}1502```json theme={null}

1494{1503{


1506```1515```

1507 1516 

1508<h4 id="userpromptexpansion-decision-control">1517<h4 id="userpromptexpansion-decision-control">

1509 Управление решением UserPromptExpansion1518 Управление решениями UserPromptExpansion

1510</h4>1519</h4>

1511 1520 

1512Hooks `UserPromptExpansion` могут блокировать расширение или добавлять контекст. Все [поля JSON-вывода](#json-output) доступны.1521Hooks `UserPromptExpansion` могут блокировать расширение или добавлять контекст. Все [поля вывода JSON](#json-output) доступны.

1513 1522 

1514| Поле | Описание |1523| Поле | Описание |

1515| :- | :- |1524| :- | :- |

1516| `decision` | `"block"` предотвращает расширение команды. Опустите, чтобы позволить ей продолжить |1525| `decision` | `"block"` предотвращает расширение команды. Опустите, чтобы позволить ей продолжить |

1517| `reason` | Показано пользователю, когда `decision` имеет значение `"block"` |1526| `reason` | Показано пользователю, когда `decision` — это `"block"` |

1518| `additionalContext` | Строка, добавленная в контекст Claude рядом с развернутой подсказкой. См. [Add context for Claude](#add-context-for-claude) |1527| `additionalContext` | Строка, добавленная в контекст Claude рядом с развернутой подсказкой. См. [Add context for Claude](#add-context-for-claude) |

1519 1528 

1520Hook, который блокирует выходом 2, маршрутизируется так же, как `reason`: сообщение блокировки показывает текст stderr пользователю.1529Hook, который блокирует выходом 2, маршрутизируется так же, как `reason`: сообщение блокировки показывает текст stderr пользователю.


1534 MessageDisplay1543 MessageDisplay

1535</h3>1544</h3>

1536 1545 

1537Запускается, пока сообщение помощника транслируется на экран. Claude Code отображает сообщение порциями: каждый раз, когда партия новых завершенных строк готова к отрисовке, hook выполняется один раз с этими строками, и Claude Code отображает текст замены hook на их месте. Длинное сообщение создает несколько вызовов; короткое сообщение может создать только один.1546Запускается, пока сообщение помощника транслируется на экран. Claude Code отображает сообщение порциями: каждый раз, когда партия новых завершенных строк готова к отрисовке, hook выполняется один раз с этими строками и Claude Code отображает текст замены hook на их месте. Длинное сообщение создает несколько вызовов; короткое сообщение может создать только один.

1538 1547 

1539Используйте MessageDisplay для:1548Используйте MessageDisplay для:

1540 1549 


1542* преобразования текста, который приложение Agent SDK показывает своим пользователям1551* преобразования текста, который приложение Agent SDK показывает своим пользователям

1543* редактирования ключей API или внутренних имен хостов из ответов Claude1552* редактирования ключей API или внутренних имен хостов из ответов Claude

1544 1553 

1545Claude Code удерживает каждую партию до возврата вашего hook, поэтому держите hook быстрым. Если hook не удается или истекает время ожидания, Claude Code отображает исходный текст. Тайм-аут по умолчанию для этого события составляет 10 секунд; если вашему hook нужно больше времени, установите поле `timeout` в записи hook.1554Claude Code удерживает каждую партию до возврата вашего hook, поэтому держите hook быстрым. Если hook не удается или истекает время ожидания, Claude Code отображает исходный текст. Тайм-аут по умолчанию для этого события — 10 секунд; если вашему hook нужно больше времени, установите поле `timeout` в записи hook.

1546 1555 

1547MessageDisplay только для отображения: текст замены изменяет только то, что отображается на экране. Транскрипт и то, что видит Claude, сохраняют исходный текст, поэтому Claude никогда не видит замену, и подробный режим показывает исходный. Hook получает только текст сообщения помощника, поэтому результаты инструментов и текст, который вы вводите, отображаются без изменений.1556MessageDisplay только для отображения: текст замены изменяет только то, что отображается на экране. Транскрипт и то, что видит Claude, сохраняют исходный текст, поэтому Claude никогда не видит замену, и подробный режим показывает исходный. Hook получает только текст сообщения помощника, поэтому результаты инструментов и текст, который вы вводите, отображаются без изменений.

1548 1557 

1549MessageDisplay не поддерживает matchers и срабатывает для каждого сообщения помощника, которое транслирует текст; сообщения без текста, такие как ответы только с вызовом инструмента, не запускают его.1558MessageDisplay не поддерживает matchers и срабатывает для каждого сообщения помощника, которое потоком выводит текст; сообщения без текста, такие как ответы только с вызовом инструмента, не запускают его.

1550 1559 

1551В неинтерактивных запусках, включая запросы Agent SDK и `claude -p`, MessageDisplay выполняется один раз для каждого сообщения помощника вместо один раз для каждой партии строк. Один вызов прибывает после завершения сообщения и несет полный текст сообщения: `index` имеет значение `0`, `final` имеет значение `true`, и `delta` содержит все сообщение. Hook, который собирает текст `delta` для каждого сообщения, получает одинаковый общий текст в обоих режимах.1560В неинтерактивных запусках, включая запросы Agent SDK и `claude -p`, MessageDisplay выполняется один раз для каждого сообщения помощника вместо один раз для каждой партии строк. Один вызов прибывает после завершения сообщения и несет полный текст сообщения: `index` — это `0`, `final` — это `true`, и `delta` содержит все сообщение. Hook, который собирает текст `delta` для каждого сообщения, получает одинаковый общий текст в обоих режимах.

1552 1561 

1553<h4 id="messagedisplay-input">1562<h4 id="messagedisplay-input">

1554 Ввод MessageDisplay1563 MessageDisplay input

1555</h4>1564</h4>

1556 1565 

1557Помимо [общих полей ввода](#common-input-fields), hooks MessageDisplay получают идентификаторы для хода и сообщения, позицию этого вызова в сообщении и новый текст в `delta`. Границы партий зависят от того, как транслируется текст, поэтому используйте `index` и `final` для отслеживания прогресса через сообщение, а не ожидайте, что строки будут сгруппированы определенным образом.1566Помимо [общих полей ввода](#common-input-fields), hooks MessageDisplay получают идентификаторы для хода и сообщения, позицию этого вызова в сообщении и новый текст в `delta`. Границы партий зависят от того, как потоком выводится текст, поэтому используйте `index` и `final` для отслеживания прогресса через сообщение, а не ожидайте, что строки будут сгруппированы определенным образом.

1558 1567 

1559| Поле | Описание |1568| Поле | Описание |

1560| :- | :- |1569| :- | :- |


1562| `message_id` | UUID сообщения помощника, которое отображается. Стабилен для каждой партии одного сообщения. Это не API `msg_…` id, поэтому его нельзя коррелировать с id сообщений транскрипта |1571| `message_id` | UUID сообщения помощника, которое отображается. Стабилен для каждой партии одного сообщения. Это не API `msg_…` id, поэтому его нельзя коррелировать с id сообщений транскрипта |

1563| `index` | Индекс этой партии в сообщении, начиная с нуля |1572| `index` | Индекс этой партии в сообщении, начиная с нуля |

1564| `final` | `true` на последней партии сообщения. Каждое сообщение имеет ровно одну финальную партию |1573| `final` | `true` на последней партии сообщения. Каждое сообщение имеет ровно одну финальную партию |

1565| `delta` | Новые завершенные строки с момента предыдущей партии, включая завершающие новые строки. Всегда целые строки, кроме финальной партии, которая может заканчиваться в середине строки. В интерактивных запусках delta финальной партии пуст, когда сообщение заканчивается на новой строке, поэтому рассматривайте `final`, а не непустой delta, как сигнал конца сообщения. В запусках Agent SDK и `claude -p` один вызов несет все сообщение |1574| `delta` | Новые завершенные строки с момента предыдущей партии, включая завершающие новые строки. Всегда целые строки, кроме финальной партии, которая может заканчиваться в середине строки. В интерактивных запусках delta финальной партии пуста, когда сообщение заканчивается на новой строке, поэтому рассматривайте `final`, а не непустой delta, как сигнал конца сообщения. В запусках Agent SDK и `claude -p` один вызов несет все сообщение |

1566 1575 

1567```json theme={null}1576```json theme={null}

1568{1577{


1579```1588```

1580 1589 

1581<h4 id="messagedisplay-output">1590<h4 id="messagedisplay-output">

1582 Вывод MessageDisplay1591 MessageDisplay output

1583</h4>1592</h4>

1584 1593 

1585Помимо [полей JSON-вывода](#json-output), доступных всем hooks, hooks MessageDisplay могут вернуть `displayContent` для замены delta на экране:1594Помимо [полей вывода JSON](#json-output), доступных всем hooks, hooks MessageDisplay могут вернуть `displayContent` для замены delta на экране:

1586 1595 

1587| Поле | Описание |1596| Поле | Описание |

1588| :- | :- |1597| :- | :- |

1589| `displayContent` | Текст, отображаемый вместо delta. Опустите для отображения исходного |1598| `displayContent` | Текст, отображаемый вместо delta. Опустите, чтобы отобразить исходный |

1590 1599 

1591Hooks MessageDisplay не имеют управления решением. Они не могут блокировать сообщение или изменять то, что хранится в транскрипте или отправляется Claude. Claude Code действует на `displayContent` из их JSON-вывода и отбрасывает `systemMessage` и `continue`.1600Hooks MessageDisplay не имеют управления решениями. Они не могут блокировать сообщение или изменять то, что хранится в транскрипте или отправляется Claude. Claude Code действует на `displayContent` из их вывода JSON и отбрасывает `systemMessage` и `continue`.

1592 1601 

1593Этот пример удаляет форматирование markdown из ответов Claude для отображения простого текста. Скрипт читает каждую партию из stdin, удаляет маркеры жирного шрифта и обратные кавычки встроенного кода из `delta` и возвращает результат как `displayContent`.1602Этот пример удаляет форматирование markdown из ответов Claude для отображения простого текста. Скрипт читает каждую партию из stdin, удаляет маркеры жирного шрифта и встроенные обратные кавычки кода из `delta` и возвращает результат как `displayContent`.

1594 1603 

1595<Tabs>1604<Tabs>

1596 <Tab title="macOS/Linux">1605 <Tab title="macOS/Linux">

1597 Зарегистрируйте command hook для события в файле параметров:1606 Зарегистрируйте hook команды для события в файле параметров:

1598 1607 

1599 ```json theme={null}1608 ```json theme={null}

1600 {1609 {


1623 </Tab>1632 </Tab>

1624 1633 

1625 <Tab title="Windows (PowerShell)">1634 <Tab title="Windows (PowerShell)">

1626 Зарегистрируйте command hook, который запускает скрипт через PowerShell:1635 Зарегистрируйте hook команды, который запускает скрипт через PowerShell:

1627 1636 

1628 ```json theme={null}1637 ```json theme={null}

1629 {1638 {


1649 }1658 }

1650 ```1659 ```

1651 1660 

1652 Флаг `-NoProfile` пропускает загрузку вашего профиля PowerShell, чтобы hook запустился быстро, а `-ExecutionPolicy Bypass` позволяет PowerShell запустить локальный файл скрипта.1661 Флаг `-NoProfile` пропускает загрузку вашего профиля PowerShell, поэтому hook запускается быстро, а `-ExecutionPolicy Bypass` позволяет PowerShell запускать локальный файл скрипта.

1653 1662 

1654 Сохраните этот скрипт в `.claude/hooks/plain-display.ps1` в вашем проекте:1663 Сохраните этот скрипт в `.claude/hooks/plain-display.ps1` в вашем проекте:

1655 1664 


1666 </Tab>1675 </Tab>

1667</Tabs>1676</Tabs>

1668 1677 

1669Партии без markdown проходят без изменений. Если скрипт не удается, например потому что `jq` отсутствует, Claude Code отображает исходный текст и отмечает сбой только в [debug output](#debug-hooks), а не в сеансе.1678Партии без markdown проходят без изменений. Если скрипт не удается, например, потому что `jq` отсутствует, Claude Code отображает исходный текст и отмечает сбой только в [debug output](#debug-hooks), а не в сеансе.

1670 1679 

1671<h3 id="pretooluse">1680<h3 id="pretooluse">

1672 PreToolUse1681 PreToolUse

1673</h3>1682</h3>

1674 1683 

1675Запускается после того, как Claude создает параметры инструмента и перед обработкой вызова инструмента. Совпадает с любым названием инструмента, кроме `EndConversation`: встроенные инструменты, такие как `Bash`, `PowerShell`, `Edit`, `Write`, `Read`, `Glob`, `Grep`, `Agent`, `Workflow`, `WebFetch`, `WebSearch`, `AskUserQuestion` и `ExitPlanMode`, и любые [имена инструментов MCP](#match-mcp-tools).1684Запускается после того, как Claude создает параметры инструмента и перед обработкой вызова инструмента. Совпадает с любым именем инструмента, кроме `EndConversation`: встроенные инструменты, такие как `Bash`, `PowerShell`, `Edit`, `Write`, `Read`, `Glob`, `Grep`, `Agent`, `Workflow`, `WebFetch`, `WebSearch`, `AskUserQuestion` и `ExitPlanMode`, и любые [имена инструментов MCP](#match-mcp-tools).

1676 1685 

1677Чтобы запустить hook, когда определенный файл изменяется на диске, независимо от того, что его написало, используйте вместо этого [FileChanged](#filechanged). В отличие от PreToolUse, Claude Code запускает hooks FileChanged после изменения, и они не имеют управления решением, поэтому они не могут блокировать запись.1686Чтобы запустить hook, когда определенный файл изменяется на диске, независимо от того, что его написало, используйте [FileChanged](#filechanged) вместо соответствия инструментам редактирования файлов по названию. В отличие от PreToolUse, Claude Code запускает hooks FileChanged после изменения и они не имеют управления решениями, поэтому они не могут блокировать запись.

1678 1687 

1679<Warning>1688<Warning>

1680 PreToolUse запускается только, когда Claude вызывает инструмент. Файлы, которые вы [ссылаетесь с `@` в вашей подсказке](/docs/ru/common-workflows#reference-files-and-directories), добавляются без вызова инструмента: Claude Code вставляет их содержимое при построении подсказки, поэтому для них не срабатывает hook PreToolUse, включая hooks, соответствующие `Read`. Чтобы заблокировать определенные пути от ссылок `@`, используйте вместо этого [`Read` deny rule](/docs/ru/permissions#read-and-edit).1689 PreToolUse запускается только, когда Claude вызывает инструмент. Файлы, которые вы [ссылаетесь с `@` в вашей подсказке](/docs/ru/common-workflows#reference-files-and-directories), добавляются без вызова инструмента: Claude Code вставляет их содержимое при построении подсказки, поэтому для них не срабатывает hook PreToolUse, включая hooks, соответствующие `Read`. Чтобы заблокировать определенные пути от ссылок `@`, используйте [правило отказа `Read`](/docs/ru/permissions#read-and-edit) вместо этого.

1681 1690 

1682 PreToolUse также не срабатывает для [`EndConversation`](/docs/ru/tools-reference#endconversation-tool-behavior).1691 PreToolUse также не срабатывает для [`EndConversation`](/docs/ru/tools-reference#endconversation-tool-behavior).

1683</Warning>1692</Warning>

1684 1693 

1685Используйте [управление решением PreToolUse](#pretooluse-decision-control) для разрешения, отказа, запроса или отложения вызова инструмента.1694Используйте [управление решениями PreToolUse](#pretooluse-decision-control) для разрешения, отказа, запроса или отложения вызова инструмента.

1686 1695 

1687[Callback hook Agent SDK](/docs/ru/agent-sdk/hooks) на `PreToolUse`, который превышает свой тайм-аут, блокирует вызов инструмента, и Claude получает результат ошибки с названием тайм-аута. Явный отказ, возвращенный другим hook, все еще имеет приоритет.1696[Agent SDK callback hook](/docs/ru/agent-sdk/hooks) на `PreToolUse`, который превышает свой тайм-аут, блокирует вызов инструмента, и Claude получает результат ошибки с названием тайм-аута. Явный отказ, возвращенный другим hook, все еще имеет приоритет.

1688 1697 

1689<h4 id="pretooluse-input">1698<h4 id="pretooluse-input">

1690 Ввод PreToolUse1699 PreToolUse input

1691</h4>1700</h4>

1692 1701 

1693Помимо [общих полей ввода](#common-input-fields), hooks PreToolUse получают `tool_name`, `tool_input` и `tool_use_id`.1702Помимо [общих полей ввода](#common-input-fields), hooks PreToolUse получают `tool_name`, `tool_input` и `tool_use_id`.

1694 1703 

1695Для [инструмента MCP](#match-mcp-tools) ввод также несет `mcp_server`, объект с `name` сервера и `source`, который говорит, откуда пришло определение сервера. Значения `source` включают `plugin`, `sdk` и области конфигурации, такие как `user` и `project`. [`McpServerProvenance`](/docs/ru/agent-sdk/typescript#mcpserverprovenance) в справочнике Agent SDK перечисляет их все и говорит, как рассматривать тот, который вы не узнаете. Основывайте решения о доверии на `source`, а не на `name` или префиксе инструмента `mcp__<server>__`. Поле `mcp_server` требует Claude Code v2.1.274 или позже.1704Для [инструмента MCP](#match-mcp-tools) ввод также несет `mcp_server`, объект с `name` сервера и `source`, который говорит, откуда пришло определение сервера. Значения `source` включают `plugin`, `sdk` и области конфигурации, такие как `user` и `project`. [`McpServerProvenance`](/docs/ru/agent-sdk/typescript#mcpserverprovenance) в справочнике Agent SDK перечисляет их все и говорит, как рассматривать тот, который вы не узнаете. Основывайте решения о доверии на `source`, а не на `name` или префиксе имени инструмента `mcp__<server>__`. Поле `mcp_server` требует Claude Code v2.1.274 или позже.

1696 1705 

1697Для инструментов файлов `Write`, `Edit` и `Read`, `tool_input.file_path` всегда абсолютен:1706Для инструментов файлов `Write`, `Edit` и `Read`, `tool_input.file_path` всегда абсолютен:

1698 1707 

1699* Claude Code расширяет `~` и относительные пути перед выполнением hooks, поэтому hook, который совпадает с путями, не может быть обойден через `~` или относительное написание одного пути1708* Claude Code расширяет `~` и относительные пути перед запуском hooks, поэтому hook, который совпадает с путями, не может быть обойден через `~` или относительное написание одного пути

1700* На Windows путь прибывает с разделителями обратной косой черты, даже когда ваш hook выполняется под Git Bash, где `$PWD` выглядит как `/c/project`1709* На Windows путь прибывает с разделителями обратной косой черты, даже когда ваш hook выполняется под Git Bash, где `$PWD` выглядит как `/c/project`

1701* Сравнение, написанное с прямыми косыми чертами, такое как проверка `/src/`, никогда не совпадает с путем обратной косой черты, и вызов инструмента продолжается, как если бы hook не имел ничего для блокировки1710* Сравнение, написанное с прямыми косыми чертами, такое как проверка `/src/`, никогда не совпадает с путем обратной косой черты, и вызов инструмента продолжается, как если бы hook не имел ничего для блокировки

1702* Нормализуйте разделители перед сравнением: `FILE_PATH="${FILE_PATH//\\//}"` в Bash или `file_path.replace("\\", "/")` в Python, затем совпадайте с сегментом пути, такой как `/src/`, а не якорем с `^`, так как путь абсолютен1711* Нормализуйте разделители перед сравнением: `FILE_PATH="${FILE_PATH//\\//}"` в Bash или `file_path.replace("\\", "/")` в Python, затем совпадайте с сегментом пути, такой как `/src/`, а не якорем с `^`, так как путь абсолютен


1730| `command` | string | `"npm test"` | Команда оболочки для выполнения |1739| `command` | string | `"npm test"` | Команда оболочки для выполнения |

1731| `description` | string | `"Run test suite"` | Опциональное описание того, что делает команда |1740| `description` | string | `"Run test suite"` | Опциональное описание того, что делает команда |

1732| `timeout` | number | `120000` | Опциональный тайм-аут в миллисекундах. Значения выше [максимума](/docs/ru/tools-reference#bash-tool-behavior) уменьшаются до максимума, а не отклоняются |1741| `timeout` | number | `120000` | Опциональный тайм-аут в миллисекундах. Значения выше [максимума](/docs/ru/tools-reference#bash-tool-behavior) уменьшаются до максимума, а не отклоняются |

1733| `run_in_background` | boolean | `false` | Выполнять ли команду в фоновом режиме |1742| `run_in_background` | boolean | `false` | Выполнять ли команду в фоне |

1734 1743 

1735Когда команда Bash изменяет файлы в репозитории Git, Claude Code может записать, что изменилось. Он записывает изменения в каждом режиме разрешений, когда параметр [`bashEditDiffEnabled`](/docs/ru/settings-reference#basheditdiffenabled) включает запись; запись этого параметра говорит, какие файлы могут его установить. В противном случае он записывает их только в режиме auto и режиме `bypassPermissions`, и только когда Claude Code направляет Claude на редактирование файлов через Bash. Установите `bashEditDiffEnabled` на `false`, чтобы отключить запись. Фоновые команды и команды только для чтения не несут diff.1744Когда команда Bash изменяет файлы в репозитории Git, Claude Code может записать, что изменилось. Он записывает изменения в каждом режиме разрешений, когда параметр [`bashEditDiffEnabled`](/docs/ru/settings-reference#basheditdiffenabled) включает запись; запись этого параметра говорит, какие файлы могут его установить. В противном случае он записывает их только в режиме auto и режиме `bypassPermissions`, и только когда Claude Code направляет Claude на редактирование файлов через Bash. Установите `bashEditDiffEnabled` на `false`, чтобы отключить запись. Фоновые команды и команды только для чтения не несут diff.

1736 1745 

1737Ваш [hook PostToolUse](#posttooluse) затем получает измененные файлы в `tool_response.bashEditDiff`. Список охватывает то, что изменилось в репозитории, пока выполнялась команда. Файлы, которые Git игнорирует, и файлы в подмодулях не указаны. Требует Claude Code v2.1.269 или позже.1746Ваш [hook PostToolUse](#posttooluse) затем получает измененные файлы в `tool_response.bashEditDiff`. Список охватывает то, что изменилось в репозитории, пока выполнялась команда. Файлы, которые Git игнорирует, и файлы в подмодулях не указаны. Требует Claude Code v2.1.269 или позже.

1738 1747 

1739<Note>1748<Note>

1740 Список лучше всего усилен и находится в публичной бета-версии. Claude Code может пропустить изменение, включить файл, который другой процесс изменил одновременно, или остановиться на его пределах размера. Форма поля может измениться. Используйте список для поиска того, что нужно проверить, а не для применения политики.1749 Список — это лучшее усилие и в публичной бета-версии. Claude Code может пропустить изменение, включить файл, который другой процесс изменил одновременно, или остановиться на его пределах размера. Форма поля может измениться. Используйте список для поиска того, что нужно проверить, а не для обеспечения политики.

1741</Note>1750</Note>

1742 1751 

1743`changedFiles` и `files` перечисляют то, что команда изменила; остальные поля говорят, насколько полон и надежен этот список.1752`changedFiles` и `files` перечисляют то, что изменила команда; остальные поля говорят, насколько полон и надежен этот список.

1744 1753 

1745| Поле | Тип | Пример | Описание |1754| Поле | Тип | Пример | Описание |

1746| :- | :- | :- | :- |1755| :- | :- | :- | :- |

1747| `changedFiles` | array | `["/path/to/src/app.ts"]` | Абсолютные пути файлов, которые команда изменила, максимум 200. Присутствует, когда `files` содержит diff или `moreFiles` выше нуля |1756| `changedFiles` | array | `["/path/to/src/app.ts"]` | Абсолютные пути файлов, которые изменила команда, максимум 200. Присутствует, когда `files` содержит diff или `moreFiles` выше нуля |

1748| `files` | array | `[{"filePath": "/path/to/src/app.ts", "hunks": [...]}]` | Diffs до 5 измененных файлов для отображения. `created` или `deleted` имеет значение `true` для файла, который команда добавила или удалила |1757| `files` | array | `[{"filePath": "/path/to/src/app.ts", "hunks": [...]}]` | Diffs до 5 измененных файлов для отображения. `created` или `deleted` — это `true` для файла, который команда добавила или удалила |

1749| `moreFiles` | number | `2` | Количество измененных файлов без diff в `files` |1758| `moreFiles` | number | `2` | Количество измененных файлов без diff в `files` |

1750| `unavailable` | boolean | `true` | Установлено, когда diff неполный или не может быть взят |1759| `unavailable` | boolean | `true` | Установлено, когда diff неполный или не мог быть взят |

1751| `skipped` | boolean | `true` | Установлено для команды Git, которая перемещает рабочее дерево, такой как `git checkout` или `git stash`, поэтому Claude Code не берет diff |1760| `skipped` | boolean | `true` | Установлено для команды Git, которая перемещает рабочее дерево, такой как `git checkout` или `git stash`, поэтому Claude Code не берет diff |

1752| `shared` | boolean | `true` | Установлено, когда другой вызов инструмента Bash, такой как вызов подагента, выполнялся в том же репозитории одновременно, поэтому некоторые перечисленные изменения могут быть этой командой |1761| `shared` | boolean | `true` | Установлено, когда другой вызов инструмента Bash, такой как вызов подагента, выполнялся в том же репозитории одновременно, поэтому некоторые перечисленные изменения могут быть этой командой |

1753 1762 


1766| `command` | string | `"Get-ChildItem -Recurse"` | Команда PowerShell для выполнения |1775| `command` | string | `"Get-ChildItem -Recurse"` | Команда PowerShell для выполнения |

1767| `description` | string | `"List files recursively"` | Опциональное описание того, что делает команда |1776| `description` | string | `"List files recursively"` | Опциональное описание того, что делает команда |

1768| `timeout` | number | `120000` | Опциональный тайм-аут в миллисекундах |1777| `timeout` | number | `120000` | Опциональный тайм-аут в миллисекундах |

1769| `run_in_background` | boolean | `false` | Выполнять ли команду в фоновом режиме |1778| `run_in_background` | boolean | `false` | Выполнять ли команду в фоне |

1770 1779 

1771Совпадайте с `Bash|PowerShell` в hooks, которые проверяют команды оболочки, чтобы они охватывали оба инструмента:1780Совпадайте с `Bash|PowerShell` в hooks, которые проверяют команды оболочки, поэтому они охватывают оба инструмента:

1772 1781 

1773* На Windows, везде, где включен инструмент PowerShell, Claude рассматривает PowerShell как основную оболочку и маршрутизирует команды оболочки через него.1782* На Windows, везде, где включен инструмент PowerShell, Claude рассматривает PowerShell как основную оболочку и маршрутизирует команды оболочки через него.

1774* На Windows без Git Bash инструмент включен автоматически и Claude Code не регистрирует инструмент Bash вообще.1783* На Windows без Git Bash инструмент включен автоматически, и Claude Code не регистрирует инструмент Bash вообще.

1775* Hook, который совпадает только с `Bash`, никогда не срабатывает там.1784* Hook, который совпадает только с `Bash`, никогда не срабатывает там.

1776 1785 

1777<h5 id="write">1786<h5 id="write">


1818 1827 

1819| Поле | Тип | Пример | Описание |1828| Поле | Тип | Пример | Описание |

1820| :- | :- | :- | :- |1829| :- | :- | :- | :- |

1821| `pattern` | string | `"**/*.ts"` | Шаблон glob для совпадения файлов |1830| `pattern` | string | `"**/*.ts"` | Шаблон glob для соответствия файлам |

1822| `path` | string | `"/path/to/dir"` | Опциональная директория для поиска. По умолчанию текущая рабочая директория |1831| `path` | string | `"/path/to/dir"` | Опциональная директория для поиска. По умолчанию текущая рабочая директория |

1823 1832 

1824<h5 id="grep">1833<h5 id="grep">

1825 Grep1834 Grep

1826</h5>1835</h5>

1827 1836 

1828Ищет содержимое файлов с регулярными выражениями.1837Ищет содержимое файлов с помощью регулярных выражений.

1829 1838 

1830| Поле | Тип | Пример | Описание |1839| Поле | Тип | Пример | Описание |

1831| :- | :- | :- | :- |1840| :- | :- | :- | :- |


1834| `glob` | string | `"*.ts"` | Опциональный шаблон glob для фильтрации файлов |1843| `glob` | string | `"*.ts"` | Опциональный шаблон glob для фильтрации файлов |

1835| `output_mode` | string | `"content"` | `"content"`, `"files_with_matches"` или `"count"`. По умолчанию `"files_with_matches"` |1844| `output_mode` | string | `"content"` | `"content"`, `"files_with_matches"` или `"count"`. По умолчанию `"files_with_matches"` |

1836| `-i` | boolean | `true` | Поиск без учета регистра |1845| `-i` | boolean | `true` | Поиск без учета регистра |

1837| `multiline` | boolean | `false` | Включить многострочное совпадение |1846| `multiline` | boolean | `false` | Включить многострочное соответствие |

1838 1847 

1839<h5 id="webfetch">1848<h5 id="webfetch">

1840 WebFetch1849 WebFetch


1870| `prompt` | string | `"Find all API endpoints"` | Задача для выполнения агентом |1879| `prompt` | string | `"Find all API endpoints"` | Задача для выполнения агентом |

1871| `description` | string | `"Find API endpoints"` | Краткое описание задачи |1880| `description` | string | `"Find API endpoints"` | Краткое описание задачи |

1872| `subagent_type` | string | `"Explore"` | Тип специализированного агента для использования |1881| `subagent_type` | string | `"Explore"` | Тип специализированного агента для использования |

1873| `model` | string | `"sonnet"` | Опциональный псевдоним модели для переопределения стандартного |1882| `model` | string | `"sonnet"` | Опциональный псевдоним модели для переопределения по умолчанию |

1874 1883 

1875Когда вызов Agent переднего плана завершается, ваш [hook PostToolUse](#posttooluse) получает результат подагента и телеметрию запуска в `tool_response`. Прочитайте эти поля для проверки запуска; для сводок токенов и затрат по подагентам используйте [счетчики токенов и затрат](/docs/ru/monitoring-usage#token-counter), отфильтрованные по `query_source` `"subagent"`, так как `totalTokens` и `usage` охватывают только финальный запрос:1884Когда вызов Agent переднего плана завершается, ваш [hook PostToolUse](#posttooluse) получает результат подагента и телеметрию запуска в `tool_response`. Прочитайте эти поля для проверки запуска; для сводок токенов и затрат по подагентам используйте [счетчики токенов и затрат](/docs/ru/monitoring-usage#token-counter), отфильтрованные по `query_source` `"subagent"`, так как `totalTokens` и `usage` охватывают только финальный запрос:

1876 1885 

1877| Поле | Тип | Пример | Описание |1886| Поле | Тип | Пример | Описание |

1878| :- | :- | :- | :- |1887| :- | :- | :- | :- |

1879| `status` | string | `"completed"` | `"completed"` для подагентов переднего плана, `"async_launched"` для подагентов фонового плана. Начиная с версии 2.1.198, подагенты выполняются в фоновом режиме по умолчанию, поэтому опущенный `run_in_background` также создает `"async_launched"` |1888| `status` | string | `"completed"` | `"completed"` для подагентов переднего плана, `"async_launched"` для подагентов фона. Начиная с v2.1.198, подагенты выполняются в фоне по умолчанию, поэтому опущенный `run_in_background` также создает `"async_launched"` |

1880| `agentId` | string | `"a4d2c8f1e0b3a297"` | Идентификатор для запуска подагента |1889| `agentId` | string | `"a4d2c8f1e0b3a297"` | Идентификатор для запуска подагента |

1881| `content` | array | `[{"type": "text", "text": "Found 12 endpoints..."}]` | Финальные текстовые блоки подагента или, для подагента, чей отчет проходит через `SubagentHandback`, краткая заметка об этой передаче на их месте |1890| `content` | array | `[{"type": "text", "text": "Found 12 endpoints..."}]` | Финальные текстовые блоки подагента или, для подагента, чей отчет проходит через `SubagentHandback`, краткая заметка об этом hand-back на их месте |

1882| `resolvedModel` | string | `"claude-sonnet-4-5"` | Модель, на которой подагент начал, которая может отличаться от запрошенной модели |1891| `resolvedModel` | string | `"claude-sonnet-4-5"` | Модель, на которой подагент начал, которая может отличаться от запрошенной модели |

1883| `modelsUsed` | array | `["claude-sonnet-4-5", "claude-haiku-4-5"]` | Модели, используемые по порядку, с последовательными повторениями свернутыми; установлено только, когда модель была переключена во время запуска. Требует Claude Code v2.1.212 или позже |1892| `modelsUsed` | array | `["claude-sonnet-4-5", "claude-haiku-4-5"]` | Модели, используемые по порядку, с последовательными повторениями свернутыми; установлено только, когда модель была переключена во время запуска. Требует Claude Code v2.1.212 или позже |

1884| `totalTokens` | number | `12450` | Количество токенов из финального API запроса подагента: входные, выходные и кэшированные токены в сумме. Это не общее количество по всему запуску |1893| `totalTokens` | number | `12450` | Количество токенов из финального API запроса подагента: входные, выходные и кэшированные токены в сумме. Это не общее количество по всему запуску |

1885| `totalDurationMs` | number | `48211` | Настоящее время выполнения запуска подагента |1894| `totalDurationMs` | number | `48211` | Настоящее время запуска подагента |

1886| `totalToolUseCount` | number | `7` | Количество вызовов инструментов, которые сделал подагент |1895| `totalToolUseCount` | number | `7` | Количество вызовов инструментов, которые сделал подагент |

1887| `usage` | object | `{"input_tokens": 8320, ...}` | Разбор токенов по типам финального API запроса: `input_tokens`, `output_tokens`, `cache_creation_input_tokens`, `cache_read_input_tokens` |1896| `usage` | object | `{"input_tokens": 8320, ...}` | Разбор токенов по типам финального API запроса: `input_tokens`, `output_tokens`, `cache_creation_input_tokens`, `cache_read_input_tokens` |

1888 1897 

1889На Claude Code v2.1.271 или позже подагент, который выполняется с инструментом [`SubagentHandback`](/docs/ru/tools-reference), который Claude Code предоставляет в [режиме auto](/docs/ru/permission-modes#eliminate-prompts-with-auto-mode), доставляет свой отчет через этот инструмент, а не возвращает его как текст. Поле `content` его результата `completed` затем несет краткую заметку об этой передаче, а не сам отчет. Чтобы прочитать отчет, совпадайте с hook `PreToolUse` или `PostToolUse` на `SubagentHandback` и прочитайте `tool_input.message`.1898На Claude Code v2.1.271 или позже подагент, который выполняется с инструментом [`SubagentHandback`](/docs/ru/tools-reference), который Claude Code предоставляет в [режиме auto](/docs/ru/permission-modes#eliminate-prompts-with-auto-mode), доставляет свой отчет через этот инструмент, а не возвращает его как текст. Поле `content` его результата `completed` затем несет краткую заметку об этом hand-back, а не сам отчет. Чтобы прочитать отчет, совпадайте с hook `PreToolUse` или `PostToolUse` на `SubagentHandback` и прочитайте `tool_input.message`.

1890 1899 

1891Для подагентов фонового плана инструмент возвращается, когда задача переходит в фоновый режим, поэтому `tool_response` не несет полей использования: фоновый запуск возвращается немедленно, и задача переднего плана, которую Claude Code переводит в фоновый режим во время запуска, возвращается при этом переходе. Он имеет `status: "async_launched"`, `agentId`, `description`, `prompt`, `outputFile` и `resolvedModel`.1900Для подагентов фона инструмент возвращается, когда задача переходит в фон, поэтому `tool_response` не несет полей использования: запуск фона возвращается немедленно, и задача переднего плана, которую Claude Code переводит в фон во время запуска, возвращается при этом переходе. Он имеет `status: "async_launched"`, `agentId`, `description`, `prompt`, `outputFile` и `resolvedModel`.

1892 1901 

1893На ответе `completed`, `resolvedModel` называет модель, на которой подагент начал, которая может отличаться от значения `model` в `tool_input`, такой как когда `availableModels` или другое переопределение применяется. На ответе `async_launched`, `resolvedModel` называет модель в использовании, когда агент перешел в фоновый режим, поэтому переключение, которое произошло перед переходом в фоновый режим, отражается там. `modelsUsed` и поведение `resolvedModel` во время перехода в фоновый режим требуют Claude Code v2.1.212 или позже.1902На ответе `completed`, `resolvedModel` называет модель, на которой подагент начал, которая может отличаться от значения `model` в `tool_input`, такой как когда `availableModels` или другое переопределение применяется. На ответе `async_launched`, `resolvedModel` называет модель в использовании, когда агент перешел в фон, поэтому переключение, которое произошло перед переводом в фон, отражается там. `modelsUsed` и поведение `resolvedModel` во время перевода в фон требуют Claude Code v2.1.212 или позже.

1894 1903 

1895<a id="askuserquestion" />1904<a id="askuserquestion" />

1896 1905 


1909 ExitPlanMode1918 ExitPlanMode

1910</h5>1919</h5>

1911 1920 

1912Представляет план и просит пользователя одобрить его перед тем, как Claude покинет [режим плана](/docs/ru/permission-modes#analyze-before-you-edit-with-plan-mode). Claude записывает план в файл на диск перед вызовом инструмента, поэтому буквальный `tool_input` из модели обычно пуст. Claude Code вводит содержимое плана и путь к файлу перед передачей ввода в hooks.1921Представляет план и просит пользователя одобрить его перед тем, как Claude покидает [режим плана](/docs/ru/permission-modes#analyze-before-you-edit-with-plan-mode). Claude записывает план в файл на диск перед вызовом инструмента, поэтому буквальный `tool_input` из модели обычно пуст. Claude Code вводит содержимое плана и путь к файлу перед передачей ввода в hooks.

1913 1922 

1914| Поле | Тип | Пример | Описание |1923| Поле | Тип | Пример | Описание |

1915| :- | :- | :- | :- |1924| :- | :- | :- | :- |

1916| `plan` | string | `"## Refactor auth\n1. Extract..."` | Содержимое плана в Markdown. Введено из файла плана на диске |1925| `plan` | string | `"## Refactor auth\n1. Extract..."` | Содержимое плана в Markdown. Введено из файла плана на диске |

1917| `planFilePath` | string | `"/Users/.../plans/refactor-auth.md"` | Путь к файлу плана. Введено |1926| `planFilePath` | string | `"/Users/.../plans/refactor-auth.md"` | Путь к файлу плана. Введено |

1918| `allowedPrompts` | array | `[{"tool": "Bash", "prompt": "run tests"}]` | Устарело. Claude Code принимает поле, но игнорирует его. До версии 2.1.205 оно несло разрешения на основе подсказок, которые Claude запросил для реализации плана |1927| `allowedPrompts` | array | `[{"tool": "Bash", "prompt": "run tests"}]` | Устарело. Claude Code принимает поле, но игнорирует его. До v2.1.205 оно несло разрешения на основе подсказок, которые Claude запросил для реализации плана |

1919 1928 

1920В `PostToolUse`, `tool_response` — это объект с полями `plan` и `filePath`, содержащими одобренный план, плюс внутренние флаги статуса. Прочитайте `tool_response.plan` для содержимого плана, а не перечитывайте файл с диска.1929В `PostToolUse`, `tool_response` является объектом с полями `plan` и `filePath`, содержащими одобренный план, плюс внутренние флаги статуса. Прочитайте `tool_response.plan` для содержимого плана, а не перечитывайте файл с диска.

1921 1930 

1922<h4 id="pretooluse-decision-control">1931<h4 id="pretooluse-decision-control">

1923 Управление решением PreToolUse1932 Управление решениями PreToolUse

1924</h4>1933</h4>

1925 1934 

1926Hooks `PreToolUse` могут управлять тем, продолжается ли вызов инструмента. В отличие от других hooks, которые используют поле `decision` верхнего уровня, PreToolUse возвращает свое решение внутри объекта `hookSpecificOutput`. Это дает ему более богатый контроль: четыре результата (разрешить, отказать, спросить или отложить) плюс возможность изменить ввод инструмента перед выполнением.1935Hooks `PreToolUse` могут управлять тем, продолжается ли вызов инструмента. В отличие от других hooks, которые используют поле `decision` верхнего уровня, PreToolUse возвращает свое решение внутри объекта `hookSpecificOutput`. Это дает ему более богатый контроль: четыре результата (разрешить, отказать, спросить или отложить) плюс возможность изменить ввод инструмента перед выполнением.

1927 1936 

1928| Поле | Описание |1937| Поле | Описание |

1929| :- | :- |1938| :- | :- |

1930| `permissionDecision` | `"allow"` пропускает подсказку разрешения, кроме [действий, которые ни один режим не одобряет автоматически](/docs/ru/permission-modes#actions-no-mode-auto-approves) и для `AskUserQuestion` и `ExitPlanMode`, которым нужна [`updatedInput`, связанная с ней](#allow-with-updatedinput). `"deny"` предотвращает вызов инструмента. `"ask"` подсказывает пользователю подтвердить. `"defer"` выходит корректно, чтобы инструмент можно было возобновить позже. [Правила отказа и запроса](/docs/ru/permissions#manage-permissions) все еще оцениваются независимо от того, что возвращает hook |1939| `permissionDecision` | `"allow"` пропускает подсказку разрешения, кроме [действий, которые ни один режим не одобряет автоматически](/docs/ru/permission-modes#actions-no-mode-auto-approves) и для `AskUserQuestion` и `ExitPlanMode`, которым нужен [`updatedInput`, связанный с ним](#allow-with-updatedinput). `"deny"` предотвращает вызов инструмента. `"ask"` подсказывает пользователю подтвердить. `"defer"` выходит корректно, чтобы инструмент мог быть возобновлен позже. [Правила отказа и запроса](/docs/ru/permissions#manage-permissions) все еще оцениваются независимо от того, что возвращает hook |

1931| `permissionDecisionReason` | Для `"deny"`, показано Claude. Для `"ask"`, показано пользователю, но не Claude. Для `"allow"` и `"defer"`, написано в [debug log](#debug-hooks) только |1940| `permissionDecisionReason` | Для `"ask"`, показано пользователю, но не Claude. Для `"deny"`, показано Claude. Для `"allow"` и `"defer"`, написано в [debug log](#debug-hooks) только |

1932| `updatedInput` | Изменяет параметры ввода инструмента перед выполнением. Заменяет весь объект ввода, поэтому включите неизменные поля рядом с измененными. Claude Code оценивает правила разрешения и [автоматическую фоновую приемлемость](/docs/ru/tools-reference#background-commands) команды Bash против ввода, который возвращает ваш hook, а не ввода, который отправил Claude. Объедините с `"allow"` для автоматического одобрения или с `"ask"` для показа измененного ввода пользователю. Для `"defer"`, игнорируется |1941| `updatedInput` | Изменяет параметры ввода инструмента перед выполнением. Заменяет весь объект ввода, поэтому включите неизменные поля рядом с измененными. Claude Code оценивает правила разрешения и [автоматическое фоновое выполнение](/docs/ru/tools-reference#background-commands) команды Bash против ввода, который возвращает ваш hook, а не ввода, который отправил Claude. Объедините с `"allow"` для автоматического одобрения или `"ask"` для показа измененного ввода пользователю. Для `"defer"`, игнорируется |

1933| `additionalContext` | Строка, добавленная в контекст Claude рядом с результатом инструмента. Игнорируется, когда `permissionDecision` имеет значение `"defer"`. См. [Add context for Claude](#add-context-for-claude) |1942| `additionalContext` | Строка, добавленная в контекст Claude рядом с результатом инструмента. Игнорируется, когда `permissionDecision` имеет значение `"defer"`. См. [Add context for Claude](#add-context-for-claude) |

1934 1943 

1935Когда несколько hooks PreToolUse возвращают разные решения, приоритет — `deny` > `defer` > `ask` > `allow`.1944Когда несколько hooks PreToolUse возвращают разные решения, приоритет `deny` > `defer` > `ask` > `allow`.

1936 1945 

1937Hook, который блокирует выходом 2, маршрутизируется так же, как `"deny"`: Claude видит сообщение stderr как причину отказа.1946Hook, который блокирует выходом 2, маршрутизируется так же, как `"deny"`: Claude видит сообщение stderr как причину отказа.

1938 1947 

1939Когда hook возвращает `"ask"`, подсказка разрешения, отображаемая пользователю, включает ярлык, определяющий, откуда пришел hook: `[settings]` для hook из любого файла параметров или из frontmatter агента, `[plugin:<name>]` для hook плагина или `[skill]` для hook из frontmatter skill. Это помогает пользователям понять, какой источник конфигурации запрашивает подтверждение.1948Когда hook возвращает `"ask"`, подсказка разрешения, отображаемая пользователю, включает ярлык, определяющий, откуда пришел hook: `[settings]` для hook из любого файла параметров или frontmatter агента, `[plugin:<name>]` для hook plugin или `[skill]` для hook из frontmatter skill. Это помогает пользователям понять, какой источник конфигурации запрашивает подтверждение.

1940 1949 

1941`"ask"` hook также принуждает подсказку разрешения в [режиме auto](/docs/ru/permission-modes#eliminate-prompts-with-auto-mode): классификатор все еще может отказать вызову инструмента, но не может одобрить вызов молча. До версии 2.1.211 классификатор мог одобрить команду Bash, выполняющуюся вне [sandbox](/docs/ru/sandboxing), без показа подсказки, которую запросил hook; классификатор все еще применял свои собственные правила безопасности к этой команде, и hook `"deny"` всегда соблюдался.1950`"ask"` hook также принуждает подсказку разрешения в [режиме auto](/docs/ru/permission-modes#eliminate-prompts-with-auto-mode): классификатор все еще может отказать вызов инструмента, но не может одобрить вызов молча. До версии 2.1.211 классификатор мог одобрить команду Bash, выполняющуюся вне [sandbox](/docs/ru/sandboxing), без показа подсказки, которую запросил hook; классификатор все еще применял свои собственные правила безопасности к этой команде, и отказ hook `"deny"` всегда соблюдался.

1942 1951 

1943```json theme={null}1952```json theme={null}

1944{1953{


1956 1965 

1957<span id="allow-with-updatedinput" />1966<span id="allow-with-updatedinput" />

1958 1967 

1959В [неинтерактивном режиме](/docs/ru/headless) с флагом `-p` Claude Code предлагает `AskUserQuestion` и `ExitPlanMode` только, когда запуск имеет [хост разрешений](/docs/ru/headless#turn-off-permission-prompts-in-unattended-runs) для получения подсказки, такой как callback `canUseTool` Agent SDK. Эти инструменты требуют взаимодействия с пользователем. Возврат `permissionDecision: "allow"` вместе с `updatedInput` удовлетворяет это требование: hook читает ввод инструмента из stdin, собирает ответ через ваш собственный UI и возвращает его в `updatedInput`, чтобы инструмент выполнялся без подсказки. Возврат только `"allow"` недостаточен для этих инструментов. Для `AskUserQuestion` повторите исходный массив `questions` и добавьте объект [`answers`](#askuserquestion), отображающий текст каждого вопроса на выбранный ответ.1968В [неинтерактивном режиме](/docs/ru/headless) с флагом `-p` Claude Code предлагает `AskUserQuestion` и `ExitPlanMode` только, когда запуск имеет [хост разрешений](/docs/ru/headless#turn-off-permission-prompts-in-unattended-runs) для получения подсказки, такой как callback `canUseTool` Agent SDK. Эти инструменты требуют взаимодействия с пользователем. Возврат `permissionDecision: "allow"` вместе с `updatedInput` удовлетворяет это требование: hook читает ввод инструмента из stdin, собирает ответ через ваш собственный UI и возвращает его в `updatedInput`, поэтому инструмент выполняется без подсказки. Возврат `"allow"` один недостаточен для этих инструментов. Для `AskUserQuestion` повторите исходный массив `questions` и добавьте объект [`answers`](#askuserquestion), отображающий текст каждого вопроса на выбранный ярлык опции.

1960 1969 

1961Начиная с версии 2.1.199, инструмент MCP, сервер которого отмечает его с помощью [`_meta["anthropic/requiresUserInteraction"]`](/docs/ru/mcp#require-approval-for-a-specific-tool), более строг: hook не может пропустить его подсказку одобрения с `"allow"`, с `updatedInput` или без него, потому что Claude Code не может подтвердить, что hook собрал взаимодействие, которое требует инструмент.1970Начиная с v2.1.199, инструмент MCP, сервер которого отмечает его с помощью [`_meta["anthropic/requiresUserInteraction"]`](/docs/ru/mcp#require-approval-for-a-specific-tool), более строг: hook не может пропустить его подсказку одобрения с `"allow"`, с или без `updatedInput`, потому что Claude Code не может подтвердить, что hook собрал взаимодействие, которое нужно инструменту.

1962 1971 

1963<Note>1972<Note>

1964 PreToolUse ранее использовал поля `decision` и `reason` верхнего уровня, но они устарели для этого события. Используйте вместо этого `hookSpecificOutput.permissionDecision` и `hookSpecificOutput.permissionDecisionReason`. Устаревшие значения `"approve"` и `"block"` отображаются на `"allow"` и `"deny"` соответственно. Другие события, такие как PostToolUse и Stop, продолжают использовать `decision` и `reason` верхнего уровня как их текущий формат.1973 PreToolUse ранее использовал поля `decision` и `reason` верхнего уровня, но они устарели для этого события. Используйте `hookSpecificOutput.permissionDecision` и `hookSpecificOutput.permissionDecisionReason` вместо этого. Устаревшие значения `"approve"` и `"block"` отображаются на `"allow"` и `"deny"` соответственно. Другие события, такие как PostToolUse и Stop, продолжают использовать `decision` и `reason` верхнего уровня как их текущий формат.

1965</Note>1974</Note>

1966 1975 

1967<h4 id="defer-a-tool-call-for-later">1976<h4 id="defer-a-tool-call-for-later">

1968 Отложить вызов инструмента на потом1977 Defer a tool call for later

1969</h4>1978</h4>

1970 1979 

1971`"defer"` предназначен для интеграций, которые запускают `claude -p` как подпроцесс и читают его JSON-вывод, такие как приложение Agent SDK или пользовательский UI, построенный на основе Claude Code. Это позволяет этому вызывающему процессу приостановить Claude при вызове инструмента, собрать ввод через его собственный интерфейс и возобновить, где он остановился. Claude Code соблюдает это значение только в [неинтерактивном режиме](/docs/ru/headless) с флагом `-p`. В интерактивных сеансах он логирует предупреждение и игнорирует результат hook.1980`"defer"` предназначен для интеграций, которые запускают `claude -p` как подпроцесс и читают его вывод JSON, такие как приложение Agent SDK или пользовательский UI, построенный на основе Claude Code. Это позволяет этому вызывающему процессу приостановить Claude при вызове инструмента, собрать ввод через его собственный интерфейс и возобновить, где он остановился. Claude Code соблюдает это значение только в [неинтерактивном режиме](/docs/ru/headless) с флагом `-p`. В интерактивных сеансах он регистрирует предупреждение и игнорирует результат hook.

1972 1981 

1973Инструмент `AskUserQuestion` — типичный случай: Claude хочет что-то спросить у пользователя, но нет терминала для ответа. Запуск `-p` предлагает `AskUserQuestion` только, когда он имеет [хост разрешений](/docs/ru/headless#turn-off-permission-prompts-in-unattended-runs), такой как инструмент MCP, который вы передаете с `--permission-prompt-tool`, поэтому начните запуск с одного. Круговой путь работает так:1982Инструмент `AskUserQuestion` — типичный случай: Claude хочет что-то спросить у пользователя, но нет терминала для ответа. Запуск `-p` предлагает `AskUserQuestion` только, когда он имеет [хост разрешений](/docs/ru/headless#turn-off-permission-prompts-in-unattended-runs), такой как инструмент MCP, который вы передаете с `--permission-prompt-tool`, поэтому запустите запуск с одним. Круговой путь работает так:

1974 1983 

19751. Claude вызывает `AskUserQuestion`. Срабатывает hook `PreToolUse`.19841. Claude вызывает `AskUserQuestion`. Срабатывает hook `PreToolUse`.

19762. Hook возвращает `permissionDecision: "defer"`. Инструмент не выполняется. Процесс выходит с `stop_reason: "tool_deferred"` и отложенный вызов инструмента сохраняется в транскрипте.19852. Hook возвращает `permissionDecision: "defer"`. Инструмент не выполняется. Процесс выходит с `stop_reason: "tool_deferred"` и сохраненным вызовом инструмента в транскрипте.

19773. Вызывающий процесс читает `deferred_tool_use` из результата SDK, выводит вопрос в своем собственном UI и ждет ответа.19863. Вызывающий процесс читает `deferred_tool_use` из результата SDK, выводит вопрос в своем собственном UI и ждет ответа.

19784. Вызывающий процесс запускает `claude -p --resume <session-id>` с тем же хостом разрешений. Тот же вызов инструмента срабатывает `PreToolUse` снова.19874. Вызывающий процесс запускает `claude -p --resume <session-id>` с тем же хостом разрешений. Тот же вызов инструмента срабатывает `PreToolUse` снова.

19795. Hook возвращает `permissionDecision: "allow"` с ответом в `updatedInput`. Инструмент выполняется и Claude продолжает.19885. Hook возвращает `permissionDecision: "allow"` с ответом в `updatedInput`. Инструмент выполняется и Claude продолжает.


1994}2003}

1995```2004```

1996 2005 

1997Нет тайм-аута или лимита повторных попыток. Сеанс остается на диске до возобновления, подлежит [правилам очистки](/docs/ru/claude-directory#cleaned-up-automatically) [retention sweep](/docs/ru/settings-reference#cleanupperioddays), которая удаляет файлы сеанса через 30 дней по умолчанию. Если ответ не готов при возобновлении, hook может вернуть `"defer"` снова и процесс выходит так же. Вызывающий процесс управляет тем, когда разорвать цикл, в конечном итоге возвращая `"allow"` или `"deny"` из hook.2006Нет тайм-аута или лимита повторных попыток. Сеанс остается на диске до возобновления, подлежит [правилам очистки](/docs/ru/claude-directory#cleaned-up-automatically) сметания удержания [`cleanupPeriodDays`](/docs/ru/settings-reference#cleanupperioddays), которое удаляет файлы сеанса через 30 дней по умолчанию. Если ответ не готов при возобновлении, hook может вернуть `"defer"` снова и процесс выходит так же. Вызывающий процесс управляет тем, когда разорвать цикл, в конечном итоге возвращая `"allow"` или `"deny"` из hook.

1998 2007 

1999`"defer"` работает только, когда Claude делает один вызов инструмента в ходе. Если Claude делает несколько вызовов инструментов одновременно, `"defer"` игнорируется с предупреждением и инструмент проходит через нормальный поток разрешений. Ограничение существует, потому что возобновление может повторно запустить только один инструмент: нет способа отложить один вызов из партии без оставления других неразрешенными.2008`"defer"` работает только, когда Claude делает один вызов инструмента в ходе. Если Claude делает несколько вызовов инструментов одновременно, `"defer"` игнорируется с предупреждением и инструмент проходит через нормальный поток разрешений. Ограничение существует, потому что возобновление может повторно запустить только один инструмент: нет способа отложить один вызов из партии без оставления других неразрешенными.

2000 2009 

2001Если отложенный инструмент больше не доступен при возобновлении, процесс выходит с `stop_reason: "tool_deferred_unavailable"` и `is_error: true` перед срабатыванием hook. Это происходит, когда сервер MCP, который предоставил инструмент, не подключен для возобновленного сеанса. Полезная нагрузка `deferred_tool_use` все еще включена, чтобы вы могли определить, какой инструмент исчез.2010Если отложенный инструмент больше не доступен при возобновлении, процесс выходит с `stop_reason: "tool_deferred_unavailable"` и `is_error: true` перед срабатыванием hook. Это происходит, когда сервер MCP, который предоставил инструмент, не подключен для возобновленного сеанса. Полезная нагрузка `deferred_tool_use` все еще включена, поэтому вы можете определить, какой инструмент исчез.

2002 2011 

2003<Note>2012<Note>

2004 Чтобы возобновить отложенный сеанс в режиме плана, передайте [`--permission-prompt-tool`](/docs/ru/cli-reference#cli-flags) вместе с `--resume`, чтобы Claude Code мог представить план для одобрения. Если вы передаете определенные другие флаги запуска, возобновленный запуск не возвращается в режим плана; см. [Resume in plan mode with `-p`](/docs/ru/sessions#resume-in-plan-mode-with-p). Требует Claude Code v2.1.246 или позже.2013 Чтобы возобновить отложенный сеанс в режиме плана, передайте [`--permission-prompt-tool`](/docs/ru/cli-reference#cli-flags) вместе с `--resume`, чтобы Claude Code мог представить план для одобрения. Если вы передадите определенные другие флаги запуска, возобновленный запуск не возвращается в режим плана; см. [Resume in plan mode with `-p`](/docs/ru/sessions#resume-in-plan-mode-with-p). Требует Claude Code v2.1.246 или позже.

2005 2014 

2006 Когда вы возобновляете с `-p`, Claude Code не восстанавливает никакой другой сохраненный режим разрешений. Он запускает запуск в режиме разрешений, который новый запуск `claude -p` запустил бы, поэтому передайте `--permission-mode` или `--dangerously-skip-permissions` снова, если отложенный сеанс использовал один. Когда вы возобновляете с `claude --resume <session-id>` без `-p`, Claude Code восстанавливает сохраненный режим разрешений, с исключениями, перечисленными в [режим разрешений при возобновлении](/docs/ru/sessions#permission-mode-on-resume).2015 Когда вы возобновляете с `-p`, Claude Code не восстанавливает никакой другой сохраненный режим разрешений. Он запускает запуск в режиме разрешений, который запустил бы новый запуск `claude -p`, поэтому передайте `--permission-mode` или `--dangerously-skip-permissions` снова, если отложенный сеанс использовал один. Когда вы возобновляете с `claude --resume <session-id>` без `-p`, Claude Code восстанавливает сохраненный режим разрешений, с исключениями, перечисленными в [permission mode on resume](/docs/ru/sessions#permission-mode-on-resume).

2007</Note>2016</Note>

2008 2017 

2009<h3 id="permissionrequest">2018<h3 id="permissionrequest">

2010 PermissionRequest2019 PermissionRequest

2011</h3>2020</h3>

2012 2021 

2013Запускается, когда Claude Code собирается попросить вас разрешение на использование инструмента. В сеансах, которые не могут показать подсказку, такие как фоновые подагенты в [неинтерактивном режиме](/docs/ru/headless), Claude Code все еще запускает эти hooks, и если ни один hook не возвращает решение, он отказывает вызову инструмента.2022Запускается, когда Claude Code собирается попросить у вас разрешение на использование инструмента. В сеансах, которые не могут показать подсказку, такие как фоновые подагенты в [неинтерактивном режиме](/docs/ru/headless), Claude Code все еще запускает эти hooks, и если ни один hook не возвращает решение, он отказывает вызову инструмента.

2014Используйте [управление решением PermissionRequest](#permissionrequest-decision-control) для разрешения или отказа от имени пользователя.2023Используйте [управление решениями PermissionRequest](#permissionrequest-decision-control) для разрешения или отказа от имени пользователя.

2015 2024 

2016Используйте это событие, когда вам нужен сигнал в момент, когда Claude просит разрешение на использование инструмента. Claude Code запускает hook [Notification](#notification) с типом `permission_prompt` только после того, как подсказка ждала около шести секунд.2025Используйте это событие, когда вам нужен сигнал в момент, когда Claude просит разрешение на использование инструмента. Claude Code запускает hook [Notification](#notification) с типом `permission_prompt` только после того, как подсказка ждала около шести секунд.

2017 2026 

2018Claude Code не запускает hooks PermissionRequest для [сетевого запроса](/docs/ru/sandboxing#network-isolation) изолированной команды. Чтобы получить сигнал для этой подсказки, используйте тип уведомления `permission_prompt`.2027Claude Code не запускает hooks PermissionRequest для [сетевого запроса](/docs/ru/sandboxing#network-isolation) изолированной команды. Чтобы получить сигнал для этой подсказки, используйте тип уведомления `permission_prompt`.

2019 2028 

2020Совпадает с названием инструмента, те же значения, что и PreToolUse.2029Совпадает с именем инструмента, те же значения, что и PreToolUse.

2021 2030 

2022<h4 id="permissionrequest-input">2031<h4 id="permissionrequest-input">

2023 Ввод PermissionRequest2032 PermissionRequest input

2024</h4>2033</h4>

2025 2034 

2026Hooks PermissionRequest получают поля `tool_name` и `tool_input`, как hooks PreToolUse, но без `tool_use_id`. Для инструмента MCP они также получают объект [`mcp_server`](#pretooluse-input). Опциональный массив `permission_suggestions` содержит [обновления разрешений](#permission-update-entries), которые Claude Code предлагает для этого запроса, такие как добавление правила разрешения или изменение режима разрешений.2035Hooks PermissionRequest получают поля `tool_name` и `tool_input`, как hooks PreToolUse, но без `tool_use_id`. Для инструмента MCP они также получают объект [`mcp_server`](#pretooluse-input). Опциональный массив `permission_suggestions` содержит [обновления разрешений](#permission-update-entries), которые Claude Code предлагает для этого запроса, такие как добавление правила разрешения или изменение режима разрешений.

2027 2036 

2028Массив `permission_suggestions` не является точным списком опций, которые вы видите, потому что каждый диалог разрешений строит свои собственные опции. Некоторые диалоги, такие как диалог для редактирования файлов, вообще не читают массив и получают свои опции из самого запроса. Диалог, который читает его, все еще может скрыть опцию, чье предложение остается в массиве, например, когда [`allowManagedPermissionRulesOnly`](/docs/ru/settings-reference#allowmanagedpermissionrulesonly) скрывает опции сохранения правил. Он также может предложить опции, которые не имеют записи предложения, такие как [**Yes, and switch to auto mode**](/docs/ru/permission-modes#switch-permission-modes), которая изменяет режим разрешений напрямую, а не через обновление разрешений.2037Массив `permission_suggestions` не является точным списком опций, которые вы видите, потому что каждый диалог разрешений строит свои собственные опции. Некоторые диалоги, такие как для редактирования файлов, вообще не читают массив и получают свои опции из самого запроса. Диалог, который читает его, все еще может скрыть опцию, чье предложение остается в массиве, например, когда [`allowManagedPermissionRulesOnly`](/docs/ru/settings-reference#allowmanagedpermissionrulesonly) скрывает опции сохранения правил. Он также может предложить опции, которые не имеют записи предложения, такие как [**Yes, and switch to auto mode**](/docs/ru/permission-modes#switch-permission-modes), которая изменяет режим разрешений напрямую, а не через обновление разрешений.

2029 2038 

2030Hooks PreToolUse запускаются перед каждым вызовом инструмента, независимо от того, нужно ли ему разрешение. Hooks PermissionRequest запускаются только, когда Claude Code собирается попросить вас разрешение, или когда он в противном случае автоматически отказал бы вызову, который не может подсказать. Ни одно событие не срабатывает для [`EndConversation`](/docs/ru/tools-reference#endconversation-tool-behavior).2039Hooks PreToolUse запускаются перед каждым вызовом инструмента, независимо от того, нужно ли ему разрешение. Hooks PermissionRequest запускаются только, когда Claude Code собирается попросить у вас разрешение, или когда он в противном случае автоматически отказал бы вызову, который не может подсказать. Ни одно событие не срабатывает для [`EndConversation`](/docs/ru/tools-reference#endconversation-tool-behavior).

2031 2040 

2032```json theme={null}2041```json theme={null}

2033{2042{


2053```2062```

2054 2063 

2055<h4 id="permissionrequest-decision-control">2064<h4 id="permissionrequest-decision-control">

2056 Управление решением PermissionRequest2065 Управление решениями PermissionRequest

2057</h4>2066</h4>

2058 2067 

2059Hooks `PermissionRequest` могут разрешить или отказать запросы разрешений. Помимо [полей JSON-вывода](#json-output), доступных всем hooks, ваш скрипт hook может вернуть объект `decision` с этими полями, специфичными для события:2068Hooks `PermissionRequest` могут разрешить или отказать запросы разрешений. Помимо [полей вывода JSON](#json-output), доступных всем hooks, ваш скрипт hook может вернуть объект `decision` с этими полями, специфичными для события:

2060 2069 

2061| Поле | Описание |2070| Поле | Описание |

2062| :- | :- |2071| :- | :- |

2063| `behavior` | `"allow"` предоставляет разрешение, `"deny"` отказывает его. [Правила отказа и запроса](/docs/ru/permissions#manage-permissions) все еще оцениваются, поэтому hook, возвращающий `"allow"`, не переопределяет соответствующее правило отказа |2072| `behavior` | `"allow"` предоставляет разрешение, `"deny"` отказывает. [Правила отказа и запроса](/docs/ru/permissions#manage-permissions) все еще оцениваются, поэтому hook, возвращающий `"allow"`, не переопределяет соответствующее правило отказа |

2064| `updatedInput` | Для `"allow"` только: изменяет параметры ввода инструмента перед выполнением. Заменяет весь объект ввода, поэтому включите неизменные поля рядом с измененными. Измененный ввод повторно оценивается против правил отказа и запроса |2073| `updatedInput` | Для `"allow"` только: изменяет параметры ввода инструмента перед выполнением. Заменяет весь объект ввода, поэтому включите неизмененные поля рядом с измененными. Измененный ввод повторно оценивается против правил отказа и запроса |

2065| `updatedPermissions` | Для `"allow"` только: массив [записей обновления разрешений](#permission-update-entries) для применения, такие как добавление правила разрешения или изменение режима разрешений сеанса |2074| `updatedPermissions` | Для `"allow"` только: массив [записей обновления разрешений](#permission-update-entries) для применения, такие как добавление правила разрешения или изменение режима разрешений сеанса |

2066| `message` | Для `"deny"` только: говорит Claude, почему разрешение было отказано |2075| `message` | Для `"deny"` только: говорит Claude, почему разрешение было отказано |

2067| `interrupt` | Для `"deny"` только: если `true`, останавливает Claude |2076| `interrupt` | Для `"deny"` только: если `true`, останавливает Claude |

2068 2077 

2069Hook, который выходит 2 без объекта `decision`, оставляет поток разрешений неизменным, и его stderr отбрасывается. Только объект `decision` может предоставить или отказать в запросе.2078Hook, который выходит 2 без объекта `decision`, оставляет поток разрешений неизменным, и его stderr отбрасывается. Только объект `decision` может предоставить или отказать запрос.

2070 2079 

2071```json theme={null}2080```json theme={null}

2072{2081{


2083```2092```

2084 2093 

2085<h4 id="permission-update-entries">2094<h4 id="permission-update-entries">

2086 Записи обновления разрешений2095 Permission update entries

2087</h4>2096</h4>

2088 2097 

2089Поле вывода `updatedPermissions` и поле ввода [`permission_suggestions`](#permissionrequest-input) оба используют один и тот же массив объектов записей. Каждая запись имеет `type`, который определяет ее другие поля, и `destination`, который управляет тем, где записывается изменение.2098Поле вывода `updatedPermissions` и поле ввода [`permission_suggestions`](#permissionrequest-input) оба используют один и тот же массив объектов записей. Каждая запись имеет `type`, который определяет ее другие поля, и `destination`, который управляет тем, где записывается изменение.

2090 2099 

2091| `type` | Поля | Эффект |2100| `type` | Поля | Эффект |

2092| :- | :- | :- |2101| :- | :- | :- |

2093| `addRules` | `rules`, `behavior`, `destination` | Добавляет правила разрешений. `rules` — это массив объектов `{toolName, ruleContent?}`. Опустите `ruleContent` для совпадения со всем инструментом. `behavior` — это `"allow"`, `"deny"` или `"ask"` |2102| `addRules` | `rules`, `behavior`, `destination` | Добавляет правила разрешения. `rules` — это массив объектов `{toolName, ruleContent?}`. Опустите `ruleContent` для совпадения со всем инструментом. `behavior` — это `"allow"`, `"deny"` или `"ask"` |

2094| `replaceRules` | `rules`, `behavior`, `destination` | Заменяет все правила данного `behavior` в `destination` предоставленными `rules` |2103| `replaceRules` | `rules`, `behavior`, `destination` | Заменяет все правила данного `behavior` в `destination` предоставленными `rules` |

2095| `removeRules` | `rules`, `behavior`, `destination` | Удаляет соответствующие правила данного `behavior` |2104| `removeRules` | `rules`, `behavior`, `destination` | Удаляет соответствующие правила данного `behavior` |

2096| `setMode` | `mode`, `destination` | Изменяет режим разрешений. Допустимые режимы — `default`, `auto`, `acceptEdits`, `dontAsk`, `bypassPermissions`, `plan` и `manual` как псевдоним для `default`. Псевдоним `manual` требует Claude Code v2.1.200 или позже |2105| `setMode` | `mode`, `destination` | Изменяет режим разрешений. Допустимые режимы — `default`, `auto`, `acceptEdits`, `dontAsk`, `bypassPermissions`, `plan` и `manual` как псевдоним для `default`. Псевдоним `manual` требует Claude Code v2.1.200 или позже |


2098| `removeDirectories` | `directories`, `destination` | Удаляет рабочие директории |2107| `removeDirectories` | `directories`, `destination` | Удаляет рабочие директории |

2099 2108 

2100<Note>2109<Note>

2101 `setMode` с `bypassPermissions` вступает в силу только, если вы запустили сеанс с режимом обхода, уже доступным: `--dangerously-skip-permissions`, `--permission-mode bypassPermissions`, `--allow-dangerously-skip-permissions` или `permissions.defaultMode: "bypassPermissions"` в [пользовательских, `--settings` или управляемых параметрах](/docs/ru/settings-reference#permissions-defaultmode). В противном случае обновление — это no-op. Обновление также является no-op, когда [`permissions.disableBypassPermissionsMode`](/docs/ru/permissions#managed-settings) отключает режим или когда сеанс запускается в [restricted mode](/docs/ru/cli-reference#cli-flags).2110 `setMode` с `bypassPermissions` вступает в силу только, если вы запустили сеанс с режимом обхода, уже доступным: `--dangerously-skip-permissions`, `--permission-mode bypassPermissions`, `--allow-dangerously-skip-permissions` или `permissions.defaultMode: "bypassPermissions"` в [user, `--settings` или managed settings](/docs/ru/settings-reference#permissions-defaultmode). В противном случае обновление — это no-op. Обновление также является no-op, когда [`permissions.disableBypassPermissionsMode`](/docs/ru/permissions#managed-settings) отключает режим или когда сеанс запускается в [restricted mode](/docs/ru/cli-reference#cli-flags).

2102 2111 

2103 `bypassPermissions` никогда не сохраняется как `defaultMode` независимо от `destination`.2112 `bypassPermissions` никогда не сохраняется как `defaultMode` независимо от `destination`.

2104</Note>2113</Note>


2120 2129 

2121Запускается сразу после успешного завершения инструмента.2130Запускается сразу после успешного завершения инструмента.

2122 2131 

2123Совпадает с названием инструмента, те же значения, что и PreToolUse.2132Совпадает с именем инструмента, те же значения, что и PreToolUse.

2124 2133 

2125Совпадайте более широко, когда название инструмента не является правильным фильтром:2134Совпадайте более широко, когда имя инструмента не является правильным фильтром:

2126 2135 

2127* Чтобы запустить hook после завершения любого инструмента успешно, опустите `matcher` или установите его на `"*"`. Ваш hook может затем обнаружить, что изменилось сам, например, запустив `git status --porcelain`, который также перечисляет неотслеживаемые файлы, которые `git diff` пропускает. Для вызовов инструментов, которые не удаются, добавьте тот же hook под [PostToolUseFailure](#posttoolusefailure).2136* Чтобы запустить hook после завершения любого инструмента успешно, опустите `matcher` или установите его на `"*"`. Ваш hook затем может обнаружить, что изменилось сам, например, запустив `git status --porcelain`, который также перечисляет неотслеживаемые файлы, которые `git diff` пропускает. Для вызовов инструментов, которые не удаются, добавьте тот же hook под [PostToolUseFailure](#posttoolusefailure).

2128* Чтобы запустить hook, когда определенный файл изменяется на диске, независимо от того, что его написало, используйте [FileChanged](#filechanged). Claude Code не запускает hook `PostToolUse`, соответствующий `Edit|Write`, когда команда `Bash` или процесс вне Claude Code переписывает тот же файл.2137* Чтобы запустить hook, когда определенный файл изменяется на диске, независимо от того, что его написало, используйте [FileChanged](#filechanged). Claude Code не запускает hook `PostToolUse`, соответствующий `Edit|Write`, когда команда `Bash` или процесс вне Claude Code переписывает тот же файл.

2129 2138 

2130<h4 id="posttooluse-input">2139<h4 id="posttooluse-input">

2131 Ввод PostToolUse2140 PostToolUse input

2132</h4>2141</h4>

2133 2142 

2134Hooks `PostToolUse` срабатывают после того, как инструмент уже выполнился успешно. Ввод включает как `tool_input`, аргументы, отправленные инструменту, так и `tool_response`, результат, который он вернул. Точная схема для обоих зависит от инструмента. Пути `tool_input` инструментов файлов прибывают в том же формате, что и для [PreToolUse](#pretooluse-input): всегда абсолютные, с собственными разделителями платформы, поэтому обратные косые черты на Windows. Для инструмента MCP ввод также несет объект [`mcp_server`](#pretooluse-input).2143Hooks `PostToolUse` срабатывают после того, как инструмент уже выполнился успешно. Ввод включает как `tool_input`, аргументы, отправленные инструменту, так и `tool_response`, результат, который он вернул. Точная схема для обоих зависит от инструмента. Пути инструментов файлов `tool_input` прибывают в том же формате, что и для [PreToolUse](#pretooluse-input): всегда абсолютные, с собственными разделителями платформы, поэтому обратные косые черты на Windows. Для инструмента MCP ввод также несет объект [`mcp_server`](#pretooluse-input).

2135 2144 

2136```json theme={null}2145```json theme={null}

2137{2146{


2159| `duration_ms` | Опциональный. Время выполнения инструмента в миллисекундах. Исключает время, потраченное на подсказки разрешений и hooks PreToolUse |2168| `duration_ms` | Опциональный. Время выполнения инструмента в миллисекундах. Исключает время, потраченное на подсказки разрешений и hooks PreToolUse |

2160 2169 

2161<h4 id="posttooluse-decision-control">2170<h4 id="posttooluse-decision-control">

2162 Управление решением PostToolUse2171 Управление решениями PostToolUse

2163</h4>2172</h4>

2164 2173 

2165Hooks `PostToolUse` могут предоставить обратную связь Claude после выполнения инструмента. Помимо [полей JSON-вывода](#json-output), доступных всем hooks, ваш скрипт hook может вернуть эти поля, специфичные для события:2174Hooks `PostToolUse` могут предоставить обратную связь Claude после выполнения инструмента. Помимо [полей вывода JSON](#json-output), доступных всем hooks, ваш скрипт hook может вернуть эти поля, специфичные для события:

2166 2175 

2167| Поле | Описание |2176| Поле | Описание |

2168| :- | :- |2177| :- | :- |

2169| `decision` | `"block"` добавляет `reason` рядом с результатом инструмента. Claude все еще видит исходный вывод; чтобы заменить его, используйте `updatedToolOutput` |2178| `decision` | `"block"` добавляет `reason` рядом с результатом инструмента. Claude все еще видит исходный вывод; чтобы заменить его, используйте `updatedToolOutput` |

2170| `reason` | Объяснение, показанное Claude, когда `decision` имеет значение `"block"` |2179| `reason` | Объяснение, показанное Claude, когда `decision` — это `"block"` |

2171| `additionalContext` | Строка, добавленная в контекст Claude рядом с результатом инструмента. См. [Add context for Claude](#add-context-for-claude) |2180| `additionalContext` | Строка, добавленная в контекст Claude рядом с результатом инструмента. См. [Add context for Claude](#add-context-for-claude) |

2172| `classifierContext` | Краткая заметка об этом результате вызова для [классификатора режима auto](/docs/ru/permission-modes#eliminate-prompts-with-auto-mode), а не для Claude. См. [Annotate a result for the auto mode classifier](#annotate-a-result-for-the-auto-mode-classifier). Требует Claude Code v2.1.236 или позже |2181| `classifierContext` | Краткая заметка об этом результате вызова для [классификатора режима auto](/docs/ru/permission-modes#eliminate-prompts-with-auto-mode), а не для Claude. См. [Annotate a result for the auto mode classifier](#annotate-a-result-for-the-auto-mode-classifier). Требует Claude Code v2.1.236 или позже |

2173| `updatedToolOutput` | Заменяет вывод инструмента предоставленным значением перед отправкой Claude. Значение должно совпадать с формой вывода инструмента |2182| `updatedToolOutput` | Заменяет вывод инструмента предоставленным значением перед отправкой Claude. Значение должно совпадать с формой вывода инструмента |


2191```2200```

2192 2201 

2193<Warning>2202<Warning>

2194 `updatedToolOutput` только изменяет то, что видит Claude. Инструмент уже выполнился к моменту срабатывания hook, поэтому любые написанные файлы, выполненные команды или отправленные сетевые запросы уже вступили в силу. Телеметрия, такая как spans инструментов OpenTelemetry и события аналитики, также захватывает исходный вывод перед выполнением hook. Чтобы предотвратить или изменить вызов инструмента перед его выполнением, используйте вместо этого hook [PreToolUse](#pretooluse).2203 `updatedToolOutput` только изменяет то, что видит Claude. Инструмент уже выполнился к моменту срабатывания hook, поэтому любые написанные файлы, выполненные команды или отправленные сетевые запросы уже вступили в силу. Телеметрия, такая как spans инструментов OpenTelemetry и события аналитики, также захватывает исходный вывод перед выполнением hook. Чтобы предотвратить или изменить вызов инструмента перед его выполнением, используйте hook [PreToolUse](#pretooluse) вместо этого.

2195 2204 

2196 Значение замены должно совпадать с формой вывода инструмента. Встроенные инструменты возвращают структурированные объекты, а не простые строки. Например, `Bash` возвращает объект с полями `stdout`, `stderr`, `interrupted` и `isImage`. Для встроенных инструментов значение, которое не совпадает со схемой вывода инструмента, игнорируется и используется исходный вывод. Вывод инструмента MCP передается без проверки схемы. Удаление деталей ошибок, которые нужны Claude, может привести к тому, что он продолжит с ложным предположением.2205 Значение замены должно совпадать с формой вывода инструмента. Встроенные инструменты возвращают структурированные объекты, а не простые строки. Например, `Bash` возвращает объект с полями `stdout`, `stderr`, `interrupted` и `isImage`. Для встроенных инструментов значение, которое не совпадает со схемой вывода инструмента, игнорируется и используется исходный вывод. Вывод инструмента MCP передается без проверки схемы. Удаление деталей ошибок, которые нужны Claude, может привести к тому, что он продолжит с ложным предположением.

2197</Warning>2206</Warning>

2198 2207 

2199<h4 id="annotate-a-result-for-the-auto-mode-classifier">2208<h4 id="annotate-a-result-for-the-auto-mode-classifier">

2200 Аннотирование результата для классификатора режима auto2209 Annotate a result for the auto mode classifier

2201</h4>2210</h4>

2202 2211 

2203Верните `classifierContext` для отправки краткой заметки об этом результате вызова инструмента [классификатору режима auto](/docs/ru/permission-modes#eliminate-prompts-with-auto-mode), а не Claude. Классификатор [никогда не получает сами результаты инструментов](/docs/ru/permission-modes#how-the-classifier-evaluates-actions), поэтому это поле — поддерживаемый способ рассказать ему что-то о том, что вернул вызов, перед тем как он проверит более поздние действия. Поле требует Claude Code v2.1.236 или позже.2212Верните `classifierContext` для отправки краткой заметки об результате вызова инструмента [классификатору режима auto](/docs/ru/permission-modes#eliminate-prompts-with-auto-mode), а не Claude. Классификатор [никогда не получает сами результаты инструментов](/docs/ru/permission-modes#how-the-classifier-evaluates-actions), поэтому это поле — поддерживаемый способ рассказать ему что-то о том, что вернул вызов, перед тем, как он проверит более поздние действия. Поле требует Claude Code v2.1.236 или позже.

2204 2213 

2205Пример ниже говорит классификатору, откуда пришел вывод запроса:2214Пример ниже говорит классификатору, откуда пришел вывод запроса:

2206 2215 


2215 2224 

2216Сколько веса классификатор дает заметке, зависит от того, где вы настроили hook:2225Сколько веса классификатор дает заметке, зависит от того, где вы настроили hook:

2217 2226 

2218* **Hooks, настроенные в Claude Code**: для hooks из файлов параметров, плагинов, skills и frontmatter агента классификатор рассматривает заметку как непроверенный, предоставленный приложением контекст. Заметка никогда не устанавливает намерение пользователя, и если она утверждает, что вы одобрили или запросили что-то, классификатор проверяет это утверждение против ваших собственных сообщений в разговоре2227* **Hooks, настроенные в Claude Code**: для hooks из файлов параметров, plugins, skills и frontmatter агента классификатор рассматривает заметку как непроверенный, предоставленный приложением контекст. Заметка никогда не устанавливает намерение пользователя, и если она утверждает, что вы одобрили или запросили что-то, классификатор проверяет это утверждение против ваших собственных сообщений в разговоре

2219* **In-process callbacks Agent SDK**: когда приложение, встраивающее Claude Code, регистрирует hook как [callback TypeScript SDK](/docs/ru/agent-sdk/hooks) и возвращает заметку во время живого сеанса, классификатор может взвесить утверждение пользователя, переданное в заметке, как намерение пользователя. Такое утверждение может удовлетворить требование согласия, которое классификатор принял бы из сообщения, которое вы отправляете, но оно никогда не снимает блокировку, которую ваше собственное сообщение не могло бы снять. После возобновления сеанса Claude Code рассматривает восстановленные заметки как непроверенный контекст. Когда hooks из обеих групп аннотируют один и тот же вызов, классификатор рассматривает объединенную заметку как непроверенный контекст2228* **In-process callbacks Agent SDK**: когда приложение, встраивающее Claude Code, регистрирует hook как [callback TypeScript SDK](/docs/ru/agent-sdk/hooks) и возвращает заметку во время живого сеанса, классификатор может взвесить утверждение пользователя, переданное в заметке, как намерение пользователя. Такое утверждение может удовлетворить требование согласия, которое классификатор принял бы из сообщения, которое вы отправляете, но оно никогда не снимает блокировку, которую ваше собственное сообщение не могло бы снять. После возобновления сеанса Claude Code рассматривает восстановленные заметки как непроверенный контекст. Когда hooks из обеих групп аннотируют один вызов, классификатор рассматривает объединенную заметку как непроверенный контекст

2220 2229 

2221Claude Code применяет эти ограничения при доставке заметки:2230Claude Code применяет эти ограничения при доставке заметки:

2222 2231 

2223* **Длина**: Claude Code ограничивает заметки для одного вызова инструмента 2000 символами и усекает остальное. Ограничение делится между каждым hook, который отвечает на этот вызов2232* **Длина**: Claude Code ограничивает заметки для одного вызова инструмента 2000 символами и усекает остальное. Ограничение делится между каждым hook, который отвечает на этот вызов

2224* **Только синхронные ответы**: Claude Code игнорирует поле в ответе hook, который [выполняется в фоновом режиме](#run-hooks-in-the-background), потому что этот ответ прибывает после того, как Claude Code записывает результат инструмента2233* **Только синхронные ответы**: Claude Code игнорирует поле в ответе hook, который [выполняется в фоне](#run-hooks-in-the-background), потому что этот ответ прибывает после того, как Claude Code записывает результат инструмента

2225* **Вызовы, которые классификатор не записывает**: транскрипт классификатора опускает поиски только для чтения, такие как чтение файлов и поиски. Claude Code отбрасывает заметку, прикрепленную к одному из этих вызовов2234* **Вызовы, которые классификатор не записывает**: транскрипт классификатора опускает поиски только для чтения, такие как чтение файлов и поиски. Claude Code отбрасывает заметку, прикрепленную к одному из этих вызовов

2226* **Взаимодействие с переписыванием**: когда заметка описывает вывод, который вы заменяете с помощью `updatedToolOutput`, верните оба поля в одном ответе hook. Claude Code отбрасывает заметку, если это переписывание отклонено или переписывание другого hook заменяет его. Claude Code доставляет заметку, которую вы возвращаете без переписывания, даже когда другой hook переписывает вывод2235* **Взаимодействие с переписыванием**: когда заметка описывает вывод, который вы заменяете с помощью `updatedToolOutput`, верните оба поля в одном ответе hook. Claude Code отбрасывает заметку, если это переписывание отклонено или переписывание другого hook заменяет его. Claude Code доставляет заметку, которую вы возвращаете без переписывания, даже когда другой hook переписывает вывод

2227 2236 

2228<Warning>2237<Warning>

2229 Классификатор читает содержимое, которое вы помещаете в `classifierContext`, как информацию от приложения, размещающего сеанс, поэтому не копируйте в него ненадежный вывод инструмента или текст третьих сторон. Держите заметку к краткому утверждению об этом одном вызове, такому как факт о его происхождении или утверждение пользователя о нем; не используйте поле для доставки несвязанных сообщений или потока событий.2238 Классификатор читает содержимое, которое вы помещаете в `classifierContext`, как информацию от приложения, размещающего сеанс, поэтому не копируйте в него ненадежный вывод инструмента или текст третьих сторон. Держите заметку к краткому утверждению об этом одном вызове, такому как факт о его происхождении или утверждение пользователя об этом; не используйте поле для доставки несвязанных сообщений или потока событий.

2230</Warning>2239</Warning>

2231 2240 

2232<h3 id="posttoolusefailure">2241<h3 id="posttoolusefailure">


2235 2244 

2236Запускается, когда инструмент, который начал выполняться, не удается: инструмент выбросил ошибку или инструмент MCP вернул результат ошибки. Используйте это для логирования сбоев, отправки оповещений или предоставления исправляющей обратной связи Claude.2245Запускается, когда инструмент, который начал выполняться, не удается: инструмент выбросил ошибку или инструмент MCP вернул результат ошибки. Используйте это для логирования сбоев, отправки оповещений или предоставления исправляющей обратной связи Claude.

2237 2246 

2238Совпадает с названием инструмента, те же значения, что и PreToolUse.2247Совпадает с именем инструмента, те же значения, что и PreToolUse.

2239 2248 

2240<Note>2249<Note>

2241 Это событие не срабатывает для вызовов инструментов, отклоненных перед выполнением: неизвестное название инструмента, ввод, который не проходит проверку схемы или инструмента, или отказ в разрешении. Отказы в проверке возвращаются как результаты `tool_use_error` и происходят перед выполнением hooks, поэтому они не срабатывают ни `PreToolUse`, ни `PostToolUseFailure`. Отказы в разрешении срабатывают `PreToolUse`, но не это событие; см. [PermissionDenied](#permissiondenied).2250 Это событие не срабатывает для вызовов инструментов, отклоненных перед выполнением: неизвестное название инструмента, ввод, который не проходит проверку схемы или инструмента, или отказ в разрешении. Отказы в проверке возвращаются как результаты `tool_use_error` и происходят перед выполнением hooks, поэтому они не срабатывают ни `PreToolUse`, ни этим событием. Отказы в разрешении срабатывают `PreToolUse`, но не это событие; см. [PermissionDenied](#permissiondenied).

2242</Note>2251</Note>

2243 2252 

2244<h4 id="posttoolusefailure-input">2253<h4 id="posttoolusefailure-input">

2245 Ввод PostToolUseFailure2254 PostToolUseFailure input

2246</h4>2255</h4>

2247 2256 

2248Hooks PostToolUseFailure получают те же поля `tool_name` и `tool_input`, что и PostToolUse, вместе с информацией об ошибке как полями верхнего уровня. Для инструмента MCP они также получают объект [`mcp_server`](#pretooluse-input). Например, неудачная команда `npm test` может доставить:2257Hooks PostToolUseFailure получают те же поля `tool_name` и `tool_input`, что и PostToolUse, вместе с информацией об ошибке как полями верхнего уровня. Для инструмента MCP они также получают объект [`mcp_server`](#pretooluse-input). Например, неудачная команда `npm test` может доставить:


2269| Поле | Описание |2278| Поле | Описание |

2270| :- | :- |2279| :- | :- |

2271| `error` | Строка, описывающая, что пошло не так. Формат зависит от инструмента, который не удался |2280| `error` | Строка, описывающая, что пошло не так. Формат зависит от инструмента, который не удался |

2272| `is_interrupt` | Опциональное логическое значение. True, когда сбой достиг Claude Code как прерывание, а не как ошибка, которую сообщил инструмент. Отмена выполняющегося инструмента не срабатывает этот hook; результат инструмента несет сообщение прерывания вместо этого |2281| `is_interrupt` | Опциональное логическое значение. True, когда сбой достиг Claude Code как прерывание, а не как ошибка, которую сообщил инструмент. Отмена выполняющегося инструмента не срабатывает этим hook; результат инструмента несет сообщение прерывания вместо этого |

2273| `duration_ms` | Опциональный. Время выполнения инструмента в миллисекундах. Исключает время, потраченное на подсказки разрешений и hooks PreToolUse |2282| `duration_ms` | Опциональный. Время выполнения инструмента в миллисекундах. Исключает время, потраченное на подсказки разрешений и hooks PreToolUse |

2274 2283 

2275Строка `error` обычно является тем же текстом, который Claude получает как результат неудачного инструмента. Его формат варьируется в зависимости от инструмента и сбоя. Ключ вашего hook на `tool_name`, `is_interrupt` и первой строке `Exit code N`; рассматривайте остальную строку как текст отображения, а не стабильный формат.2284Строка `error` обычно является тем же текстом, который Claude получает как результат неудачного инструмента. Его формат варьируется по инструменту и сбою. Ключ вашего hook на `tool_name`, `is_interrupt` и первой строке `Exit code N`; рассматривайте остальную строку как текст отображения, а не стабильный формат.

2276 2285 

2277* Для Bash и PowerShell команда, которая выполнилась и вышла, создает первую строку `Exit code N`, затем любой вывод, который команда создала, как один блок с stdout и stderr перемешанными2286* Для Bash и PowerShell команда, которая выполнилась и вышла, создает первую строку `Exit code N`, затем любой вывод, который команда создала, как один блок с stdout и stderr перемешанными

2278* Полезная нагрузка также может нести сообщение об ошибке без строки кода выхода, когда Claude Code не мог запустить сам процесс оболочки2287* Полезная нагрузка также может нести сообщение об ошибке без строки кода выхода, когда Claude Code не мог запустить сам процесс оболочки

2279* Claude Code усекает длинные строки в середине вокруг маркера `... [N characters truncated] ...` и может вставлять свои собственные строки, такие как `Command timed out after 2m 0s`2288* Claude Code усекает длинные строки в середине вокруг маркера `... [N characters truncated] ...` и может вставлять свои собственные строки, такие как `Command timed out after 2m 0s`

2280 2289 

2281<h4 id="posttoolusefailure-decision-control">2290<h4 id="posttoolusefailure-decision-control">

2282 Управление решением PostToolUseFailure2291 Управление решениями PostToolUseFailure

2283</h4>2292</h4>

2284 2293 

2285Hooks `PostToolUseFailure` могут предоставить контекст Claude после сбоя инструмента. Помимо [полей JSON-вывода](#json-output), доступных всем hooks, ваш скрипт hook может вернуть эти поля, специфичные для события:2294Hooks `PostToolUseFailure` могут предоставить контекст Claude после сбоя инструмента. Помимо [полей вывода JSON](#json-output), доступных всем hooks, ваш скрипт hook может вернуть эти поля, специфичные для события:

2286 2295 

2287| Поле | Описание |2296| Поле | Описание |

2288| :- | :- |2297| :- | :- |


2301 PostToolBatch2310 PostToolBatch

2302</h3>2311</h3>

2303 2312 

2304Запускается один раз после того, как каждый вызов инструмента в партии разрешится, перед тем как Claude Code отправит следующий запрос модели. `PostToolUse` срабатывает один раз для каждого инструмента, что означает, что он срабатывает одновременно, когда Claude делает параллельные вызовы инструментов. `PostToolBatch` срабатывает ровно один раз со всей партией, поэтому это правильное место для внедрения контекста, который зависит от набора инструментов, которые выполнились, а не от любого одного инструмента. Нет matcher для этого события.2313Запускается один раз после того, как каждый вызов инструмента в партии разрешится, перед отправкой Claude Code следующего запроса модели. `PostToolUse` срабатывает один раз для каждого инструмента, что означает, что он срабатывает одновременно, когда Claude делает параллельные вызовы инструментов. `PostToolBatch` срабатывает ровно один раз со всей партией, поэтому это правильное место для внедрения контекста, который зависит от набора инструментов, которые выполнились, а не от любого одного инструмента. Нет matcher для этого события.

2305 2314 

2306<h4 id="posttoolbatch-input">2315<h4 id="posttoolbatch-input">

2307 Ввод PostToolBatch2316 PostToolBatch input

2308</h4>2317</h4>

2309 2318 

2310Помимо [общих полей ввода](#common-input-fields), hooks PostToolBatch получают `tool_calls`, массив, описывающий каждый вызов инструмента в партии:2319Помимо [общих полей ввода](#common-input-fields), hooks PostToolBatch получают `tool_calls`, массив, описывающий каждый вызов инструмента в партии:


2340</Note>2349</Note>

2341 2350 

2342<h4 id="posttoolbatch-decision-control">2351<h4 id="posttoolbatch-decision-control">

2343 Управление решением PostToolBatch2352 Управление решениями PostToolBatch

2344</h4>2353</h4>

2345 2354 

2346Hooks `PostToolBatch` могут внедрить контекст для Claude. Помимо [полей JSON-вывода](#json-output), доступных всем hooks, ваш скрипт hook может вернуть эти поля, специфичные для события:2355Hooks `PostToolBatch` могут внедрить контекст для Claude. Помимо [полей вывода JSON](#json-output), доступных всем hooks, ваш скрипт hook может вернуть эти поля, специфичные для события:

2347 2356 

2348| Поле | Описание |2357| Поле | Описание |

2349| :- | :- |2358| :- | :- |


2358}2367}

2359```2368```

2360 2369 

2361Возврат `decision: "block"` или `continue: false` останавливает агентский цикл перед следующим вызовом модели. Сообщение блокировки поступает из JSON `reason` или `stopReason` или из stderr при выходе 2. Вы видите его как предупреждение в транскрипте, и оно остается в разговоре, поэтому Claude видит его при продолжении разговора.2370Возврат `decision: "block"` или `continue: false` останавливает агентский цикл перед следующим вызовом модели. Сообщение блокировки поступает из JSON `reason` или `stopReason`, или из stderr при выходе 2. Вы видите его как предупреждение в транскрипте, и оно остается в разговоре, поэтому Claude видит его, когда разговор продолжается.

2362 2371 

2363<h3 id="permissiondenied">2372<h3 id="permissiondenied">

2364 PermissionDenied2373 PermissionDenied

2365</h3>2374</h3>

2366 2375 

2367Запускается, когда [режим auto](/docs/ru/permission-modes#eliminate-prompts-with-auto-mode) отказывает вызову инструмента, включая когда он отказывает без вердикта классификатора, потому что [проверка безопасности, отдельная от режима auto, отказала в запросе классификатора](/docs/ru/errors#auto-mode-cannot-determine-the-safety-of-an-action) или его ответ не был проанализирован. Этот hook срабатывает только в режиме auto: он не запускается, когда вы вручную отказываете диалогу разрешений, когда hook `PreToolUse` блокирует вызов или когда совпадает правило `deny`. Используйте его для логирования отказов, настройки конфигурации или сообщения модели, что она может повторить попытку вызова инструмента.2376Запускается, когда [режим auto](/docs/ru/permission-modes#eliminate-prompts-with-auto-mode) отказывает вызову инструмента, включая когда он отказывает без вердикта классификатора, потому что [проверка безопасности, отдельная от режима auto, отказала в запросе классификатора](/docs/ru/errors#auto-mode-cannot-determine-the-safety-of-an-action) или его ответ не был проанализирован. Этот hook срабатывает только в режиме auto: он не запускается, когда вы вручную отказываете диалогу разрешений, когда hook `PreToolUse` блокирует вызов или когда совпадает правило `deny`. Используйте его для логирования отказов, корректировки конфигурации или сообщения модели, что она может повторить вызов инструмента.

2368 2377 

2369Совпадает с названием инструмента, те же значения, что и PreToolUse.2378Совпадает с именем инструмента, те же значения, что и PreToolUse.

2370 2379 

2371<h4 id="permissiondenied-input">2380<h4 id="permissiondenied-input">

2372 Ввод PermissionDenied2381 PermissionDenied input

2373</h4>2382</h4>

2374 2383 

2375Помимо [общих полей ввода](#common-input-fields), hooks PermissionDenied получают `tool_name`, `tool_input`, `tool_use_id` и `reason`. Для инструмента MCP они также получают объект [`mcp_server`](#pretooluse-input).2384Помимо [общих полей ввода](#common-input-fields), hooks PermissionDenied получают `tool_name`, `tool_input`, `tool_use_id` и `reason`. Для инструмента MCP они также получают объект [`mcp_server`](#pretooluse-input).


2396| `reason` | Причина отказа. Для вердикта классификатора в большинстве сеансов он называет совпадающее правило в квадратных скобках, такое как `[Data Exfiltration]`; см. [Review denials](/docs/ru/auto-mode-config#review-denials) для других форм. Для [отказа без вердикта](#permissiondenied-decision-control) он начинается с `Auto mode could not evaluate this action and is blocking it for safety`. Для отказа, потому что модель классификатора была недоступна, это фиксированный текст `Classifier unavailable` |2405| `reason` | Причина отказа. Для вердикта классификатора в большинстве сеансов он называет совпадающее правило в квадратных скобках, такое как `[Data Exfiltration]`; см. [Review denials](/docs/ru/auto-mode-config#review-denials) для других форм. Для [отказа без вердикта](#permissiondenied-decision-control) он начинается с `Auto mode could not evaluate this action and is blocking it for safety`. Для отказа, потому что модель классификатора была недоступна, это фиксированный текст `Classifier unavailable` |

2397 2406 

2398<h4 id="permissiondenied-decision-control">2407<h4 id="permissiondenied-decision-control">

2399 Управление решением PermissionDenied2408 Управление решениями PermissionDenied

2400</h4>2409</h4>

2401 2410 

2402Hooks PermissionDenied могут сказать модели, что она может повторить попытку отклоненного вызова инструмента. Верните объект JSON с `hookSpecificOutput.retry`, установленным на `true`:2411Hooks PermissionDenied могут сказать модели, что она может повторить отклоненный вызов инструмента. Верните объект JSON с `hookSpecificOutput.retry`, установленным на `true`:

2403 2412 

2404```json theme={null}2413```json theme={null}

2405{2414{


2410}2419}

2411```2420```

2412 2421 

2413Когда `retry` имеет значение `true`, Claude Code добавляет сообщение в разговор, говорящее модели, что она может повторить попытку вызова инструмента. Claude Code не отменяет сам отказ. Если ваш hook не возвращает JSON или возвращает `retry: false`, отказ остается и модель получает исходное сообщение отказа.2422Когда `retry` имеет значение `true`, Claude Code добавляет сообщение в разговор, говорящее модели, что она может повторить вызов инструмента. Claude Code не отменяет сам отказ. Если ваш hook не возвращает JSON или возвращает `retry: false`, отказ остается и модель получает исходное сообщение отказа.

2414 2423 

2415Claude Code игнорирует `retry: true`, когда классификатор создал [отсутствие вердикта на действие](/docs/ru/errors#auto-mode-cannot-determine-the-safety-of-an-action): его ответ не был проанализирован или проверка безопасности, отдельная от режима auto, отказала в запросе классификатора. Для этих отказов Claude Code уже говорит модели в сообщении отказа, повторить ли попытку позже или продолжить.2424Claude Code игнорирует `retry: true`, когда классификатор создал [отсутствие вердикта на действие](/docs/ru/errors#auto-mode-cannot-determine-the-safety-of-an-action): его ответ не был проанализирован или проверка безопасности, отдельная от режима auto, отказала в запросе классификатора. Для этих отказов Claude Code уже говорит модели в сообщении отказа, повторить ли позже или продолжить.

2416 2425 

2417<h3 id="notification">2426<h3 id="notification">

2418 Notification2427 Notification


2420 2429 

2421Запускается, когда Claude Code отправляет уведомления. Совпадает с типом уведомления. Опустите matcher для запуска hooks для всех типов уведомлений.2430Запускается, когда Claude Code отправляет уведомления. Совпадает с типом уведомления. Опустите matcher для запуска hooks для всех типов уведомлений.

2422 2431 

2423Вы получаете эти события hook даже с отключенными уведомлениями рабочего стола: параметр `preferredNotifChannel`, включая `notifications_disabled`, изменяет только то, как вас оповещают, а не запускается ли ваш hook.2432Вы получаете эти события hook даже с отключенными уведомлениями рабочего стола: параметр `preferredNotifChannel`, включая `notifications_disabled`, изменяет только то, как вас оповещают, а не срабатывает ли ваш hook.

2424 2433 

2425| Matcher | Когда срабатывает |2434| Matcher | Когда срабатывает |

2426| :- | :- |2435| :- | :- |


2430| `elicitation_dialog` | Сервер MCP открывает форму запроса и вы не печатали около шести секунд |2439| `elicitation_dialog` | Сервер MCP открывает форму запроса и вы не печатали около шести секунд |

2431| `elicitation_url_dialog` | Сервер MCP просит вас открыть URL браузера и вы не печатали около шести секунд |2440| `elicitation_url_dialog` | Сервер MCP просит вас открыть URL браузера и вы не печатали около шести секунд |

2432| `elicitation_complete` | Сервер MCP сообщает, что [URL-режим запроса](#elicitation-input) завершен |2441| `elicitation_complete` | Сервер MCP сообщает, что [URL-режим запроса](#elicitation-input) завершен |

2433| `elicitation_response` | Ответ запроса MCP отправляется обратно на сервер |2442| `elicitation_response` | Ответ на запрос MCP отправляется обратно на сервер |

2434| `agent_needs_input` | Фоновый сеанс начинает ждать вашего ввода, пока [agent view](/docs/ru/agent-view) открыт в терминале, или текущий сеанс задает вам вопрос [настройки терминала товарища команды агентов](/docs/ru/agent-teams#choose-a-display-mode) и вы не печатали около шести секунд |2443| `agent_needs_input` | Фоновый сеанс начинает ждать вашего ввода, пока [agent view](/docs/ru/agent-view) открыт в терминале. Также срабатывает, когда сеанс терминала показывает вам [вопрос настройки терминала товарища команды агентов](/docs/ru/agent-teams#choose-a-display-mode) или уведомление режима auto о [расходах на запрос классификатора](/docs/ru/auto-mode-classifier-billing) и вы не печатали около шести секунд |

2435| `agent_completed` | Фоновый сеанс завершается или не удается. Срабатывает только, пока [agent view](/docs/ru/agent-view) открыт в терминале |2444| `agent_completed` | Фоновый сеанс завершается или не удается. Срабатывает только, пока [agent view](/docs/ru/agent-view) открыт в терминале |

2436| `quota_auto_resume_fired` | Claude Code продолжает вашу задачу после того, как лимит использования claude.ai приостановил его: при сбросе или раньше, когда что-то, что вы делаете в Claude Code во время ожидания, такое как добавление кредитов использования, обновление вашего плана или переключение моделей, снова делает использование доступным, с [исключением параметра модели](/docs/ru/interactive-mode#wait-for-a-usage-limit-to-reset) |2445| `quota_auto_resume_fired` | Claude Code продолжает вашу задачу после того, как лимит использования claude.ai приостановил его: при сбросе или раньше, когда что-то, что вы делаете в Claude Code во время ожидания, такое как добавление кредитов использования, обновление плана или переключение моделей, снова делает использование доступным, с [исключением параметра модели](/docs/ru/interactive-mode#wait-for-a-usage-limit-to-reset) |

2437| `quota_auto_resume_stale` | Лимит использования claude.ai сбросился, пока ваш компьютер спал более чем около 30 минут. Claude Code ждет, пока вы нажмете `Enter`, вместо продолжения. После более короткого сна он продолжает и срабатывает `quota_auto_resume_fired` вместо этого |2446| `quota_auto_resume_stale` | Лимит использования claude.ai сбросился, пока ваш компьютер спал более чем около 30 минут. Claude Code ждет, пока вы нажмете `Enter`, вместо продолжения. После более короткого сна он продолжает и срабатывает `quota_auto_resume_fired` вместо этого |

2438| `quota_auto_resume_disabled` | Claude Code заканчивает свое ожидание лимита использования claude.ai без продолжения вашей задачи: [`autoContinueAtUsageLimit`](/docs/ru/settings-reference#autocontinueatusagelimit) отключен или сброс переместился более чем на 24 часа во время ожидания, которое Claude Code запустил самостоятельно, продолженная задача продолжала попадать на лимит или продолжение было заблокировано перед достижением модели. Не срабатывает, когда вы нажимаете `Esc` или `Ctrl+C` или выбираете **Don't continue automatically** |2447| `quota_auto_resume_disabled` | Claude Code заканчивает свое ожидание лимита использования claude.ai без продолжения вашей задачи: [`autoContinueAtUsageLimit`](/docs/ru/settings-reference#autocontinueatusagelimit) отключен или сброс переместился более чем на 24 часа во время ожидания, которое Claude Code запустил сам, продолженная задача продолжала попадать на лимит или продолжение было заблокировано перед достижением модели. Не срабатывает, когда вы нажимаете `Esc` или `Ctrl+C` или выбираете **Don't continue automatically** |

2439 2448 

2440Типы `agent_needs_input` и `agent_completed` требуют Claude Code v2.1.198 или позже.2449Типы `agent_needs_input` и `agent_completed` требуют Claude Code v2.1.198 или позже.

2441 2450 


2448<Note>2457<Note>

2449 Типы `permission_prompt`, `idle_prompt`, `elicitation_dialog` и `elicitation_url_dialog` делят свое время с уведомлениями рабочего стола, поэтому в сеансах терминала вы видите их только, когда вы кажетесь отсутствующим от терминала:2458 Типы `permission_prompt`, `idle_prompt`, `elicitation_dialog` и `elicitation_url_dialog` делят свое время с уведомлениями рабочего стола, поэтому в сеансах терминала вы видите их только, когда вы кажетесь отсутствующим от терминала:

2450 2459 

2451 * Ожидайте `permission_prompt` один раз, когда вы не печатали около шести секунд. Таймер начинается, когда появляется подсказка разрешения, и каждый нажатие клавиши откладывает его. Чтобы запустить hook немедленно, когда Claude просит разрешение на использование инструмента, используйте вместо этого [PermissionRequest](#permissionrequest).2460 * Ожидайте `permission_prompt` один раз, когда вы не печатали около шести секунд. Таймер начинается, когда появляется подсказка разрешения, и каждый нажатие клавиши откладывает его. Чтобы запустить hook немедленно, когда Claude просит разрешение на использование инструмента, используйте [PermissionRequest](#permissionrequest) вместо этого.

2452 * Ожидайте `idle_prompt` около 60 секунд после того, как Claude закончит отвечать, и только если вы не печатали с тех пор. Claude Code не отправляет `idle_prompt`, пока ждет сброса лимита использования claude.ai. Когда ожидание заканчивается самостоятельно, один из типов `quota_auto_resume_*` срабатывает вместо этого.2461 * Ожидайте `idle_prompt` около 60 секунд после завершения Claude ответа и только, если вы не печатали с тех пор. Claude Code не отправляет `idle_prompt`, пока ждет сброса лимита использования claude.ai. Когда ожидание заканчивается само по себе, один из типов `quota_auto_resume_*` срабатывает вместо этого.

2453 * Ожидайте `elicitation_dialog` для формы запроса или `elicitation_url_dialog` для запроса URL браузера один раз, когда вы не печатали около шести секунд. Оба делят один и тот же шестисекундный шлюз как `permission_prompt`: таймер начинается, когда появляется диалог, и каждый нажатие клавиши откладывает его.2462 * Ожидайте `elicitation_dialog` для формы запроса или `elicitation_url_dialog` для запроса URL браузера один раз, когда вы не печатали около шести секунд. Оба делят один шестисекундный шлюз с `permission_prompt`: таймер начинается, когда появляется диалог, и каждый нажатие клавиши откладывает его.

2454 2463 

2455 Запрос разрешения или запрос, который прибывает, пока другой диалог находится на экране, сохраняет один и тот же шестисекундный шлюз, рассчитанный с момента прибытия запроса. Его уведомление может достичь вас, пока запрос все еще ждет позади открытого диалога.2464 Запрос разрешения или запрос, который прибывает, пока другой диалог находится на экране, сохраняет один шестисекундный шлюз, рассчитанный с момента прибытия запроса. Его уведомление может достичь вас, пока запрос все еще ждет позади открытого диалога.

2456</Note>2465</Note>

2457 2466 

2458Claude Code рассчитывает `permission_prompt` по-другому в сеансах, где он отправляет запросы разрешений на callback [`canUseTool`](/docs/ru/agent-sdk/user-input) Agent SDK, что является тем, как Claude Desktop и расширение VS Code размещают Claude Code:2467Claude Code рассчитывает `permission_prompt` по-другому в сеансах, где он отправляет запросы разрешений на callback `canUseTool` Agent SDK, что является тем, как Claude Desktop и расширение VS Code размещают Claude Code:

2459 2468 

2460* Ожидайте `permission_prompt` около шести секунд после того, как Claude просит разрешение. Claude Code не откладывает его, пока вы печатаете.2469* Ожидайте `permission_prompt` около шести секунд после того, как Claude просит разрешение. Claude Code не откладывает его, пока вы печатаете.

2461* Если вы или hook [PermissionRequest](#permissionrequest) ответите раньше, Claude Code не запускает `permission_prompt`.2470* Если вы или hook [PermissionRequest](#permissionrequest) ответите раньше, Claude Code не запускает `permission_prompt`.


2493```2502```

2494 2503 

2495<h4 id="notification-input">2504<h4 id="notification-input">

2496 Ввод Notification2505 Notification input

2497</h4>2506</h4>

2498 2507 

2499Помимо [общих полей ввода](#common-input-fields), hooks Notification получают `message` с текстом уведомления, опциональный `title` и `notification_type`, указывающий, какой тип срабатывает.2508Помимо [общих полей ввода](#common-input-fields), hooks Notification получают `message` с текстом уведомления, опциональный `title` и `notification_type`, указывающий, какой тип срабатывает.


2510}2519}

2511```2520```

2512 2521 

2513Hooks Notification не могут блокировать или изменять уведомления. Claude Code отбрасывает их поля `systemMessage` и `continue`, но все еще выдает [`terminalSequence`](#emit-terminal-notifications), на которую полагается пример уведомления рабочего стола. Hooks Notification предназначены для побочных эффектов, таких как пересылка уведомления на внешний сервис.2522Hooks Notification не могут блокировать или изменять уведомления. Claude Code отбрасывает их поля `systemMessage` и `continue`, но все еще выдает [`terminalSequence`](#emit-terminal-notifications), на которое полагается пример уведомления рабочего стола. Hooks Notification предназначены для побочных эффектов, таких как пересылка уведомления во внешний сервис.

2514 2523 

2515<h3 id="subagentstart">2524<h3 id="subagentstart">

2516 SubagentStart2525 SubagentStart

2517</h3>2526</h3>

2518 2527 

2519Запускается, когда Claude порождает подагента с инструментом Agent, когда Claude [возобновляет подагента](/docs/ru/sub-agents#resume-subagents) и каждый раз, когда товарищ [команды агентов](/docs/ru/agent-teams) в процессе обрабатывает новое сообщение. Поддерживает matchers для фильтрации по названию типа агента. Для встроенных агентов это имя агента, такое как `general-purpose`, `Explore` или `Plan`. Для [пользовательских подагентов](/docs/ru/sub-agents) это поле `name` из frontmatter агента, а не имя файла.2528Запускается, когда Claude порождает подагента с инструментом Agent, когда Claude [возобновляет подагента](/docs/ru/sub-agents#resume-subagents) и каждый раз, когда товарищ [команды агентов](/docs/ru/agent-teams) в процессе обрабатывает новое сообщение. Поддерживает matchers для фильтрации по имени типа агента. Для встроенных агентов это имя агента, такое как `general-purpose`, `Explore` или `Plan`. Для [пользовательских подагентов](/docs/ru/sub-agents) это поле `name` из frontmatter агента, а не имя файла.

2520 2529 

2521Для подагентов, поставляемых [плагином](/docs/ru/plugins/overview), тип агента — это идентификатор с областью плагина, такой как `my-plugin:reviewer`, а не голое имя frontmatter. Двоеточие помещает имя с областью плагина на путь регулярного выражения, поэтому якорьте matcher с `^` и `$` для точного совпадения: `^my-plugin:reviewer$`.2530Для подагентов, поставляемых [plugin](/docs/ru/plugins/overview), тип агента — это идентификатор с областью plugin, такой как `my-plugin:reviewer`, а не голое имя frontmatter. Двоеточие помещает имя с областью plugin на путь регулярного выражения, поэтому якорьте matcher с `^` и `$` для точного совпадения: `^my-plugin:reviewer$`.

2522 2531 

2523<h4 id="subagentstart-input">2532<h4 id="subagentstart-input">

2524 Ввод SubagentStart2533 SubagentStart input

2525</h4>2534</h4>

2526 2535 

2527Помимо [общих полей ввода](#common-input-fields), hooks SubagentStart получают `agent_id` с уникальным идентификатором подагента и `agent_type` с названием агента, который matcher фильтрует.2536Помимо [общих полей ввода](#common-input-fields), hooks SubagentStart получают `agent_id` с уникальным идентификатором подагента и `agent_type` с именем агента, который matcher фильтрует.

2528 2537 

2529```json theme={null}2538```json theme={null}

2530{2539{


2537}2546}

2538```2547```

2539 2548 

2540Hooks SubagentStart не могут блокировать создание подагента, но они могут внедрить контекст в подагента. Помимо [полей JSON-вывода](#json-output), доступных всем hooks, вы можете вернуть:2549Hooks SubagentStart не могут блокировать создание подагента, но они могут внедрить контекст в подагента. Помимо [полей вывода JSON](#json-output), доступных всем hooks, вы можете вернуть:

2541 2550 

2542| Поле | Описание |2551| Поле | Описание |

2543| :- | :- |2552| :- | :- |


2561Запускается, когда подагент Claude Code закончил отвечать. Совпадает с типом агента, те же значения, что и SubagentStart.2570Запускается, когда подагент Claude Code закончил отвечать. Совпадает с типом агента, те же значения, что и SubagentStart.

2562 2571 

2563<h4 id="subagentstop-input">2572<h4 id="subagentstop-input">

2564 Ввод SubagentStop2573 SubagentStop input

2565</h4>2574</h4>

2566 2575 

2567Помимо [общих полей ввода](#common-input-fields), hooks SubagentStop получают `stop_hook_active`, `agent_id`, `agent_type`, `agent_transcript_path` и `last_assistant_message`. Поле `agent_type` — это значение, используемое для фильтрации matcher. `transcript_path` — это транскрипт основного сеанса, пока `agent_transcript_path` — это собственный транскрипт подагента, хранящийся в вложенной папке `subagents/`. Поле `last_assistant_message` содержит текстовое содержимое финального ответа подагента, поэтому hooks могут получить доступ к нему без анализа файла транскрипта.2576Помимо [общих полей ввода](#common-input-fields), hooks SubagentStop получают `stop_hook_active`, `agent_id`, `agent_type`, `agent_transcript_path` и `last_assistant_message`. Поле `agent_type` — это значение, используемое для фильтрации matcher. `transcript_path` — это транскрипт основного сеанса, в то время как `agent_transcript_path` — это собственный транскрипт подагента, хранящийся в вложенной папке `subagents/`. Поле `last_assistant_message` содержит текстовое содержимое финального ответа подагента, поэтому hooks могут получить доступ к нему без анализа файла транскрипта.

2568 2577 

2569Не каждое событие SubagentStop поступает от подагента, который Claude порождает. Claude Code также запускает внутренних агентов для некоторых своих собственных функций, таких как [предложения подсказок](/docs/ru/interactive-mode#prompt-suggestions) и [`/btw` побочные вопросы](/docs/ru/interactive-mode#side-questions-with-%2Fbtw), и SubagentStop срабатывает, когда один из них завершается. Для этих событий `agent_type` — это имя агента, который запускает сам сеанс, такой как один, установленный с [`--agent`](/docs/ru/cli-reference#cli-flags) или параметром [`agent`](/docs/ru/settings-reference#agent), и пустая строка, когда сеанс запускается без одного.2578Не каждое событие SubagentStop поступает от подагента, который Claude порождает. Claude Code также запускает внутренних агентов для некоторых своих собственных функций, таких как [предложения подсказок](/docs/ru/interactive-mode#prompt-suggestions) и [вопросы в сторону `/btw`](/docs/ru/interactive-mode#side-questions-with-%2Fbtw), и SubagentStop срабатывает, когда один из них завершается. Для этих событий `agent_type` — это имя агента, который запускает сам сеанс, такой как один, установленный с [`--agent`](/docs/ru/cli-reference#cli-flags) или параметром [`agent`](/docs/ru/settings-reference#agent), и пустая строка, когда сеанс запускается без одного.

2570 2579 

2571`matcher`, который называет типы агентов, не совпадает с пустым `agent_type`. Hook, чей matcher опущен, `""` или `"*"`, или является регулярным выражением, которое совпадает с пустой строкой, запускается для событий с пустым `agent_type` тоже.2580`matcher`, который называет типы агентов, не совпадает с пустым `agent_type`. Hook, чей matcher опущен, `""` или `"*"`, или является регулярным выражением, которое совпадает с пустой строкой, запускается для событий с пустым `agent_type` тоже.

2572 2581 

2573На Claude Code v2.1.271 или позже подагент, который выполняется с инструментом [`SubagentHandback`](/docs/ru/tools-reference), доставляет свой отчет через этот инструмент перед остановкой. Поле `last_assistant_message` затем содержит закрывающий текст подагента, если он есть, который не является доставленным отчетом. Отчет — это ввод `message` этого вызова, который hook `PreToolUse` или `PostToolUse`, соответствующий `SubagentHandback`, получает как `tool_input.message`.2582На Claude Code v2.1.271 или позже подагент, который выполняется с инструментом [`SubagentHandback`](/docs/ru/tools-reference), доставляет свой отчет через этот инструмент перед остановкой. Поле `last_assistant_message` затем содержит закрывающий текст подагента, если есть, который не является доставленным отчетом. Отчет — это ввод `message` этого вызова, который hook `PreToolUse` или `PostToolUse`, соответствующий `SubagentHandback`, получает как `tool_input.message`.

2574 2583 

2575Hooks SubagentStop также получают массивы `background_tasks` и `session_crons`, описанные в [Stop input](#stop-input). Оба массива ограничены родительским сеансом, а не подагентом.2584Hooks SubagentStop также получают массивы `background_tasks` и `session_crons`, описанные в [Stop input](#stop-input). Оба массива ограничены родительским сеансом, а не подагентом.

2576 2585 


2591}2600}

2592```2601```

2593 2602 

2594Hooks SubagentStop используют тот же формат управления решением, что и [hooks Stop](#stop-decision-control), включая `hookSpecificOutput.additionalContext` с `hookEventName`, установленным на `"SubagentStop"`, для обратной связи без ошибок, которая держит подагента работающим. Возврат `decision: "block"` с `reason` держит подагента работающим и доставляет `reason` подагенту как его следующую инструкцию. Hook, который блокирует выходом 2, доставляет его сообщение stderr так же. Чтобы внедрить контекст в родительский сеанс после возврата подагента, используйте вместо этого hook [`PostToolUse`](#posttooluse) на инструменте `Agent`.2603Hooks SubagentStop используют тот же формат управления решениями, что и [hooks Stop](#stop-decision-control), включая `hookSpecificOutput.additionalContext` с `hookEventName`, установленным на `"SubagentStop"`, для обратной связи без ошибок, которая держит подагента работающим. Возврат `decision: "block"` с `reason` держит подагента работающим и доставляет `reason` подагенту как его следующую инструкцию. Hook, который блокирует выходом 2, доставляет его сообщение stderr так же. Чтобы внедрить контекст в родительский сеанс после возврата подагента, используйте hook [`PostToolUse`](#posttooluse) на инструменте `Agent` вместо этого.

2595 2604 

2596<h3 id="taskcreated">2605<h3 id="taskcreated">

2597 TaskCreated2606 TaskCreated

2598</h3>2607</h3>

2599 2608 

2600Запускается, когда задача создается через инструмент `TaskCreate`. Используйте это для применения соглашений об именовании, требования описаний задач или предотвращения создания определенных задач. В [сеансе без инструментов Task](/docs/ru/tools-reference#task-tool-availability) это событие не срабатывает.2609Запускается, когда задача создается через инструмент `TaskCreate`. Используйте это для обеспечения соглашений об именовании, требования описаний задач или предотвращения создания определенных задач. В [сеансе без инструментов Task](/docs/ru/tools-reference#task-tool-availability) это событие не срабатывает.

2601 2610 

2602Hooks TaskCreated не поддерживают matchers и срабатывают при каждом возникновении.2611Hooks TaskCreated не поддерживают matchers и срабатывают при каждом возникновении.

2603 2612 

2604<h4 id="taskcreated-input">2613<h4 id="taskcreated-input">

2605 Ввод TaskCreated2614 TaskCreated input

2606</h4>2615</h4>

2607 2616 

2608Помимо [общих полей ввода](#common-input-fields), hooks TaskCreated получают `task_id`, `task_subject` и опционально `task_description`, `teammate_name` и `team_name`.2617Помимо [общих полей ввода](#common-input-fields), hooks TaskCreated получают `task_id`, `task_subject` и опционально `task_description`, `teammate_name` и `team_name`.


2627| `task_subject` | Название задачи |2636| `task_subject` | Название задачи |

2628| `task_description` | Подробное описание задачи. Может отсутствовать |2637| `task_description` | Подробное описание задачи. Может отсутствовать |

2629| `teammate_name` | Имя товарища, создающего задачу. Может отсутствовать |2638| `teammate_name` | Имя товарища, создающего задачу. Может отсутствовать |

2630| `team_name` | Устарело. Имя команды, полученное из сеанса; будет удалено в будущем выпуске |2639| `team_name` | Устарело. Название команды, полученное из сеанса; будет удалено в будущем выпуске |

2631 2640 

2632<h4 id="taskcreated-decision-control">2641<h4 id="taskcreated-decision-control">

2633 Управление решением TaskCreated2642 Управление решениями TaskCreated

2634</h4>2643</h4>

2635 2644 

2636Hook TaskCreated может заблокировать создание двумя способами. В любом случае Claude Code удаляет задачу и возвращает ваше сообщение Claude как ошибку инструмента. Claude Code игнорирует `continue: false` из этого события и Claude продолжает работать.2645Hook TaskCreated может заблокировать создание двумя способами. В любом случае Claude Code удаляет задачу и возвращает ваше сообщение Claude как ошибку инструмента. Claude Code игнорирует `continue: false` из этого события и Claude продолжает работать.


2657 TaskCompleted2666 TaskCompleted

2658</h3>2667</h3>

2659 2668 

2660Запускается, когда задача отмечается как завершенная. Это срабатывает в двух ситуациях: когда любой агент явно отмечает задачу как завершенную через инструмент TaskUpdate или когда товарищ [команды агентов](/docs/ru/agent-teams) завершает свой ход с выполняющимися задачами. Используйте это для применения критериев завершения, таких как прохождение тестов или проверок lint, перед закрытием задачи.2669Запускается, когда задача отмечается как завершенная. Это срабатывает в двух ситуациях: когда любой агент явно отмечает задачу как завершенную через инструмент TaskUpdate или когда товарищ [команды агентов](/docs/ru/agent-teams) завершает свой ход с выполняющимися задачами. Используйте это для обеспечения критериев завершения, таких как прохождение тестов или проверок lint перед закрытием задачи.

2661 2670 

2662Hooks TaskCompleted не поддерживают matchers и срабатывают при каждом возникновении.2671Hooks TaskCompleted не поддерживают matchers и срабатывают при каждом возникновении.

2663 2672 

2664<h4 id="taskcompleted-input">2673<h4 id="taskcompleted-input">

2665 Ввод TaskCompleted2674 TaskCompleted input

2666</h4>2675</h4>

2667 2676 

2668Помимо [общих полей ввода](#common-input-fields), hooks TaskCompleted получают `task_id`, `task_subject` и опционально `task_description`, `teammate_name` и `team_name`.2677Помимо [общих полей ввода](#common-input-fields), hooks TaskCompleted получают `task_id`, `task_subject` и опционально `task_description`, `teammate_name` и `team_name`.


2688| `task_subject` | Название задачи |2697| `task_subject` | Название задачи |

2689| `task_description` | Подробное описание задачи. Может отсутствовать |2698| `task_description` | Подробное описание задачи. Может отсутствовать |

2690| `teammate_name` | Имя товарища, завершающего задачу. Может отсутствовать |2699| `teammate_name` | Имя товарища, завершающего задачу. Может отсутствовать |

2691| `team_name` | Устарело. Имя команды, полученное из сеанса; будет удалено в будущем выпуске |2700| `team_name` | Устарело. Название команды, полученное из сеанса; будет удалено в будущем выпуске |

2692 2701 

2693<h4 id="taskcompleted-decision-control">2702<h4 id="taskcompleted-decision-control">

2694 Управление решением TaskCompleted2703 Управление решениями TaskCompleted

2695</h4>2704</h4>

2696 2705 

2697Hooks TaskCompleted поддерживают два способа управления завершением задачи:2706Hooks TaskCompleted поддерживают два способа управления завершением задачи:

2698 2707 

2699* **Код выхода 2**: задача не отмечается как завершенная и сообщение stderr передается обратно модели как обратная связь.2708* **Код выхода 2**: задача не отмечается как завершенная и сообщение stderr передается обратно модели как обратная связь.

2700* **JSON `{"continue": false, "stopReason": "..."}`**: когда товарищ, завершающий свой ход, запустил событие, полностью останавливает товарища, совпадая с поведением hook `Stop`. `stopReason` показывается пользователю. Когда инструмент `TaskUpdate` запустил событие, Claude Code игнорирует `continue: false`; код выхода 2 все еще блокирует завершение.2709* **JSON `{"continue": false, "stopReason": "..."}`**: когда событие запустил товарищ, завершающий свой ход, полностью останавливает товарища, совпадая с поведением hook `Stop`. `stopReason` показывается пользователю. Когда событие запустил инструмент `TaskUpdate`, Claude Code игнорирует `continue: false`; код выхода 2 все еще блокирует завершение.

2701 2710 

2702Этот пример запускает тесты и блокирует завершение задачи, если они не пройдут:2711Этот пример запускает тесты и блокирует завершение задачи, если они не удаются:

2703 2712 

2704```bash theme={null}2713```bash theme={null}

2705#!/bin/bash2714#!/bin/bash


2719 Stop2728 Stop

2720</h3>2729</h3>

2721 2730 

2722Запускается, когда основной агент Claude Code закончил отвечать. Не запускается, если остановка произошла из-за прерывания пользователем. Ошибки API срабатывают вместо этого [StopFailure](#stopfailure).2731Запускается, когда основной агент Claude Code закончил отвечать. Не запускается, если остановка произошла из-за прерывания пользователем. Ошибки API запускают [StopFailure](#stopfailure) вместо этого.

2723 2732 

2724<Tip>2733<Tip>

2725 Команда [`/goal`](/docs/ru/goal) — это встроенный ярлык для hook Stop с областью сеанса на основе подсказки. Используйте его, когда вы хотите, чтобы Claude продолжал работать над условием без написания конфигурации hook.2734 Команда [`/goal`](/docs/ru/goal) — это встроенный ярлык для hook Stop с областью сеанса на основе подсказки. Используйте его, когда вы хотите, чтобы Claude продолжал работать над условием без написания конфигурации hook.

2726</Tip>2735</Tip>

2727 2736 

2728<h4 id="stop-input">2737<h4 id="stop-input">

2729 Ввод Stop2738 Stop input

2730</h4>2739</h4>

2731 2740 

2732Помимо [общих полей ввода](#common-input-fields), hooks Stop получают `stop_hook_active`, `last_assistant_message`, `background_tasks` и `session_crons`. Поле `stop_hook_active` имеет значение `true`, когда Claude Code уже продолжает в результате hook stop. Проверьте это значение или обработайте транскрипт, чтобы избежать блокировки на условии, которое никогда не разрешится. Claude Code переопределяет hook и заканчивает ход после 8 последовательных блокировок. Чтобы повысить ограничение, установите [`CLAUDE_CODE_STOP_HOOK_BLOCK_CAP`](/docs/ru/env-vars).2741Помимо [общих полей ввода](#common-input-fields), hooks Stop получают `stop_hook_active`, `last_assistant_message`, `background_tasks` и `session_crons`. Поле `stop_hook_active` имеет значение `true`, когда Claude Code уже продолжает в результате hook stop. Проверьте это значение или обработайте транскрипт, чтобы избежать блокировки на условии, которое никогда не разрешится. Claude Code применяет ограничение на 8 последовательных продолжений: после того, как hooks stop продолжили ход восемь раз подряд, Claude Code переопределяет следующий блок и заканчивает ход. Чтобы поднять ограничение, установите [`CLAUDE_CODE_STOP_HOOK_BLOCK_CAP`](/docs/ru/env-vars).

2733 2742 

2734Поле `last_assistant_message` содержит текстовое содержимое финального ответа Claude, поэтому hooks могут получить доступ к нему без анализа файла транскрипта. Для hooks, которые действуют на только что завершенный ход, такие как hooks чтения вслух или уведомления, используйте это поле, а не читайте `transcript_path`: файл транскрипта не гарантируется включать финальное сообщение во время Stop на всех версиях.2743Поле `last_assistant_message` содержит текстовое содержимое финального ответа Claude, поэтому hooks могут получить доступ к нему без анализа файла транскрипта. Для hooks, которые действуют на только что завершенный ход, такие как hooks чтения вслух или уведомления, используйте это поле, а не читайте `transcript_path`: файл транскрипта не гарантирует включение финального сообщения в момент Stop на всех версиях.

2735 2744 

2736Массивы `background_tasks` и `session_crons` позволяют hooks различать "сеанс завершен" от "сеанс приостановлен, ожидая фоновой работы для пробуждения его обратно". Оба массива присутствуют, когда реестр задач доступен и пусты, когда ничего не выполняется или не запланировано.2745Массивы `background_tasks` и `session_crons` позволяют hooks различать "сеанс завершен" от "сеанс приостановлен в ожидании фоновой работы для его пробуждения". Оба массива присутствуют, когда реестр задач доступен и пусты, когда ничего не выполняется или не запланировано.

2737 2746 

2738Каждая запись в `background_tasks` описывает одну выполняющуюся задачу и использует эти поля:2747Каждая запись в `background_tasks` описывает одну выполняющуюся задачу и использует эти поля:

2739 2748 


2742| `id` | Идентификатор задачи |2751| `id` | Идентификатор задачи |

2743| `type` | Дружественный ярлык типа задачи, такой как `shell`, `subagent`, `monitor`, `workflow`, `teammate`, `cloud session` или `MCP task`. Каждый ярлык определяет, какая функция Claude Code создала задачу. Возвращается к необработанному дискриминанту для неизвестных типов |2752| `type` | Дружественный ярлык типа задачи, такой как `shell`, `subagent`, `monitor`, `workflow`, `teammate`, `cloud session` или `MCP task`. Каждый ярлык определяет, какая функция Claude Code создала задачу. Возвращается к необработанному дискриминанту для неизвестных типов |

2744| `status` | Текущий статус задачи |2753| `status` | Текущий статус задачи |

2745| `description` | Описание в свободной форме, ограниченное 1000 символами с маркером `… [+N chars]` в строке при обрезке |2754| `description` | Описание в свободной форме, ограниченное 1000 символами с маркером `… [+N chars]` в строке при обрезании |

2746| `command` | Командная строка оболочки, ограниченная 1000 символами. Присутствует только для задач `shell` |2755| `command` | Командная строка оболочки, ограниченная 1000 символами. Присутствует только для задач `shell` |

2747| `agent_type` | Имя типа подагента. Присутствует только для задач `subagent` |2756| `agent_type` | Имя типа подагента. Присутствует только для задач `subagent` |

2748| `server` | Имя сервера MCP. Присутствует только для задач `monitor` и `MCP task` |2757| `server` | Имя сервера MCP. Присутствует только для задач `monitor` и `MCP task` |


2753 2762 

2754| Поле | Описание |2763| Поле | Описание |

2755| :- | :- |2764| :- | :- |

2756| `id` | Идентификатор задачи Cron |2765| `id` | Идентификатор задачи cron |

2757| `schedule` | Выражение Cron, например `0 9 * * 1-5` |2766| `schedule` | Выражение cron, например `0 9 * * 1-5` |

2758| `recurring` | `false` для одноразовых пробуждений, чье расписание кодирует одно время срабатывания, `true` для задач, которые повторно срабатывают при каждом совпадении |2767| `recurring` | `false` для одноразовых пробуждений, чье расписание кодирует одно время срабатывания, `true` для задач, которые повторно срабатывают при каждом совпадении |

2759| `prompt` | Подсказка, отправленная при срабатывании cron, ограниченная 1000 символами с тем же маркером `… [+N chars]` |2768| `prompt` | Подсказка, отправленная при срабатывании cron, ограниченная 1000 символами с тем же маркером `… [+N chars]` |

2760 2769 

2761Этот пример показывает ввод Stop с одной выполняющейся задачей shell и одним повторяющимся cron:2770Этот пример показывает ввод Stop с одной выполняющейся задачей оболочки и одним повторяющимся cron:

2762 2771 

2763```json theme={null}2772```json theme={null}

2764{2773{


2790```2799```

2791 2800 

2792<h4 id="stop-decision-control">2801<h4 id="stop-decision-control">

2793 Управление решением Stop2802 Управление решениями Stop

2794</h4>2803</h4>

2795 2804 

2796Hooks `Stop` и `SubagentStop` могут управлять тем, продолжает ли Claude. Помимо [полей JSON-вывода](#json-output), доступных всем hooks, ваш скрипт hook может вернуть эти поля, специфичные для события:2805Hooks `Stop` и `SubagentStop` могут управлять тем, продолжает ли Claude. Помимо [полей вывода JSON](#json-output), доступных всем hooks, ваш скрипт hook может вернуть эти поля, специфичные для события:

2797 2806 

2798| Поле | Описание |2807| Поле | Описание |

2799| :- | :- |2808| :- | :- |

2800| `decision` | `"block"` предотвращает остановку Claude. Опустите, чтобы позволить Claude остановиться |2809| `decision` | `"block"` предотвращает остановку Claude. Опустите, чтобы позволить Claude остановиться |

2801| `reason` | Требуется, когда `decision` имеет значение `"block"`. Говорит Claude, почему он должен продолжить |2810| `reason` | Требуется, когда `decision` имеет значение `"block"`. Говорит Claude, почему он должен продолжить |

2802| `hookSpecificOutput.additionalContext` | Обратная связь без ошибок для Claude. Разговор продолжается, чтобы Claude мог действовать на ней, но в отличие от `decision: "block"` она показана в транскрипте как обратная связь hook, а не ошибка hook |2811| `hookSpecificOutput.additionalContext` | Обратная связь без ошибок для Claude. Разговор продолжается, чтобы Claude мог действовать на ней, но в отличие от `decision: "block"`, она показывается в транскрипте как обратная связь hook, а не ошибка hook |

2803 2812 

2804Hook, который блокирует выходом 2, маршрутизируется так же, как `reason`: Claude получает сообщение stderr как объяснение того, почему он должен продолжить.2813Hook, который блокирует выходом 2, маршрутизируется так же, как `reason`: Claude получает сообщение stderr как объяснение того, почему он должен продолжить.

2805 2814 


2810}2819}

2811```2820```

2812 2821 

2813Используйте `additionalContext`, когда hook работает как задумано и дает Claude руководство, такое как "запустить набор тестов перед завершением". Это держит разговор идущим через те же защиты цикла, что и `decision: "block"`, а именно ввод `stop_hook_active` и ограничение 8-последовательного продолжения, но транскрипт помечает его `Stop hook feedback` и уведомление об ошибке hook не показывается:2822Используйте `additionalContext`, когда hook работает как задумано и дает Claude руководство, такое как "запустить набор тестов перед завершением". Это держит разговор идущим через те же защиты цикла, что и `decision: "block"`, а именно ввод `stop_hook_active` и ограничение на 8 последовательных продолжений, но транскрипт помечает его как `Stop hook feedback` и уведомление об ошибке hook не показывается:

2814 2823 

2815```json theme={null}2824```json theme={null}

2816{2825{


2828Запускается вместо [Stop](#stop), когда ход заканчивается из-за ошибки API. Claude Code игнорирует вывод и код выхода hook, кроме [`terminalSequence`](#emit-terminal-notifications). Используйте это для логирования сбоев, отправки оповещений или принятия действий восстановления, когда Claude не может завершить ответ из-за ограничений скорости, проблем аутентификации или других ошибок API.2837Запускается вместо [Stop](#stop), когда ход заканчивается из-за ошибки API. Claude Code игнорирует вывод и код выхода hook, кроме [`terminalSequence`](#emit-terminal-notifications). Используйте это для логирования сбоев, отправки оповещений или принятия действий восстановления, когда Claude не может завершить ответ из-за ограничений скорости, проблем аутентификации или других ошибок API.

2829 2838 

2830<h4 id="stopfailure-input">2839<h4 id="stopfailure-input">

2831 Ввод StopFailure2840 StopFailure input

2832</h4>2841</h4>

2833 2842 

2834Помимо [общих полей ввода](#common-input-fields), hooks StopFailure получают `error`, опциональный `error_details` и опциональный `last_assistant_message`. Поле `error` определяет тип ошибки и используется для фильтрации matcher.2843Помимо [общих полей ввода](#common-input-fields), hooks StopFailure получают `error`, опциональный `error_details` и опциональный `last_assistant_message`. Поле `error` определяет тип ошибки и используется для фильтрации matcher.


2851}2860}

2852```2861```

2853 2862 

2854Hooks StopFailure не имеют управления решением. Они запускаются только в целях уведомления и логирования.2863Hooks StopFailure не имеют управления решениями. Они запускаются только в целях уведомления и логирования.

2855 2864 

2856<h3 id="teammateidle">2865<h3 id="teammateidle">

2857 TeammateIdle2866 TeammateIdle

2858</h3>2867</h3>

2859 2868 

2860Запускается, когда товарищ [команды агентов](/docs/ru/agent-teams) собирается перейти в режим ожидания после завершения своего хода. Используйте это для применения шлюзов качества перед остановкой товарища, такие как требование прохождения проверок lint или проверка существования выходных файлов.2869Запускается, когда товарищ [команды агентов](/docs/ru/agent-teams) собирается перейти в режим ожидания после завершения своего хода. Используйте это для обеспечения шлюзов качества перед остановкой товарища, такие как требование прохождения проверок lint или проверка существования выходных файлов.

2861 2870 

2862Hooks TeammateIdle не поддерживают matchers и срабатывают при каждом возникновении.2871Hooks TeammateIdle не поддерживают matchers и срабатывают при каждом возникновении.

2863 2872 

2864<h4 id="teammateidle-input">2873<h4 id="teammateidle-input">

2865 Ввод TeammateIdle2874 TeammateIdle input

2866</h4>2875</h4>

2867 2876 

2868Помимо [общих полей ввода](#common-input-fields), hooks TeammateIdle получают `teammate_name` и `team_name`.2877Помимо [общих полей ввода](#common-input-fields), hooks TeammateIdle получают `teammate_name` и `team_name`.


2882| Поле | Описание |2891| Поле | Описание |

2883| :- | :- |2892| :- | :- |

2884| `teammate_name` | Имя товарища, который собирается перейти в режим ожидания |2893| `teammate_name` | Имя товарища, который собирается перейти в режим ожидания |

2885| `team_name` | Устарело. Имя команды, полученное из сеанса; будет удалено в будущем выпуске |2894| `team_name` | Устарело. Название команды, полученное из сеанса; будет удалено в будущем выпуске |

2886 2895 

2887<h4 id="teammateidle-decision-control">2896<h4 id="teammateidle-decision-control">

2888 Управление решением TeammateIdle2897 Управление решениями TeammateIdle

2889</h4>2898</h4>

2890 2899 

2891Hooks TeammateIdle поддерживают два способа управления поведением товарища:2900Hooks TeammateIdle поддерживают два способа управления поведением товарища:


2910 ConfigChange2919 ConfigChange

2911</h3>2920</h3>

2912 2921 

2913Запускается, когда файл конфигурации изменяется во время сеанса. Используйте это для аудита изменений параметров, применения политик безопасности или блокировки несанкционированных изменений файлов конфигурации.2922Запускается, когда файл конфигурации изменяется во время сеанса. Используйте это для аудита изменений параметров, обеспечения политик безопасности или блокировки несанкционированных изменений файлов конфигурации.

2914 2923 

2915Claude Code запускает hooks ConfigChange, когда файл параметров, файл управляемой политики или файл skill изменяется. Для управляемой политики он запускает их только, когда `managed-settings.json` или файл в `managed-settings.d/` изменяется. Он применяет [параметры, управляемые сервером](/docs/ru/server-managed-settings) и изменения в macOS управляемых предпочтениях или политике реестра Windows без их запуска. На WSL с [`wslInheritsWindowsSettings`](/docs/ru/settings-reference#wslinheritswindowssettings) он также применяет измененный файл управляемых параметров Windows на его опросе политики без их запуска.2924Claude Code запускает hooks ConfigChange, когда файл параметров, файл управляемой политики или файл skill изменяется. Для управляемой политики он запускает их только, когда `managed-settings.json` или файл в `managed-settings.d/` изменяется. Он применяет [параметры, управляемые сервером](/docs/ru/server-managed-settings) и изменения в macOS управляемые предпочтения или политику реестра Windows без запуска их. На WSL с [`wslInheritsWindowsSettings`](/docs/ru/settings-reference#wslinheritswindowssettings) он также применяет измененный файл управляемых параметров Windows на его опросе политики без запуска их.

2916 2925 

2917Matcher фильтрует по источнику конфигурации:2926Matcher фильтрует по источнику конфигурации:

2918 2927 


2945```2954```

2946 2955 

2947<h4 id="configchange-input">2956<h4 id="configchange-input">

2948 Ввод ConfigChange2957 ConfigChange input

2949</h4>2958</h4>

2950 2959 

2951Помимо [общих полей ввода](#common-input-fields), hooks ConfigChange получают `source` и опционально `file_path`. Поле `source` указывает, какой тип конфигурации изменился, и `file_path` предоставляет путь к конкретному файлу, который был изменен.2960Помимо [общих полей ввода](#common-input-fields), hooks ConfigChange получают `source` и опционально `file_path`. Поле `source` указывает, какой тип конфигурации изменился, и `file_path` предоставляет путь к конкретному файлу, который был изменен.


2962```2971```

2963 2972 

2964<h4 id="configchange-decision-control">2973<h4 id="configchange-decision-control">

2965 Управление решением ConfigChange2974 Управление решениями ConfigChange

2966</h4>2975</h4>

2967 2976 

2968Hooks ConfigChange могут блокировать изменения конфигурации от вступления в силу. Используйте код выхода 2 или JSON `decision` для предотвращения изменения. При блокировке новые параметры не применяются к работающему сеансу.2977Hooks ConfigChange могут блокировать изменения конфигурации от вступления в силу. Используйте код выхода 2 или JSON `decision` для предотвращения изменения. При блокировке новые параметры не применяются к работающему сеансу.


2979}2988}

2980```2989```

2981 2990 

2982Изменения `policy_settings` не могут быть заблокированы. Hooks все еще срабатывают для источников `policy_settings`, когда файл управляемых параметров на машине изменяется, поэтому вы можете использовать их для логирования этих редактирований, но любое решение блокировки игнорируется. Это гарантирует, что параметры, управляемые предприятием, всегда вступают в силу. Claude Code не запускает hooks `ConfigChange`, когда прибывают или обновляются [параметры, управляемые сервером](/docs/ru/server-managed-settings).2991Изменения `policy_settings` не могут быть заблокированы. Hooks все еще срабатывают для источников `policy_settings`, когда файл управляемых параметров на машине изменяется, поэтому вы можете использовать их для логирования этих редактирований, но любое решение блокировки игнорируется. Это гарантирует, что параметры, управляемые предприятием, всегда вступают в силу. Claude Code не запускает hooks `ConfigChange`, когда прибывают [параметры, управляемые сервером](/docs/ru/server-managed-settings) или обновляются.

2983 2992 

2984Claude Code действует на решение блокировки из JSON-вывода hook ConfigChange и отбрасывает `systemMessage` и `continue`. Заблокированное изменение не выводит никакого сообщения вам или Claude, независимо от того, блокируете ли вы с `reason` или с stderr при выходе 2. Claude Code только записывает строку в debug log.2993Claude Code действует на решение блокировки из вывода JSON hook ConfigChange и отбрасывает `systemMessage` и `continue`. Заблокированное изменение не выводит никакого сообщения вам или Claude, блокируете ли вы с `reason` или с stderr при выходе 2. Claude Code только записывает строку в debug log.

2985 2994 

2986<h3 id="cwdchanged">2995<h3 id="cwdchanged">

2987 CwdChanged2996 CwdChanged

2988</h3>2997</h3>

2989 2998 

2990Запускается, когда команда оболочки в основном разговоре изменяет рабочую директорию, например когда Claude выполняет команду `cd`. Используйте это для реакции на изменения директории: перезагрузка переменных окружения, активация цепочек инструментов для конкретного проекта или автоматический запуск скриптов настройки. Пары с [FileChanged](#filechanged) для инструментов, таких как [direnv](https://direnv.net/), которые управляют окружением для каждой директории.2999Запускается, когда команда оболочки в основном разговоре изменяет рабочую директорию, например когда Claude выполняет команду `cd`. Используйте это для реакции на изменения директории: перезагрузка переменных окружения, активация цепочек инструментов, специфичных для проекта, или автоматический запуск скриптов настройки. Пары с [FileChanged](#filechanged) для инструментов, таких как [direnv](https://direnv.net/), которые управляют окружением для каждой директории.

2991 3000 

2992Hooks CwdChanged имеют доступ к [`CLAUDE_ENV_FILE`](#persist-environment-variables). Переменные, записанные в этот файл, сохраняются в последующих командах Bash до следующего события CwdChanged, когда Claude Code их очищает.3001Hooks CwdChanged имеют доступ к [`CLAUDE_ENV_FILE`](#persist-environment-variables). Переменные, записанные в этот файл, сохраняются в последующих командах Bash до следующего события CwdChanged, когда Claude Code их очищает.

2993 3002 

2994CwdChanged не поддерживает matchers и срабатывает при каждом возникновении.3003CwdChanged не поддерживает matchers и срабатывает при каждом возникновении.

2995 3004 

2996<h4 id="cwdchanged-input">3005<h4 id="cwdchanged-input">

2997 Ввод CwdChanged3006 CwdChanged input

2998</h4>3007</h4>

2999 3008 

3000Помимо [общих полей ввода](#common-input-fields), hooks CwdChanged получают `old_cwd` и `new_cwd`.3009Помимо [общих полей ввода](#common-input-fields), hooks CwdChanged получают `old_cwd` и `new_cwd`.


3011```3020```

3012 3021 

3013<h4 id="cwdchanged-output">3022<h4 id="cwdchanged-output">

3014 Вывод CwdChanged3023 CwdChanged output

3015</h4>3024</h4>

3016 3025 

3017Помимо [полей JSON-вывода](#json-output), доступных всем hooks, hooks CwdChanged могут вернуть `watchPaths` для динамической установки того, какие пути файлов [FileChanged](#filechanged) отслеживает:3026Помимо [полей вывода JSON](#json-output), доступных всем hooks, hooks CwdChanged могут вернуть `watchPaths` для динамической установки того, какие пути файлов [FileChanged](#filechanged) наблюдает:

3018 3027 

3019| Поле | Описание |3028| Поле | Описание |

3020| :- | :- |3029| :- | :- |

3021| `watchPaths` | Массив абсолютных путей. Заменяет текущий динамический список отслеживания. Пути из конфигурации вашего `matcher` всегда отслеживаются. Возврат пустого массива очищает динамический список, что типично при входе в новую директорию |3030| `watchPaths` | Массив абсолютных путей. Заменяет текущий динамический список наблюдения. Пути из конфигурации вашего `matcher` всегда наблюдаются. Возврат пустого массива очищает динамический список, что типично при входе в новую директорию |

3022 3031 

3023Hooks CwdChanged не имеют управления решением. Они не могут блокировать изменение директории.3032Hooks CwdChanged не имеют управления решениями. Они не могут блокировать изменение директории.

3024 3033 

3025Claude Code читает `watchPaths` и `systemMessage` из их JSON-вывода и отбрасывает `continue`. В интерактивных сеансах он показывает `systemMessage` как краткое уведомление терминала. Сообщение не достигает потока сообщений SDK.3034Claude Code читает `watchPaths` и `systemMessage` из их вывода JSON и отбрасывает `continue`. В интерактивных сеансах он показывает `systemMessage` как краткое уведомление терминала. Сообщение не достигает потока сообщений SDK.

3026 3035 

3027<h3 id="directoryadded">3036<h3 id="directoryadded">

3028 DirectoryAdded3037 DirectoryAdded

3029</h3>3038</h3>

3030 3039 

3031Запускается после добавления рабочей директории во время сеанса с командой `/add-dir` или после добавления клиентом SDK с запросом управления `register_repo_root`. Используйте это для подготовки вновь добавленного репозитория, например установки его зависимостей.3040Запускается после добавления рабочей директории во время сеанса с командой `/add-dir` или после добавления клиентом SDK с запросом управления `register_repo_root`. Используйте это для подготовки вновь добавленного репозитория, например, установки его зависимостей.

3032 3041 

3033Claude Code не срабатывает это событие, когда:3042Claude Code не срабатывает это событие, когда:

3034 3043 

3035* Вы передаете директорию с флагом запуска `--add-dir`; [SessionStart](#sessionstart) охватывает эти директории3044* Вы передаете директорию с флагом запуска `--add-dir`; [SessionStart](#sessionstart) охватывает эти директории

3036* Вы добавляете директорию на вкладку `/permissions` Workspace3045* Вы добавляете директорию на вкладку Workspace `/permissions`

3037* Вы добавляете директорию, которая уже является рабочей директорией или находится внутри одной3046* Вы добавляете директорию, которая уже является рабочей директорией или находится внутри одной

3038 3047 

3039Claude Code срабатывает DirectoryAdded после обновления состояния sandbox и разрешений, поэтому изолированные инструменты уже видят новую директорию, когда выполняется ваш hook. Команды hook сами выполняются без изоляции.3048Claude Code срабатывает DirectoryAdded после обновления состояния sandbox и разрешений, поэтому изолированные инструменты уже видят новую директорию, когда запускается ваш hook. Команды hook сами выполняются без изоляции.

3040 3049 

3041Claude Code не ждет hook: добавление завершается немедленно, и hook выполняется в фоновом режиме с тайм-аутом по умолчанию 600 секунд.3050Claude Code не ждет hook: добавление завершается немедленно, и hook выполняется в фоне с тайм-аутом по умолчанию 600 секунд.

3042 3051 

3043Matcher фильтрует по тому, как была добавлена директория:3052Matcher фильтрует по тому, как была добавлена директория:

3044 3053 


3048| `register_repo_root` | Клиент SDK добавляет директорию с запросом управления `register_repo_root` |3057| `register_repo_root` | Клиент SDK добавляет директорию с запросом управления `register_repo_root` |

3049 3058 

3050<h4 id="directoryadded-input">3059<h4 id="directoryadded-input">

3051 Ввод DirectoryAdded3060 DirectoryAdded input

3052</h4>3061</h4>

3053 3062 

3054Помимо [общих полей ввода](#common-input-fields), hooks DirectoryAdded получают `directory` и `source`.3063Помимо [общих полей ввода](#common-input-fields), hooks DirectoryAdded получают `directory` и `source`.


3069}3078}

3070```3079```

3071 3080 

3072Hooks DirectoryAdded не имеют управления решением. Они не могут блокировать добавление, которое уже завершилось. Claude Code отбрасывает поле `continue` из их JSON-вывода и выводит остальное по-разному в зависимости от источника:3081Hooks DirectoryAdded не имеют управления решениями. Они не могут блокировать добавление, которое уже завершилось, когда выполняется hook. Claude Code отбрасывает поле `continue` из их вывода JSON и выводит остальное по-разному в зависимости от источника:

3073 3082 

3074* `slash_command`: Claude Code доставляет `systemMessage` hook Claude как контекст на следующем ходе разговора, а не показывает вам. Количество неудачных hooks появляется в транскрипте. Полный вывод сбоя идет в debug log3083* `slash_command`: Claude Code доставляет `systemMessage` hook Claude как контекст на следующем ходе разговора, а не показывает вам. Количество неудачных hooks появляется в транскрипте. Полный вывод сбоя идет в debug log

3075* `register_repo_root`: Claude Code записывает вывод `systemMessage` и вывод сбоя только в debug log3084* `register_repo_root`: Claude Code пишет вывод `systemMessage` и вывод сбоя только в debug log

3076 3085 

3077<h3 id="filechanged">3086<h3 id="filechanged">

3078 FileChanged3087 FileChanged

3079</h3>3088</h3>

3080 3089 

3081Запускается, когда отслеживаемый файл изменяется на диске. Claude Code обнаруживает изменения с помощью наблюдателя файловой системы, а не путем проверки вызовов инструментов, поэтому он запускает hook независимо от того, что изменило файл: вызов инструмента `Edit` или `Write`, скрипт, который Claude запускает с `Bash`, или процесс вне Claude Code полностью. Обычное использование — перезагрузка переменных окружения при изменении файлов конфигурации проекта.3090Запускается, когда наблюдаемый файл изменяется на диске. Claude Code обнаруживает изменения с помощью наблюдателя файловой системы, а не путем проверки вызовов инструментов, поэтому он запускает hook независимо от того, что изменило файл: вызов инструмента `Edit` или `Write`, скрипт, который Claude запускает с `Bash`, или процесс вне Claude Code полностью. Обычное использование — перезагрузка переменных окружения, когда изменяются файлы конфигурации проекта.

3082 3091 

3083`matcher` для этого события служит двум целям:3092`matcher` для этого события служит двум целям:

3084 3093 

3085* **Построить список отслеживания**: значение разделяется на `|` и каждый сегмент регистрируется как буквальное имя файла в рабочей директории, поэтому `".envrc|.env"` отслеживает ровно эти два файла. Шаблоны regex не полезны здесь: значение, такое как `^\.env`, отслеживало бы файл буквально названный `^\.env`.3094* **Построение списка наблюдения**: значение разделяется на `|` и каждый сегмент регистрируется как буквальное имя файла в рабочей директории, поэтому `".envrc|.env"` наблюдает ровно эти два файла. Шаблоны regex не полезны здесь: значение, такое как `^\.env`, наблюдало бы файл буквально названный `^\.env`.

3086* **Фильтровать, какие hooks запускаются**: когда отслеживаемый файл изменяется, то же значение фильтрует, какие группы hook запускаются, используя стандартные [правила matcher](#matcher-patterns) против базового имени измененного файла.3095* **Фильтрация, какие hooks запускаются**: когда наблюдаемый файл изменяется, то же значение фильтрует, какие группы hook запускаются, используя стандартные [правила matcher](#matcher-patterns) против базового имени измененного файла.

3087 3096 

3088Этот пример нормализует окончания строк в `data.csv` после любого изменения, включая команду `Bash` или внешний скрипт, переписывающий файл:3097Этот пример нормализует окончания строк в `data.csv` после любого изменения, включая команду `Bash` или внешний скрипт, переписывающий файл:

3089 3098 


3105}3114}

3106```3115```

3107 3116 

3108Hook читает абсолютный путь измененного файла из поля `file_path` JSON-ввода на stdin. Его охрана `grep` тестирует то же самое, что `perl` удаляет, CR в конце строки, поэтому запуск после нормализации выходит без касания файла. Более слабая охрана зацикливается навсегда, потому что `perl -i` переписывает файл, даже когда он ничего не заменяет, и Claude Code запускает hook снова после каждой переписи. Сохраните этот скрипт в `/path/to/normalize-line-endings.sh` и сделайте его исполняемым:3117Hook читает абсолютный путь измененного файла из поля `file_path` [JSON ввода](#filechanged-input) из stdin. Его охрана `grep` тестирует то же самое, что `perl` удаляет, CR в конце строки, поэтому запуск после нормализации выходит без касания файла. Более слабая охрана зацикливается навсегда, потому что `perl -i` переписывает файл, даже когда он ничего не заменяет, и Claude Code запускает hook снова после каждой переписи. Сохраните этот скрипт в `/path/to/normalize-line-endings.sh` и сделайте его исполняемым:

3109 3118 

3110```bash theme={null}3119```bash theme={null}

3111#!/bin/bash3120#!/bin/bash


3117 3126 

3118Чтобы подтвердить, что hook работает, попросите Claude добавить строку CRLF в `data.csv` с командой `Bash`. Claude Code запускает hook и файл заканчивается с окончаниями LF.3127Чтобы подтвердить, что hook работает, попросите Claude добавить строку CRLF в `data.csv` с командой `Bash`. Claude Code запускает hook и файл заканчивается с окончаниями LF.

3119 3128 

3120Чтобы отслеживать файлы, которые вы не можете назвать заранее, верните [`watchPaths`](#filechanged-output) из hook для динамического обновления списка отслеживания. Claude Code запускает наблюдатель только, когда что-то называет файл для отслеживания, поэтому заполните список группой FileChanged, чей matcher называет по крайней мере один файл, или с hook [SessionStart](#sessionstart-decision-control) или [CwdChanged](#cwdchanged), который возвращает `watchPaths`. Matcher все еще фильтрует, какие группы hook запускаются, когда отслеживаемый файл изменяется, поэтому дайте группе, которая обрабатывает динамические пути, опущенный matcher, который совпадает с каждым отслеживаемым файлом и ничего не добавляет в список отслеживания. Matcher `"*"` также совпадает с каждым файлом, но Claude Code регистрирует его в списке отслеживания, как любое другое значение, как буквальный файл названный `*`.3129Чтобы наблюдать файлы, которые вы не можете назвать заранее, верните [`watchPaths`](#filechanged-output) из hook для динамического обновления списка наблюдения. Claude Code запускает наблюдатель только, когда что-то называет файл для наблюдения, поэтому посейте список с группой FileChanged, чей matcher называет по крайней мере один файл, или с hook [SessionStart](#sessionstart-decision-control) или [CwdChanged](#cwdchanged), который возвращает `watchPaths`. Matcher все еще фильтрует, какие группы hook запускаются, когда наблюдаемый файл изменяется, поэтому дайте группе, которая обрабатывает динамические пути, опущенный matcher, который совпадает с каждым наблюдаемым файлом и ничего не добавляет в список наблюдения. Matcher `"*"` также совпадает с каждым файлом, но Claude Code регистрирует его в списке наблюдения, как любое другое значение, как буквальный файл с именем `*`.

3121 3130 

3122Hooks FileChanged имеют доступ к [`CLAUDE_ENV_FILE`](#persist-environment-variables). Переменные, записанные в этот файл, сохраняются в последующих командах Bash до следующего события [CwdChanged](#cwdchanged), когда Claude Code их очищает.3131Hooks FileChanged имеют доступ к [`CLAUDE_ENV_FILE`](#persist-environment-variables). Переменные, записанные в этот файл, сохраняются в последующих командах Bash до следующего события [CwdChanged](#cwdchanged), когда Claude Code их очищает.

3123 3132 

3124<h4 id="filechanged-input">3133<h4 id="filechanged-input">

3125 Ввод FileChanged3134 FileChanged input

3126</h4>3135</h4>

3127 3136 

3128Помимо [общих полей ввода](#common-input-fields), hooks FileChanged получают `file_path` и `event`.3137Помимо [общих полей ввода](#common-input-fields), hooks FileChanged получают `file_path` и `event`.


3144```3153```

3145 3154 

3146<h4 id="filechanged-output">3155<h4 id="filechanged-output">

3147 Вывод FileChanged3156 FileChanged output

3148</h4>3157</h4>

3149 3158 

3150Помимо [полей JSON-вывода](#json-output), доступных всем hooks, hooks FileChanged могут вернуть `watchPaths` для динамического обновления того, какие пути файлов отслеживаются:3159Помимо [полей вывода JSON](#json-output), доступных всем hooks, hooks FileChanged могут вернуть `watchPaths` для динамического обновления того, какие пути файлов наблюдаются:

3151 3160 

3152| Поле | Описание |3161| Поле | Описание |

3153| :- | :- |3162| :- | :- |

3154| `watchPaths` | Массив абсолютных путей. Заменяет текущий динамический список отслеживания. Пути из конфигурации вашего `matcher` всегда отслеживаются. Используйте это, когда ваш скрипт hook обнаруживает дополнительные файлы для отслеживания на основе измененного файла |3163| `watchPaths` | Массив абсолютных путей. Заменяет текущий динамический список наблюдения. Пути из конфигурации вашего `matcher` всегда наблюдаются. Используйте это, когда ваш скрипт hook обнаруживает дополнительные файлы для наблюдения на основе измененного файла |

3155 3164 

3156Hooks FileChanged не имеют управления решением. Они не могут блокировать изменение файла от возникновения.3165Hooks FileChanged не имеют управления решениями. Они не могут блокировать изменение файла от возникновения.

3157 3166 

3158Claude Code читает `watchPaths` и `systemMessage` из их JSON-вывода и отбрасывает `continue`. В интерактивных сеансах он показывает `systemMessage` как краткое уведомление терминала. Сообщение не достигает потока сообщений SDK.3167Claude Code читает `watchPaths` и `systemMessage` из их вывода JSON и отбрасывает `continue`. В интерактивных сеансах он показывает `systemMessage` как краткое уведомление терминала. Сообщение не достигает потока сообщений SDK.

3159 3168 

3160<h3 id="worktreecreate">3169<h3 id="worktreecreate">

3161 WorktreeCreate3170 WorktreeCreate

3162</h3>3171</h3>

3163 3172 

3164Запускается, когда создается worktree, будь то из `claude --worktree`, из [подагента, использующего `isolation: "worktree"`](/docs/ru/sub-agents#choose-the-subagent-scope), или для [фонового сеанса](/docs/ru/agent-view#how-file-edits-are-isolated), который Claude Code изолирует в своем собственном worktree. По умолчанию Claude Code создает изолированную рабочую копию с `git worktree`. Настройка hook WorktreeCreate заменяет это поведение git по умолчанию, позволяя вам использовать другую систему контроля версий, такую как SVN, Perforce или Mercurial.3173Запускается, когда создается worktree, будь то из `claude --worktree`, из [подагента, использующего `isolation: "worktree"`](/docs/ru/sub-agents#choose-the-subagent-scope) или для [фонового сеанса](/docs/ru/agent-view#how-file-edits-are-isolated), который Claude Code изолирует в своем собственном worktree. По умолчанию Claude Code создает изолированную рабочую копию с `git worktree`. Настройка hook WorktreeCreate заменяет это поведение git по умолчанию, позволяя вам использовать другую систему контроля версий, такую как SVN, Perforce или Mercurial.

3165 3174 

3166Поскольку hook заменяет поведение по умолчанию полностью, [`.worktreeinclude`](/docs/ru/worktrees#copy-gitignored-files-into-worktrees) не обрабатывается. Если вам нужно скопировать локальные файлы конфигурации, такие как `.env`, в новый worktree, сделайте это внутри вашего скрипта hook.3175Поскольку hook заменяет поведение по умолчанию полностью, [`.worktreeinclude`](/docs/ru/worktrees#copy-gitignored-files-into-worktrees) не обрабатывается. Если вам нужно скопировать локальные файлы конфигурации, такие как `.env`, в новый worktree, сделайте это внутри вашего скрипта hook.

3167 3176 


3188}3197}

3189```3198```

3190 3199 

3191Hook читает `name` worktree из JSON-ввода на stdin, проверяет свежую копию в новую директорию и выводит путь директории. `echo` на последней строке — это то, что Claude Code читает как путь worktree. Перенаправьте любой другой вывод в stderr, чтобы он не мешал пути.3200Hook читает `name` worktree из JSON ввода на stdin, проверяет свежую копию в новую директорию и выводит путь директории. `echo` на последней строке — это то, что Claude Code читает как путь worktree. Перенаправьте любой другой вывод в stderr, чтобы он не мешал пути.

3192 3201 

3193<h4 id="worktreecreate-input">3202<h4 id="worktreecreate-input">

3194 Ввод WorktreeCreate3203 WorktreeCreate input

3195</h4>3204</h4>

3196 3205 

3197Помимо [общих полей ввода](#common-input-fields), hooks WorktreeCreate получают поле `name`. Это идентификатор slug для нового worktree, либо указанный пользователем, либо автоматически сгенерированный, например `bold-oak-a3f2`.3206Помимо [общих полей ввода](#common-input-fields), hooks WorktreeCreate получают поле `name`. Это идентификатор slug для нового worktree, либо указанный пользователем, либо автоматически сгенерированный, например `bold-oak-a3f2`.


3207```3216```

3208 3217 

3209<h4 id="worktreecreate-output">3218<h4 id="worktreecreate-output">

3210 Вывод WorktreeCreate3219 WorktreeCreate output

3211</h4>3220</h4>

3212 3221 

3213Hooks WorktreeCreate не используют стандартную модель решения разрешить/блокировать. Вместо этого успех или сбой hook определяет результат. Hook должен вернуть путь к созданной директории worktree:3222Hooks WorktreeCreate не используют стандартную модель решения разрешить/заблокировать. Вместо этого успех или сбой hook определяет результат. Hook должен вернуть путь к созданной директории worktree:

3214 3223 

3215* **Command hooks** (`type: "command"`): выведите путь как последнюю непустую строку stdout. Claude Code удаляет коды ANSI перед чтением этой строки, поэтому баннеры запуска оболочки, выведенные перед вашим `echo`, игнорируются. Перенаправьте любой другой вывод hook в stderr.3224* **Hooks команды** (`type: "command"`): выведите путь как последнюю непустую строку stdout. Claude Code удаляет коды ANSI перед чтением этой строки, поэтому баннеры запуска оболочки, выведенные перед вашим `echo`, игнорируются. Перенаправьте любой другой вывод hook в stderr.

3216* **HTTP hooks** (`type: "http"`): верните `{ "hookSpecificOutput": { "hookEventName": "WorktreeCreate", "worktreePath": "/absolute/path" } }` в теле ответа.3225* **HTTP hooks** (`type: "http"`): верните `{ "hookSpecificOutput": { "hookEventName": "WorktreeCreate", "worktreePath": "/absolute/path" } }` в теле ответа.

3217 3226 

3218Если hook не удается или не создает путь, создание worktree не удается с ошибкой.3227Если hook не удается или не создает путь, создание worktree не удается с ошибкой.

3219 3228 

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

3221 3230 

3222Claude Code отказывает абсолютному пути, который содержит сегменты `.` или `..`, и любому пути, который проходит через символическую ссылку ниже корня репозитория, потому что символическая ссылка, зафиксированная в репозитории, может перенаправить worktree вне его. Ошибка называет отклоненный компонент. Верните нормализованный путь, который не проходит через символическую ссылку внутри репозитория. До версии 2.1.216 создание worktree следовало пути hook без этого скрининга.3231Claude Code отказывает абсолютному пути, который содержит сегменты `.` или `..`, и любому пути, который проходит через символическую ссылку ниже корня репозитория, потому что символическая ссылка, зафиксированная в репозитории, может перенаправить worktree вне его. Ошибка называет отклоненный компонент. Верните нормализованный путь, который не проходит через символическую ссылку внутри репозитория. До версии 2.1.216 создание worktree следовало пути hook без этого скрининга.

3223 3232 


3225 WorktreeRemove3234 WorktreeRemove

3226</h3>3235</h3>

3227 3236 

3228Запускается, когда worktree удаляется. Это очистка, соответствующая [WorktreeCreate](#worktreecreate). Событие срабатывает, когда:3237Запускается, когда worktree удаляется. Это парный hook очистки для [WorktreeCreate](#worktreecreate). Событие срабатывает, когда:

3229 3238 

3230* вы выходите из сеанса `--worktree` и выбираете его удаление3239* вы выходите из сеанса `--worktree` и выбираете его удаление

3231* подагент с `isolation: "worktree"` завершается3240* подагент с `isolation: "worktree"` завершается

3232* вы удаляете [фоновый сеанс](/docs/ru/agent-view#what-deleting-a-session-removes), чей worktree создал hook3241* вы удаляете [фоновый сеанс](/docs/ru/agent-view#what-deleting-a-session-removes), чей worktree создал hook

3233 3242 

3234Для git-based worktrees Claude Code обрабатывает очистку автоматически с `git worktree remove`. Если вы настроили hook WorktreeCreate для системы контроля версий, не основанной на git, свяжите его с hook WorktreeRemove для обработки очистки. Без него директория worktree остается на диске.3243Для git-based worktrees Claude Code обрабатывает очистку автоматически с `git worktree remove`. Если вы настроили hook WorktreeCreate, свяжите его с hook WorktreeRemove для управления очисткой worktrees, которые он создает:

3244 

3245* **Нет hook WorktreeRemove**: когда вы выходите из сеанса `--worktree` и выбираете удаление, Claude Code возвращается к `git worktree remove --force` на пути, который вернул ваш hook WorktreeCreate, поэтому worktree, который git узнает, удаляется. Worktree, который git не узнает, например тот, который ваш hook создал с системой контроля версий, отличной от git, остается на диске. Для того, что удаление [фонового сеанса](/docs/ru/agent-view#what-deleting-a-session-removes) делает с hook-созданным worktree, см. правила удаления agent view.

3246* **Hook выходит 0**: worktree считается удаленным. Claude Code ничего больше не читает из hook, поэтому убедитесь, что ваш hook удалил директорию.

3247* **Hook выходит не-нулевой**: удаление не удается, если директория в `worktree_path` все еще существует после этого, и worktree остается на диске без fallback git. Hook, который удалил директорию перед выходом не-нулевой, считается удаленным. Для того, как сбой сообщается, см. [WorktreeRemove input](#worktreeremove-input).

3248 

3249Claude Code никогда не удаляет ветку, принадлежащую hook-созданному worktree, потому что он знает только путь, который вернул ваш hook WorktreeCreate. Если ваш hook WorktreeCreate создает ветку, удалите ее в вашем hook WorktreeRemove.

3235 3250 

3236Claude Code отбрасывает [поля JSON-вывода](#json-output) hook WorktreeRemove, такие как `systemMessage` и `continue`.3251Claude Code отбрасывает [поля вывода JSON](#json-output) hook WorktreeRemove, такие как `systemMessage` и `continue`.

3237 3252 

3238Для удаления фонового сеанса Claude Code проверяет сохраненный путь worktree перед запуском hook и отказывает пути, который является символической ссылкой или проходит через одну ниже корня репозитория. Hook запускается для worktree, который все еще содержит файлы только, когда вы подтверждаете удаление в [agent view](/docs/ru/agent-view#what-deleting-a-session-removes); для такого worktree [`claude rm`](/docs/ru/agent-view#manage-sessions-from-the-shell) сохраняет сеанс и worktree вместо этого. До версии 2.1.216 hook запускался на сохраненном пути без этих проверок.3253Для удаления фонового сеанса Claude Code проверяет сохраненный путь worktree перед запуском hook и отказывает пути, который является символической ссылкой или проходит через одну ниже корня репозитория. Hook запускается для worktree, который все еще содержит файлы, только когда вы подтверждаете удаление в [agent view](/docs/ru/agent-view#what-deleting-a-session-removes); для такого worktree [`claude rm`](/docs/ru/agent-view#manage-sessions-from-the-shell) сохраняет сеанс и worktree вместо этого. До версии 2.1.216 hook запускался на сохраненном пути без этих проверок.

3239 3254 

3240Claude Code передает путь, возвращенный WorktreeCreate, как `worktree_path` в ввод hook. Этот пример читает этот путь и удаляет директорию:3255Claude Code передает путь, возвращенный WorktreeCreate, как `worktree_path` в ввод hook. Этот пример читает этот путь и удаляет директорию:

3241 3256 


3257```3272```

3258 3273 

3259<h4 id="worktreeremove-input">3274<h4 id="worktreeremove-input">

3260 Ввод WorktreeRemove3275 WorktreeRemove input

3261</h4>3276</h4>

3262 3277 

3263Помимо [общих полей ввода](#common-input-fields), hooks WorktreeRemove получают поле `worktree_path`, которое является абсолютным путем к удаляемому worktree.3278Помимо [общих полей ввода](#common-input-fields), hooks WorktreeRemove получают поле `worktree_path`, которое является абсолютным путем к удаляемому worktree.


3272}3287}

3273```3288```

3274 3289 

3275Код выхода hook WorktreeRemove определяет результат. Когда hook выходит с ненулевым кодом и директория в `worktree_path` все еще существует после этого, удаление не удается:3290Код выхода hook WorktreeRemove определяет результат. Когда hook выходит не-нулевой и директория в `worktree_path` все еще существует после этого, удаление не удается:

3276 3291 

3277* Worktree остается на диске, и команда hook и stderr идут в [debug log](#debug-hooks).3292* Worktree остается на диске, и команда hook и stderr идут в [debug log](#debug-hooks).

3278* Если вы удаляли фоновый сеанс, сеанс остается тоже. Сообщение отказа в [agent view](/docs/ru/agent-view#what-deleting-a-session-removes) сообщает, как закончился hook, такой как `exited 1`, цитирует начало его stderr и говорит, удаляет ли удаление сеанса снова директорию в любом случае.3293* Если вы удаляли фоновый сеанс, сеанс остается тоже. Сообщение отказа в [agent view](/docs/ru/agent-view#what-deleting-a-session-removes) сообщает, как закончился hook, такой как `exited 1`, цитирует начало его stderr и говорит, удалит ли удаление сеанса снова директорию в любом случае.

3279 3294 

3280<h3 id="precompact">3295<h3 id="precompact">

3281 PreCompact3296 PreCompact


3290| `manual` | `/compact` |3305| `manual` | `/compact` |

3291| `auto` | Auto-compact, когда разговор достигает [окна auto-compact](/docs/ru/model-config#set-the-auto-compact-window) |3306| `auto` | Auto-compact, когда разговор достигает [окна auto-compact](/docs/ru/model-config#set-the-auto-compact-window) |

3292 3307 

3293Выйдите с кодом 2 для блокировки сжатия. Для ручного `/compact` сообщение stderr показывается пользователю. Вы также можете блокировать, возвращая JSON с `"decision": "block"`.3308Выйдите с кодом 2 для блокировки сжатия. Для ручного `/compact` сообщение stderr показывается пользователю. Вы также можете заблокировать, возвращая JSON с `"decision": "block"`.

3294 3309 

3295Блокировка автоматического сжатия имеет разные эффекты в зависимости от того, когда оно срабатывает. Если сжатие было запущено упреждающе перед пределом контекста, Claude Code пропускает его и разговор продолжается несжатым. Если сжатие было запущено для восстановления от ошибки лимита контекста, уже возвращенной API, основная ошибка выводится и текущий запрос не удается.3310Блокировка автоматического сжатия имеет разные эффекты в зависимости от того, когда оно срабатывает. Если сжатие было запущено проактивно перед пределом контекста, Claude Code пропускает его и разговор продолжается несжатым. Если сжатие было запущено для восстановления от ошибки лимита контекста, уже возвращенной API, основная ошибка выводится и текущий запрос не удается.

3296 3311 

3297Claude Code отбрасывает поля `systemMessage` и `continue` hook PreCompact.3312Claude Code отбрасывает поля `systemMessage` и `continue` hook PreCompact.

3298 3313 

3299<h4 id="precompact-input">3314<h4 id="precompact-input">

3300 Ввод PreCompact3315 PreCompact input

3301</h4>3316</h4>

3302 3317 

3303Помимо [общих полей ввода](#common-input-fields), hooks PreCompact получают `trigger` и `custom_instructions`. Для `manual`, `custom_instructions` содержит то, что пользователь передает в `/compact` и имеет значение `null`, когда они ничего не передают. Для `auto`, `custom_instructions` имеет значение `null`.3318Помимо [общих полей ввода](#common-input-fields), hooks PreCompact получают `trigger` и `custom_instructions`. Для `manual`, `custom_instructions` содержит то, что пользователь передает в `/compact` и является `null`, когда они ничего не передают. Для `auto`, `custom_instructions` — это `null`.

3304 3319 

3305```json theme={null}3320```json theme={null}

3306{3321{


3317 PostCompact3332 PostCompact

3318</h3>3333</h3>

3319 3334 

3320Запускается после завершения операции compact Claude Code. Используйте это событие для реакции на новое сжатое состояние, например для логирования сгенерированного резюме или обновления внешнего состояния. Claude Code отбрасывает поля `systemMessage` и `continue` hook PostCompact.3335Запускается после завершения Claude Code операции compact. Используйте это событие для реакции на новое сжатое состояние, например для логирования сгенерированного резюме или обновления внешнего состояния. Claude Code отбрасывает поля `systemMessage` и `continue` hook PostCompact.

3321 3336 

3322Те же значения matcher применяются, как для `PreCompact`:3337Те же значения matcher применяются, как для `PreCompact`:

3323 3338 


3327| `auto` | После auto-compact, когда разговор достигает [окна auto-compact](/docs/ru/model-config#set-the-auto-compact-window) |3342| `auto` | После auto-compact, когда разговор достигает [окна auto-compact](/docs/ru/model-config#set-the-auto-compact-window) |

3328 3343 

3329<h4 id="postcompact-input">3344<h4 id="postcompact-input">

3330 Ввод PostCompact3345 PostCompact input

3331</h4>3346</h4>

3332 3347 

3333Помимо [общих полей ввода](#common-input-fields), hooks PostCompact получают `trigger` и `compact_summary`. Поле `compact_summary` содержит резюме разговора, сгенерированное операцией compact.3348Помимо [общих полей ввода](#common-input-fields), hooks PostCompact получают `trigger` и `compact_summary`. Поле `compact_summary` содержит резюме разговора, сгенерированное операцией compact.


3343}3358}

3344```3359```

3345 3360 

3346Hooks PostCompact не имеют управления решением. Они не могут влиять на результат сжатия, но могут выполнять последующие задачи.3361Hooks PostCompact не имеют управления решениями. Они не могут влиять на результат сжатия, но могут выполнять последующие задачи.

3347 3362 

3348<h3 id="premodelswitch">3363<h3 id="premodelswitch">

3349 PreModelSwitch3364 PreModelSwitch

3350</h3>3365</h3>

3351 3366 

3352Запускается перед применением переключения модели, которое вы или клиент запросили. Используйте это для блокировки переключения, требования подтверждения или показа стоимости переключения перед его выполнением.3367Запускается перед применением Claude Code переключения модели, которое вы или клиент запросили. Используйте это для блокировки переключения, требования подтверждения или показа того, что переключение будет стоить, перед его возникновением.

3353 3368 

3354PreModelSwitch требует Claude Code v2.1.251 или позже. Claude Code запускает его для этих запросов:3369PreModelSwitch требует Claude Code v2.1.251 или позже. Claude Code запускает его для этих запросов:

3355 3370 


3359* Включение [fast mode](/docs/ru/fast-mode), когда это изменяет модель сеанса3374* Включение [fast mode](/docs/ru/fast-mode), когда это изменяет модель сеанса

3360* Запрос `set_model` или изменение модели в запросе `apply_flag_settings` от хоста [Agent SDK](/docs/ru/agent-sdk/typescript#query-object) или [Remote Control](/docs/ru/remote-control)3375* Запрос `set_model` или изменение модели в запросе `apply_flag_settings` от хоста [Agent SDK](/docs/ru/agent-sdk/typescript#query-object) или [Remote Control](/docs/ru/remote-control)

3361 3376 

3362Claude Code не запускает hooks PreModelSwitch для переключений, которые он делает самостоятельно, такие как [автоматический fallback модели](/docs/ru/model-config#automatic-model-fallback) или восстановление модели при возобновлении сеанса. Эти изменения достигают [PostModelSwitch](#postmodelswitch) только.3377Claude Code не запускает hooks PreModelSwitch для переключений, которые он делает сам, такие как [автоматический fallback модели](/docs/ru/model-config#automatic-model-fallback) или восстановление модели при возобновлении сеанса. Эти изменения достигают [PostModelSwitch](#postmodelswitch) только.

3363 3378 

3364Claude Code сравнивает matcher против канонического имени модели, на которую сеанс переключается, игнорируя любой суффикс `[1m]`. Псевдоним, такой как `opus`, датированный ID модели и ID, специфичный для поставщика, такой как ID модели Amazon Bedrock, все совпадают с одним каноническим именем, на которое они разрешаются, поэтому `claude-opus-5` охватывает каждое написание Opus 5.3379Claude Code сравнивает matcher против канонического имени модели, на которую сеанс переключается, игнорируя любой суффикс `[1m]`. Псевдоним, такой как `opus`, датированный ID модели и ID, специфичный для провайдера, такой как ID модели Amazon Bedrock, все совпадают с одним каноническим именем, на которое они разрешаются, поэтому `claude-opus-5` охватывает каждое написание Opus 5.

3365 3380 

3366Когда Claude Code не может определить каноническое имя для цели, например пользовательский ID модели, который знает только ваш [LLM gateway](/docs/ru/llm-gateway), он запускает каждый hook PreModelSwitch независимо от matcher. Hook, который блокирует, должен поэтому проверить `to_model` из своего ввода, а не полагаться только на matcher.3381Когда Claude Code не может определить каноническое имя для цели, например пользовательский ID модели, который знает только ваш [LLM gateway](/docs/ru/llm-gateway), он запускает каждый hook PreModelSwitch независимо от matcher. Hook, который блокирует, должен поэтому проверить `to_model` из его ввода, а не полагаться только на matcher.

3367 3382 

3368Напишите matcher как точное имя, список, разделенный `|`, такой как `claude-opus-4-6|claude-opus-5`, или регулярное выражение, такое как `.*opus.*`. Этот пример использует matcher точного имени и также проверяет `to_model` из ввода hook, поэтому он отказывает переключению на Opus 4.6 выходом 2 и позволяет любой другой цели пройти:3383Напишите matcher как точное имя, список, разделенный `|`, такой как `claude-opus-4-6|claude-opus-5`, или регулярное выражение, такое как `.*opus.*`. Этот пример использует matcher точного имени и также проверяет `to_model` из ввода hook, поэтому он отказывает переключению на Opus 4.6, выходя с кодом 2, и позволяет любой другой цели пройти:

3369 3384 

3370<Tabs>3385<Tabs>

3371 <Tab title="macOS/Linux">3386 <Tab title="macOS/Linux">


3391 </Tab>3406 </Tab>

3392 3407 

3393 <Tab title="Windows (PowerShell)">3408 <Tab title="Windows (PowerShell)">

3394 Зарегистрируйте command hook, который запускает скрипт через PowerShell:3409 Зарегистрируйте hook команды, который запускает скрипт через PowerShell:

3395 3410 

3396 ```json theme={null}3411 ```json theme={null}

3397 {3412 {


3431 </Tab>3446 </Tab>

3432</Tabs>3447</Tabs>

3433 3448 

3434Чтобы подтвердить, что hook работает, запустите `/model claude-opus-4-6` из сеанса, работающего на другой модели. Claude Code сохраняет текущую модель и сообщает, что hook PreModelSwitch заблокировал переключение, с вашим сообщением как причиной.3449Чтобы подтвердить, что hook работает, запустите `/model claude-opus-4-6` из сеанса, запущенного на другой модели. Claude Code сохраняет текущую модель и сообщает, что hook PreModelSwitch заблокировал переключение, с вашим сообщением как причиной.

3435 3450 

3436<h4 id="premodelswitch-input">3451<h4 id="premodelswitch-input">

3437 Ввод PreModelSwitch3452 PreModelSwitch input

3438</h4>3453</h4>

3439 3454 

3440Помимо [общих полей ввода](#common-input-fields), hooks PreModelSwitch получают поля в этой таблице. Последние пять описывают, что стоит повторная отправка разговора на новую модель, поэтому hook может показать эту цифру перед переключением.3455Помимо [общих полей ввода](#common-input-fields), hooks PreModelSwitch получают поля в этой таблице. Последние пять описывают, что повторная отправка разговора на новую модель стоит, поэтому hook может показать эту цифру перед переключением.

3441 3456 

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

3443| :- | :- | :- |3458| :- | :- | :- |

3444| `from_model` | string | ID модели, на которую переключается |3459| `from_model` | string | ID модели, на которую переключается |

3445| `to_model` | string | ID модели, на которую переключается. Matcher сравнивает против канонического имени этой модели |3460| `to_model` | string | ID модели, на которую переключается. Matcher сравнивает против канонического имени этой модели |

3446| `requested_model` | string или `null` | Модель, которую назвал запрос: псевдоним, такой как `opus`, полный ID модели или `null`, когда запрос был для модели по умолчанию |3461| `requested_model` | string или `null` | Модель, которую запрос назвал: псевдоним, такой как `opus`, полный ID модели или `null`, когда запрос был для модели по умолчанию |

3447| `source` | string | Откуда пришел запрос: `"command"` для `/model <name>`, параметра Model в `/config` или включения fast mode; `"picker"` для средства выбора модели; `"sdk"` для запроса `set_model` или изменения модели в запросе `apply_flag_settings` от хоста Agent SDK или Remote Control |3462| `source` | string | Откуда пришел запрос: `"command"` для `/model <name>`, параметра Model в `/config` или включения fast mode; `"picker"` для средства выбора модели; `"sdk"` для запроса `set_model` или изменения модели в запросе `apply_flag_settings` от хоста Agent SDK или Remote Control |

3448| `context_tokens` | number | Токены, которые следующий запрос повторно отправляет как его подсказка: входные, кэш-чтение, кэш-создание и выходные токены последнего ответа в основном разговоре, в сумме. `0` перед первым ответом |3463| `context_tokens` | number | Токены, которые следующий запрос повторно отправляет как его подсказка: входные, кэш-чтение, кэш-создание и выходные токены последнего ответа в основном разговоре, в сумме. `0` перед первым ответом |

3449| `prompt_cache_warm` | boolean | Теплый ли кэш подсказок текущей модели, означая, что переключение его теряет |3464| `prompt_cache_warm` | boolean | Вероятно ли, что кэш подсказок текущей модели все еще теплый, означая, что переключение его теряет |

3450| `cache_ttl` | string | [Время жизни кэша подсказок](/docs/ru/prompt-caching#cache-lifetime), которое Claude Code запрашивает для этого сеанса: `"5m"` или `"1h"` |3465| `cache_ttl` | string | [Время жизни кэша подсказок](/docs/ru/prompt-caching#cache-lifetime), которое Claude Code запрашивает для этого сеанса: `"5m"` или `"1h"` |

3451| `estimated_cache_write_usd` | number | Предполагаемая стоимость в долларах США записи `context_tokens` в кэш подсказок на `to_model` при ставке `cache_ttl`, исключая следующий ответ. Сервер может не нуждаться в повторном кэшировании всего контекста, поэтому рассматривайте это как оценку |3466| `estimated_cache_write_usd` | number | Предполагаемая стоимость в долларах США записи `context_tokens` в кэш подсказок на `to_model` по ставке `cache_ttl`, исключая следующий ответ. Сервер может не нуждаться в повторном кэшировании всего контекста, поэтому рассматривайте это как оценку |

3452| `pricing` | string | Как Claude Code оценил `estimated_cache_write_usd`: `"configured"` по вашим собственным ставкам организации, когда она их настроила, `"catalog"` по цене списка или `"default"`, когда `to_model` не имеет известной цены и Claude Code предположил ставку по умолчанию |3467| `pricing` | string | Как Claude Code оценил `estimated_cache_write_usd`: `"configured"` по собственным ставкам вашей организации, когда она их настроила, `"catalog"` по цене списка или `"default"`, когда `to_model` не имеет известной цены и Claude Code предположил ставку по умолчанию |

3453 3468 

3454Этот пример показывает ввод для `/model opus` в сеансе, работающем на Sonnet 5:3469Этот пример показывает ввод для `/model opus` в сеансе, запущенном на Sonnet 5:

3455 3470 

3456```json theme={null}3471```json theme={null}

3457{3472{


3472```3487```

3473 3488 

3474<h4 id="premodelswitch-decision-control">3489<h4 id="premodelswitch-decision-control">

3475 Управление решением PreModelSwitch3490 Управление решениями PreModelSwitch

3476</h4>3491</h4>

3477 3492 

3478Hooks `PreModelSwitch` могут отменить переключение, попросить пользователя подтвердить его или позволить ему продолжить. Код выхода 2 или `decision: "block"` верхнего уровня отменяет переключение.3493Hooks `PreModelSwitch` могут отменить переключение, попросить пользователя подтвердить его или позволить ему продолжить. Код выхода 2 или `decision: "block"` верхнего уровня отменяет переключение.


3498}3513}

3499```3514```

3500 3515 

3501Когда несколько hooks PreModelSwitch возвращают разные решения, приоритет — `deny` > `ask` > `allow`.3516Когда несколько hooks PreModelSwitch возвращают разные решения, приоритет `deny` > `ask` > `allow`.

3502 3517 

3503Claude Code показывает пользователю любой `systemMessage`, который возвращает ваш hook, независимо от решения, поэтому hook отчета стоимости может вернуть `{"systemMessage": "..."}` и выйти 0.3518Claude Code показывает пользователю любой `systemMessage`, который возвращает ваш hook, независимо от решения, поэтому hook отчета о затратах может вернуть `{"systemMessage": "..."}` и выйти 0.

3504 3519 

3505Hook PreModelSwitch, который не отвечает перед своим тайм-аутом, блокирует переключение. На [PreToolUse](#timeouts), в отличие от этого, тайм-аут command hook позволяет вызову инструмента продолжить. Тайм-аут по умолчанию для этого события составляет 30 секунд. `PreModelSwitch` запускает только hooks `command`, `http` и `mcp_tool`, поэтому стандарты `prompt` и `agent` не применяются.3520Hook PreModelSwitch, который не отвечает перед своим тайм-аутом, блокирует переключение. На [PreToolUse](#timeouts), в отличие от этого, hook команды с истекшим временем позволяет вызову инструмента продолжить. Тайм-аут по умолчанию для этого события составляет 30 секунд. `PreModelSwitch` запускает только hooks `command`, `http` и `mcp_tool`, поэтому стандарты `prompt` и `agent` не применяются.

3506 3521 

3507Hook, который выходит с кодом, отличным от 0 или 2, и не выводит JSON решение, не блокирует: Claude Code показывает его stderr и применяет переключение, как описано в [Other exit codes](#other-exit-codes).3522Hook, который выходит с кодом, отличным от 0 или 2, и не выводит JSON решение, не блокирует: Claude Code показывает его stderr и применяет переключение, как описано в [Other exit codes](#other-exit-codes).

3508 3523 


3519* Параметр, такой как [`opusplan`](/docs/ru/model-config#opusplan-model-setting), входящий или выходящий из режима плана3534* Параметр, такой как [`opusplan`](/docs/ru/model-config#opusplan-model-setting), входящий или выходящий из режима плана

3520* Claude Code восстанавливает модель при возобновлении сеанса3535* Claude Code восстанавливает модель при возобновлении сеанса

3521 3536 

3522Claude Code не запускает hooks PostModelSwitch, когда модель из [цепочки fallback модели](/docs/ru/model-config#fallback-model-chains) обслуживает ход, потому что эта замена длится один ход и оставляет модель сеанса неизменной.3537Claude Code не запускает hooks PostModelSwitch, когда модель из [цепочки fallback модели](/docs/ru/model-config#fallback-model-chains) служит ходу, потому что эта замена длится один ход и оставляет модель сеанса неизменной.

3523 3538 

3524Matcher следует тем же правилам, что и [PreModelSwitch](#premodelswitch): Claude Code сравнивает его против канонического имени модели, на которую переключился сеанс.3539Matcher следует тем же правилам, что и [PreModelSwitch](#premodelswitch): Claude Code сравнивает его против канонического имени модели, на которую переключился сеанс.

3525 3540 


3543}3558}

3544```3559```

3545 3560 

3546Чтобы подтвердить, что hook работает, переключитесь на модель Opus из сеанса, работающего на другой модели, например запустите `/model opus` из сеанса Sonnet, затем спросите Claude, какое руководство оно имеет о текущей модели.3561Чтобы подтвердить, что hook работает, переключитесь на модель Opus из сеанса, запущенного на другой модели, например запустите `/model opus` из сеанса Sonnet, затем попросите Claude, какое руководство у него есть о текущей модели.

3547 3562 

3548<h4 id="postmodelswitch-input">3563<h4 id="postmodelswitch-input">

3549 Ввод PostModelSwitch3564 PostModelSwitch input

3550</h4>3565</h4>

3551 3566 

3552Hooks PostModelSwitch получают те же поля, что и [PreModelSwitch](#premodelswitch-input), с `hook_event_name`, установленным на `"PostModelSwitch"`, и двумя дополнительными значениями `source`: `"auto"` для автоматического fallback или другого изменения, которое Claude Code сделал самостоятельно, и `"resume"` для модели, восстановленной при возобновлении сеанса.3567Hooks PostModelSwitch получают те же поля, что и [PreModelSwitch](#premodelswitch-input), с `hook_event_name`, установленным на `"PostModelSwitch"`, и двумя дополнительными значениями `source`: `"auto"` для автоматического fallback или другого изменения, которое Claude Code сделал сам, и `"resume"` для модели, восстановленной при возобновлении сеанса.

3553 3568 

3554`requested_model` имеет значение `null`, когда `source` имеет значение `"auto"`. Когда `source` имеет значение `"resume"`, это сохраненный параметр модели, который Claude Code восстановил.3569`requested_model` — это `null`, когда `source` — это `"auto"`. Когда `source` — это `"resume"`, это сохраненный параметр модели, который Claude Code восстановил.

3555 3570 

3556<h4 id="postmodelswitch-decision-control">3571<h4 id="postmodelswitch-decision-control">

3557 Управление решением PostModelSwitch3572 Управление решениями PostModelSwitch

3558</h4>3573</h4>

3559 3574 

3560Claude Code берет ваш [простой текст stdout](#exit-code-0) hook при выходе 0 или `additionalContext` из JSON-вывода и доставляет его Claude со следующим запросом после переключения. Помимо [полей JSON-вывода](#json-output), доступных всем hooks, вы можете вернуть:3575Claude Code берет ваш [простой текст stdout](#exit-code-0) hook при выходе 0 или `additionalContext` из вывода JSON и доставляет его Claude со следующим запросом после переключения. Помимо [полей вывода JSON](#json-output), доступных всем hooks, вы можете вернуть:

3561 3576 

3562| Поле | Описание |3577| Поле | Описание |

3563| :- | :- |3578| :- | :- |

3564| `additionalContext` | Строка, добавленная в контекст Claude со следующим запросом. См. [Add context for Claude](#add-context-for-claude) |3579| `additionalContext` | Строка, добавленная в контекст Claude со следующим запросом. См. [Add context for Claude](#add-context-for-claude) |

3565 3580 

3566Если hook не завершится в течение пяти секунд после отправки следующей подсказки, Claude Code отправляет этот запрос без вывода и прикрепляет его к следующему запросу вместо этого. Если модель изменяется несколько раз перед следующим запросом, Claude Code доставляет только вывод для переключения целевой модели последнего.3581Если hook не завершится в течение пяти секунд после отправки следующей подсказки, Claude Code отправляет этот запрос без вывода и прикрепляет его к следующему запросу вместо этого. Если модель изменяется несколько раз перед следующим запросом, Claude Code доставляет только вывод для переключения последней цели модели.

3567 3582 

3568<h3 id="sessionend">3583<h3 id="sessionend">

3569 SessionEnd3584 SessionEnd


3575 3590 

3576| Причина | Описание |3591| Причина | Описание |

3577| :- | :- |3592| :- | :- |

3578| `clear` | Сеанс очищен с командой `/clear` |3593| `clear` | Сеанс очищен с помощью команды `/clear` |

3579| `resume` | Сеанс переключен через интерактивный `/resume` |3594| `resume` | Сеанс переключен через интерактивный `/resume` |

3580| `logout` | Пользователь вышел |3595| `logout` | Пользователь вышел |

3581| `prompt_input_exit` | Пользователь вышел, пока ввод подсказки был видимым |3596| `prompt_input_exit` | Пользователь вышел, пока ввод подсказки был видимым |

3582| `other` | Другие причины выхода |3597| `other` | Другие причины выхода |

3583| `bypass_permissions_disabled` | Удалено в версии 2.1.234; Claude Code не отправляет его. Удалите его из ваших matchers `SessionEnd` |3598| `bypass_permissions_disabled` | Удалено в v2.1.234; Claude Code не отправляет его. Удалите его из ваших matchers `SessionEnd` |

3584 3599 

3585<h4 id="sessionend-input">3600<h4 id="sessionend-input">

3586 Ввод SessionEnd3601 SessionEnd input

3587</h4>3602</h4>

3588 3603 

3589Помимо [общих полей ввода](#common-input-fields), hooks SessionEnd получают поле `reason`, указывающее, почему сеанс закончился. См. [таблицу причин](#sessionend) выше для всех значений.3604Помимо [общих полей ввода](#common-input-fields), hooks SessionEnd получают поле `reason`, указывающее, почему сеанс закончился. См. [таблицу причин](#sessionend) выше для всех значений.


3598}3613}

3599```3614```

3600 3615 

3601Hooks SessionEnd не имеют управления решением. Они не могут блокировать завершение сеанса, но могут выполнять задачи очистки. Claude Code отбрасывает их [поля JSON-вывода](#json-output), такие как `systemMessage`.3616Hooks SessionEnd не имеют управления решениями. Они не могут блокировать завершение сеанса, но могут выполнять задачи очистки. Claude Code отбрасывает их [поля вывода JSON](#json-output), такие как `systemMessage`.

3602 3617 

3603Hooks SessionEnd имеют тайм-аут по умолчанию 1.5 секунды. Он применяется, когда вы выходите, запускаете `/clear` или переключаете сеансы с интерактивным `/resume`. Вы можете дать hook больше времени двумя способами:3618Hooks SessionEnd имеют тайм-аут по умолчанию 1.5 секунды. Он применяется, когда вы выходите, запускаете `/clear` или переключаете сеансы с интерактивным `/resume`. Вы можете дать hook больше времени двумя способами:

3604 3619 

3605* **Per-hook `timeout`**: установите `timeout` в конфигурации этого hook. Общий бюджет автоматически повышается, чтобы совпадать с наивысшим `timeout` per-hook в ваших файлах параметров, до 60 секунд. Если вы повышаете бюджет таким образом, hook без своего собственного `timeout` все еще сохраняет стандарт. Тайм-ауты, установленные на hooks, предоставленные плагином, не повышают бюджет.3620* **Per-hook `timeout`**: установите `timeout` в конфигурации этого hook. Общий бюджет автоматически повышается, чтобы совпадать с наивысшим `timeout` per-hook в ваших файлах параметров, до 60 секунд. Если вы повышаете бюджет таким образом, hook без своего собственного `timeout` все еще сохраняет стандарт. Тайм-ауты, установленные на hooks, предоставленные plugin, не повышают бюджет.

3606* **`CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS`**: установите эту переменную окружения в миллисекундах для явного переопределения бюджета. Значение, которое вы установили, также становится тайм-аутом для каждого hook без своего собственного `timeout`.3621* **`CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS`**: установите эту переменную окружения в миллисекундах для явного переопределения бюджета. Значение, которое вы установили, также становится тайм-аутом для каждого hook без своего собственного `timeout`.

3607 3622 

3608Этот пример устанавливает бюджет на 5 секунд:3623Этот пример устанавливает бюджет на 5 секунд:


3619 3634 

3620Запускается, когда сервер MCP запрашивает ввод пользователя во время задачи. По умолчанию Claude Code показывает интерактивный диалог для ответа пользователя. Hooks могут перехватить этот запрос и ответить программно, полностью пропустив диалог.3635Запускается, когда сервер MCP запрашивает ввод пользователя во время задачи. По умолчанию Claude Code показывает интерактивный диалог для ответа пользователя. Hooks могут перехватить этот запрос и ответить программно, полностью пропустив диалог.

3621 3636 

3622Поле matcher совпадает с названием сервера MCP.3637Поле matcher совпадает с именем сервера MCP.

3623 3638 

3624<h4 id="elicitation-input">3639<h4 id="elicitation-input">

3625 Ввод Elicitation3640 Elicitation input

3626</h4>3641</h4>

3627 3642 

3628Помимо [общих полей ввода](#common-input-fields), hooks Elicitation получают `mcp_server_name`, `message` и опциональные `mode`, `url`, `elicitation_id` и `requested_schema` поля.3643Помимо [общих полей ввода](#common-input-fields), hooks Elicitation получают `mcp_server_name`, `message` и опциональные поля `mode`, `url`, `elicitation_id` и `requested_schema`.

3629 3644 

3630Для запроса в режиме формы, наиболее распространенный случай:3645Для режима формы elicitation, наиболее распространенный случай:

3631 3646 

3632```json theme={null}3647```json theme={null}

3633{3648{


3647}3662}

3648```3663```

3649 3664 

3650Для запроса в режиме URL, используемого для аутентификации на основе браузера:3665Для URL-режима elicitation, используемого для аутентификации на основе браузера:

3651 3666 

3652```json theme={null}3667```json theme={null}

3653{3668{


3663```3678```

3664 3679 

3665<h4 id="elicitation-output">3680<h4 id="elicitation-output">

3666 Вывод Elicitation3681 Elicitation output

3667</h4>3682</h4>

3668 3683 

3669Чтобы ответить программно без показа диалога, верните объект JSON с `hookSpecificOutput`:3684Чтобы ответить программно без показа диалога, верните объект JSON с `hookSpecificOutput`:


3683| Поле | Значения | Описание |3698| Поле | Значения | Описание |

3684| :- | :- | :- |3699| :- | :- | :- |

3685| `action` | `accept`, `decline`, `cancel` | Принять ли, отклонить или отменить запрос |3700| `action` | `accept`, `decline`, `cancel` | Принять ли, отклонить или отменить запрос |

3686| `content` | object | Значения полей формы для отправки. Используется только, когда `action` имеет значение `accept` |3701| `content` | object | Значения полей формы для отправки. Используется только, когда `action` — это `accept` |

3687 3702 

3688Код выхода 2 отклоняет запрос. Claude Code не показывает ваше сообщение stderr нигде.3703Код выхода 2 отклоняет elicitation. Claude Code не показывает ваше сообщение stderr нигде.

3689 3704 

3690Claude Code действует на `hookSpecificOutput` из JSON-вывода hook Elicitation и отбрасывает `systemMessage` и `continue`.3705Claude Code действует на `hookSpecificOutput` из вывода JSON hook Elicitation и отбрасывает `systemMessage` и `continue`.

3691 3706 

3692<h3 id="elicitationresult">3707<h3 id="elicitationresult">

3693 ElicitationResult3708 ElicitationResult

3694</h3>3709</h3>

3695 3710 

3696Запускается после того, как пользователь ответит на запрос MCP. Hooks могут наблюдать, изменять или блокировать ответ перед его отправкой обратно на сервер MCP.3711Запускается после того, как пользователь отвечает на запрос MCP elicitation. Hooks могут наблюдать, изменять или блокировать ответ перед его отправкой обратно на сервер MCP.

3697 3712 

3698Поле matcher совпадает с названием сервера MCP.3713Поле matcher совпадает с именем сервера MCP.

3699 3714 

3700<h4 id="elicitationresult-input">3715<h4 id="elicitationresult-input">

3701 Ввод ElicitationResult3716 ElicitationResult input

3702</h4>3717</h4>

3703 3718 

3704Помимо [общих полей ввода](#common-input-fields), hooks ElicitationResult получают `mcp_server_name`, `action` и опциональные `mode`, `elicitation_id` и `content` поля.3719Помимо [общих полей ввода](#common-input-fields), hooks ElicitationResult получают `mcp_server_name`, `action` и опциональные поля `mode`, `elicitation_id` и `content`.

3705 3720 

3706```json theme={null}3721```json theme={null}

3707{3722{


3718```3733```

3719 3734 

3720<h4 id="elicitationresult-output">3735<h4 id="elicitationresult-output">

3721 Вывод ElicitationResult3736 ElicitationResult output

3722</h4>3737</h4>

3723 3738 

3724Чтобы переопределить ответ пользователя, верните объект JSON с `hookSpecificOutput`:3739Чтобы переопределить ответ пользователя, верните объект JSON с `hookSpecificOutput`:


3736| Поле | Значения | Описание |3751| Поле | Значения | Описание |

3737| :- | :- | :- |3752| :- | :- | :- |

3738| `action` | `accept`, `decline`, `cancel` | Переопределяет действие пользователя |3753| `action` | `accept`, `decline`, `cancel` | Переопределяет действие пользователя |

3739| `content` | object | Переопределяет значения полей формы. Имеет смысл только, когда `action` имеет значение `accept` |3754| `content` | object | Переопределяет значения полей формы. Имеет смысл только, когда `action` — это `accept` |

3740 3755 

3741Код выхода 2 блокирует ответ, изменяя эффективное действие на `decline`. Claude Code не показывает ваше сообщение stderr нигде.3756Код выхода 2 блокирует ответ, изменяя эффективное действие на `decline`. Claude Code не показывает ваше сообщение stderr нигде.

3742 3757 

3743Claude Code действует на `hookSpecificOutput` из JSON-вывода hook ElicitationResult и отбрасывает `systemMessage` и `continue`.3758Claude Code действует на `hookSpecificOutput` из вывода JSON hook ElicitationResult и отбрасывает `systemMessage` и `continue`.

3744 3759 

3745<h2 id="prompt-based-hooks">3760<h2 id="prompt-based-hooks">

3746 Prompt-based hooks3761 Prompt-based hooks

hooks-guide.md +1 −1

Details

196| `elicitation_url_dialog` | Сервер MCP просит вас открыть URL браузера и вы не печатали около шести секунд |196| `elicitation_url_dialog` | Сервер MCP просит вас открыть URL браузера и вы не печатали около шести секунд |

197| `elicitation_complete` | Сервер MCP сообщает, что [выяснение в режиме URL](/docs/ru/hooks#elicitation-input) завершено |197| `elicitation_complete` | Сервер MCP сообщает, что [выяснение в режиме URL](/docs/ru/hooks#elicitation-input) завершено |

198| `elicitation_response` | Ответ выяснения MCP отправлен обратно на сервер |198| `elicitation_response` | Ответ выяснения MCP отправлен обратно на сервер |

199| `agent_needs_input` | Фоновый сеанс начинает ожидание вашего ввода, пока открыто [представление агента](/docs/ru/agent-view), или текущий сеанс задаёт вам вопрос о настройке терминала [товарища команды агента](/docs/ru/agent-teams#choose-a-display-mode) и вы не печатали около шести секунд |199| `agent_needs_input` | Фоновый сеанс начинает ожидание вашего ввода, пока открыто [представление агента](/docs/ru/agent-view). Также срабатывает, когда сеанс терминала показывает вам вопрос о настройке терминала [товарища команды агента](/docs/ru/agent-teams#choose-a-display-mode) или уведомление автоматического режима о [расходах на запросы классификатора](/docs/ru/auto-mode-classifier-billing) и вы не печатали около шести секунд |

200| `agent_completed` | Фоновый сеанс завершается или завершается с ошибкой. Срабатывает только при открытом [представлении агента](/docs/ru/agent-view) |200| `agent_completed` | Фоновый сеанс завершается или завершается с ошибкой. Срабатывает только при открытом [представлении агента](/docs/ru/agent-view) |

201| `quota_auto_resume_fired` | Claude Code продолжает вашу задачу после того, как лимит использования claude.ai приостановил её: при сбросе или раньше, когда что-то, что вы делаете в Claude Code во время ожидания, например добавление кредитов использования, обновление плана или переключение моделей, делает использование доступным снова, с [исключением параметра модели](/docs/ru/interactive-mode#wait-for-a-usage-limit-to-reset) |201| `quota_auto_resume_fired` | Claude Code продолжает вашу задачу после того, как лимит использования claude.ai приостановил её: при сбросе или раньше, когда что-то, что вы делаете в Claude Code во время ожидания, например добавление кредитов использования, обновление плана или переключение моделей, делает использование доступным снова, с [исключением параметра модели](/docs/ru/interactive-mode#wait-for-a-usage-limit-to-reset) |

202| `quota_auto_resume_stale` | Лимит использования claude.ai сбросился, пока ваш компьютер спал более чем около 30 минут. Claude Code ждёт, пока вы нажмёте `Enter` вместо продолжения. После более короткого сна он продолжает и срабатывает `quota_auto_resume_fired` вместо этого |202| `quota_auto_resume_stale` | Лимит использования claude.ai сбросился, пока ваш компьютер спал более чем около 30 минут. Claude Code ждёт, пока вы нажмёте `Enter` вместо продолжения. После более короткого сна он продолжает и срабатывает `quota_auto_resume_fired` вместо этого |

Details

333 Фоновые команды Bash333 Фоновые команды Bash

334</h2>334</h2>

335 335 

336Claude Code поддерживает запуск команд Bash в фоне, позволяя вам продолжать работу во время выполнения долгоживущих процессов.336Claude Code поддерживает запуск команд Bash в фоне, позволяя вам продолжать работу, пока выполняются долгоживущие процессы.

337 337 

338<h3 id="how-backgrounding-works">338<h3 id="how-backgrounding-works">

339 Как работает фоновое выполнение339 Как работает фоновое выполнение

340</h3>340</h3>

341 341 

342Когда Claude Code запускает команду в фоне, она выполняется асинхронно и немедленно возвращает идентификатор фоновой задачи. Claude Code может отвечать на новые запросы, пока команда продолжает выполняться в фоне.342Когда Claude Code запускает команду в фоне, она выполняется асинхронно и немедленно возвращает ID фоновой задачи. Claude Code может отвечать на новые запросы, пока команда продолжает выполняться в фоне.

343 343 

344Для запуска команд в фоне вы можете:344Для запуска команд в фоне вы можете:

345 345 

346* Попросить Claude Code запустить команду в фоне346* Попросить Claude Code запустить команду в фоне

347* Нажать `Ctrl+B` для перемещения обычного вызова инструмента Bash в фон. Пользователи Tmux должны нажать `Ctrl+B` дважды из-за префиксного ключа tmux.347* Нажать `Ctrl+B` для перемещения обычного вызова инструмента Bash в фон. Пользователи Tmux должны нажать `Ctrl+B` дважды из-за префиксного ключа tmux.

348 348 

349Когда команда достигает своего времени ожидания до завершения, Claude Code автоматически [перемещает её в фон](/docs/ru/tools-reference#background-commands) вместо остановки, если только команда не начинается с `sleep`. Чтобы изменить, как долго команды выполняются до этого, установите [переменные окружения для времени ожидания Bash](/docs/ru/tools-reference#timeout-and-output-limits).349Когда команда достигает своего времени ожидания до завершения, Claude Code автоматически [перемещает её в фон](/docs/ru/tools-reference#background-commands) вместо остановки, если только команда не начинается с `sleep`. Чтобы изменить, как долго команды выполняются перед этим, установите [переменные окружения для времени ожидания Bash](/docs/ru/tools-reference#timeout-and-output-limits).

350 350 

351**Ключевые возможности:**351**Ключевые возможности:**

352 352 

353* Вывод записывается в файл, и Claude может получить его с помощью инструмента Read353* Вывод записывается в файл, и Claude может получить его с помощью инструмента Read

354* Фоновые задачи имеют уникальные идентификаторы для отслеживания и получения вывода354* Фоновые задачи имеют уникальные ID для отслеживания и получения вывода

355* Фоновые задачи автоматически очищаются при выходе из Claude Code. На macOS и Linux при остановке фоновой задачи из [`/tasks`](/docs/ru/commands) или при выходе Claude Code процессы, отделённые от оболочки задачи, такие как запущенные под `setsid` или `timeout`, также останавливаются355* Фоновые задачи автоматически очищаются при выходе из Claude Code. На macOS и Linux, когда вы останавливаете фоновую задачу из [`/tasks`](/docs/ru/commands) или Claude Code останавливает её при выходе, процессы, отделённые от оболочки задачи, такие как запущенные под `setsid` или `timeout`, также останавливаются

356* Если вы переводите сеанс в фон вместо выхода, ваши фоновые задачи продолжают работать в фоновом сеансе. См. [перевод работающего сеанса в фон](/docs/ru/agent-view#from-inside-a-session)356* Если вы переводите сеанс в фон вместо выхода, ваши фоновые задачи продолжают работать в фоновом сеансе. См. [перевод работающего сеанса в фон](/docs/ru/agent-view#from-inside-a-session)

357* Фоновые задачи автоматически завершаются, если вывод превышает 5 ГБ, с примечанием в stderr, объясняющим причину357* Фоновые задачи автоматически завершаются, если вывод превышает 5 ГБ, с примечанием в stderr, объясняющим причину

358* На macOS и Linux Claude Code завершает работающие фоновые задачи, когда операционная система сигнализирует о критической нехватке памяти, при условии, что сеанс был неактивен не менее 30 минут и не выполняется ни один ход или подагент. Требуется Claude Code v2.1.193 или позже358* На macOS и Linux Claude Code останавливает ваши работающие фоновые задачи, когда операционная система сообщает о критическом давлении памяти, при условии, что сеанс был неактивен не менее 30 минут и не выполняется ни один ход или подагент. Требуется Claude Code v2.1.193 или позже

359 * [Журнал отладки](/docs/ru/debug-your-config) указывает, почему задачи были остановлены, или почему событие нехватки памяти оставило их работающими359 * [Журнал отладки](/docs/ru/debug-your-config) указывает, почему задачи были остановлены или почему событие давления оставило их работающими

360 * Установите [`CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP`](/docs/ru/env-vars) в `1`, чтобы отключить остановки при нехватке памяти360 * Установите [`CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP`](/docs/ru/env-vars) в `1`, чтобы отключить остановки из-за давления памяти

361* Фоновые команды, принадлежащие [подагенту](/docs/ru/sub-agents), не имеют ограничения по времени, за исключением того, что команда, принадлежащая подагенту, работающему на переднем плане, заканчивается, когда этот подагент дает свой окончательный ответ; см. [Фоновые команды](/docs/ru/tools-reference#background-commands) в справочнике инструментов. До v2.1.218 ни очистка при нехватке памяти, ни прежнее ограничение в 60 минут на команды подагента не распространялись на команды, перемещённые в фон с помощью `Ctrl+B`361* Фоновые команды Bash и PowerShell имеют ограничение по времени, отсчитываемое с момента входа команды в фон: 30 минут или `timeout`, который Claude запрашивает при запуске команды в фоне, до максимума 2 часов. Команда, которая переходит в фон во время выполнения, например с `Ctrl+B`, получает 30 минут с момента перемещения. Когда команда достигает своего лимита, Claude Code останавливает её и сообщает Claude причину, и Claude может запустить её снова с более длительным `timeout`, если работа всё ещё необходима. Две переменные окружения повышают лимиты в миллисекундах, и ни одна из них не может их сократить:

362 * Установите [`BASH_DEFAULT_TIMEOUT_MS`](/docs/ru/env-vars) выше `1800000`, чтобы заменить 30-минутное значение по умолчанию этим значением для перемещённых команд также

363 * Установите [`BASH_MAX_TIMEOUT_MS`](/docs/ru/env-vars) выше `7200000`, чтобы повысить максимум 2 часов. Установка `BASH_DEFAULT_TIMEOUT_MS` выше `7200000` повышает его таким же образом

364* Фоновая команда, запущенная переднеплановым [подагентом](/docs/ru/sub-agents#run-subagents-in-foreground-or-background), заканчивается, когда заканчивается выполнение этого подагента, независимо от того, завершилась ли она, не удалась или была прервана; см. [Фоновые команды](/docs/ru/tools-reference#background-commands) в справочнике инструментов

362 365 

363Чтобы отключить всю функциональность фоновых задач, установите переменную окружения `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` в `1`. См. [Переменные окружения](/docs/ru/env-vars) для получения подробной информации.366Чтобы отключить всю функциональность фоновых задач, установите переменную окружения `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` в `1`. См. [Переменные окружения](/docs/ru/env-vars) для получения подробной информации.

364 367 


374 Режим оболочки с префиксом `!`377 Режим оболочки с префиксом `!`

375</h3>378</h3>

376 379 

377Запускайте команды оболочки напрямую без участия Claude, добавив префикс `!` к вашему вводу:380Запускайте команды оболочки напрямую без участия Claude, добавляя префикс `!` к вашему вводу:

378 381 

379```bash theme={null}382```bash theme={null}

380! npm test383! npm test


384 387 

385Режим оболочки:388Режим оболочки:

386 389 

387* Добавляет команду и её вывод в контекст беседы390* Добавляет команду и её вывод в контекст разговора

388* Показывает прогресс и вывод в реальном времени391* Показывает прогресс и вывод в реальном времени

389* Поддерживает то же самое фоновое выполнение `Ctrl+B` для долгоживущих команд392* Поддерживает то же самое `Ctrl+B` фоновое выполнение для долгоживущих команд

390* Не требует интерпретации или одобрения команды Claude393* Не требует от Claude интерпретации или одобрения команды

391* Поддерживает автодополнение на основе истории: введите частичную команду и нажмите `Tab` для завершения из предыдущих команд `!` в текущем проекте394* Поддерживает автодополнение на основе истории: введите частичную команду и нажмите `Tab` для завершения из предыдущих команд `!` в текущем проекте

392* Поддерживает автодополнение пути к файлу в реальном времени начиная с v2.1.193 на всех платформах: введите токен, содержащий косую черту, такой как `./src/` или `~/`, чтобы увидеть раскрывающийся список соответствующих файлов и каталогов, затем нажмите `Tab` для принятия. Используйте косые черты на Windows тоже; раскрывающийся список вызывается `/`, а не `\`395* Поддерживает автодополнение пути к файлу в реальном времени начиная с v2.1.193 на всех платформах: введите токен, содержащий косую черту, такой как `./src/` или `~/`, чтобы увидеть раскрывающийся список совпадающих файлов и каталогов, затем нажмите `Tab` для принятия. Используйте косые черты на Windows также; раскрывающийся список срабатывает на `/`, а не на `\`

393* Выход с помощью `Escape`, `Backspace` или `Ctrl+U` на пустой строке ввода396* Выход с `Escape`, `Backspace` или `Ctrl+U` на пустой подсказке

394* Вставка текста, начинающегося с `!`, в пустую строку ввода автоматически входит в режим оболочки, соответствуя поведению введённого `!`397* Вставка текста, начинающегося с `!` в пустую подсказку, автоматически входит в режим оболочки, соответствуя поведению введённого `!`

395 398 

396Если ваш сеанс не входит в список сеансов, указанных в разделе [режим строгой песочницы](/docs/ru/sandboxing#the-unsandboxed-retry-escape-hatch), команды, которые вы вводите в режиме оболочки, выполняются вне [песочницы](/docs/ru/sandboxing) даже если вы включили песочницу, потому что песочница применяется к командам, которые запускает Claude.399Если ваш сеанс не входит в список тех, что указаны в разделе [режим строгой изоляции](/docs/ru/sandboxing#the-unsandboxed-retry-escape-hatch), команды, которые вы вводите в режиме оболочки, выполняются вне [изоляции](/docs/ru/sandboxing) даже если вы включили изоляцию, потому что изоляция применяется к командам, которые запускает Claude.

397 400 

398Claude автоматически отвечает на вывод команды после того, как он попадает в стенограмму, поэтому вы можете запустить `! npm test` и получить объяснение ошибок без второго запроса. Ответ стоит столько же, сколько отправка обычного запроса. Чтобы восстановить более раннее поведение, когда вывод добавляется в контекст без ответа, установите [`respondToBashCommands`](/docs/ru/settings-reference#respondtobashcommands) в `false` в `settings.json`. До v2.1.186 режим оболочки всегда добавлял вывод в контекст без ответа.401Claude автоматически отвечает на вывод команды, как только он попадает в стенограмму, поэтому вы можете запустить `! npm test` и получить объяснение сбоев без второго запроса. Ответ стоит столько же, сколько отправка обычного запроса. Чтобы восстановить более раннее поведение, когда вывод добавляется в контекст без ответа, установите [`respondToBashCommands`](/docs/ru/settings-reference#respondtobashcommands) в `false` в `settings.json`. До v2.1.186 режим оболочки всегда добавлял вывод в контекст без ответа.

399 402 

400<h2 id="queue-messages-while-claude-works">403<h2 id="queue-messages-while-claude-works">

401 Ставьте сообщения в очередь, пока Claude работает404 Ставьте сообщения в очередь, пока Claude работает

keybindings.md +5 −2

Details

301| `footer:down` | Down | Навигация вниз в нижнем колонтитуле |301| `footer:down` | Down | Навигация вниз в нижнем колонтитуле |

302| `footer:openSelected` | Enter | Открыть выбранный элемент нижнего колонтитула |302| `footer:openSelected` | Enter | Открыть выбранный элемент нижнего колонтитула |

303| `footer:clearSelection` | Escape | Очистить выбор нижнего колонтитула |303| `footer:clearSelection` | Escape | Очистить выбор нижнего колонтитула |

304| `footer:dismiss` | (не привязано) | Удалено в v2.1.281. `keybindings.json`, который по-прежнему называет действие, остаётся действительным, и привязка ничего не делает. До v2.1.281 Backspace и Delete удаляли выбранную ссылку артефакта из нижнего колонтитула |304| `footer:dismiss` | (не привязано) | Привязка клавиши к этому действию не имеет эффекта, и `keybindings.json`, который называет его, остаётся действительным. До v2.1.281 Backspace и Delete были привязаны к нему и удаляли выбранную ссылку артефакта из нижнего колонтитула. |

305 305 

306Пока элемент нижнего колонтитула выбран, например строка в панели агента ниже подсказки, `Enter` открывает его даже если вы переназначили `Enter` в контексте `Chat` на `chat:queueSubmit` или `chat:newline`.306Пока элемент нижнего колонтитула выбран, например строка в панели агента ниже подсказки, `Enter` открывает его даже если вы переназначили `Enter` в контексте `Chat` на `chat:queueSubmit` или `chat:newline`.

307 307 


417| `select:accept` | Enter | Принять выбор |417| `select:accept` | Enter | Принять выбор |

418| `select:cancel` | Escape | Отменить выбор |418| `select:cancel` | Escape | Отменить выбор |

419 419 

420В панелях списков, таких как `/skills` и `/mcp`, Claude Code применяет ваши привязки `select:pageUp`, `select:pageDown`, `select:first` и `select:last`. В большинстве других списков, таких как выбор модели `/model`, ваши привязки `select:first` и `select:last` применяются. PageUp и PageDown разбивают на страницы параметры в этих списках независимо от ваших привязок.420В панелях списков, таких как `/skills`, `/mcp` и `/tasks`, Claude Code применяет ваши привязки `select:pageUp`, `select:pageDown`, `select:first` и `select:last`. В большинстве других списков, таких как выбор модели `/model`, ваши привязки `select:first` и `select:last` применяются. PageUp и PageDown разбивают на страницы параметры в этих списках независимо от ваших привязок.

421 421 

422До v2.1.280 эти другие списки игнорировали Home, End и ваши привязки `select:first` и `select:last`.422До v2.1.280 эти другие списки игнорировали Home, End и ваши привязки `select:first` и `select:last`.

423 423 

424До v2.1.283 список инструментов `/mcp` разбивал на страницы с фиксированными клавишами PageUp и PageDown независимо от ваших привязок.

425 

424<h3 id="plugin-actions">426<h3 id="plugin-actions">

425 Действия plugin427 Действия plugin

426</h3>428</h3>


692Claude Code проверяет ваши сочетания клавиш и записывает предупреждение в журнал отладки для:694Claude Code проверяет ваши сочетания клавиш и записывает предупреждение в журнал отладки для:

693 695 

694* Ошибок разбора (неверный JSON или структура)696* Ошибок разбора (неверный JSON или структура)

697* Неправильно написанных модификаторов, таких как `ctl+k`. Claude Code удаляет часть, которую он не распознаёт, и применяет привязку к оставшемуся нажатию клавиши, `k` в этом примере.

695* Неверных имён контекстов698* Неверных имён контекстов

696* Неверных значений действий, таких как действие, которое не является строкой или `null`699* Неверных значений действий, таких как действие, которое не является строкой или `null`

697* Неизвестных имён действий, таких как опечатка зарегистрированного действия. Claude Code пропускает привязку и сохраняет любую привязку по умолчанию для этого ключа в силе. До версии 2.1.246 привязка с неизвестным именем действия молча отключала этот ключ700* Неизвестных имён действий, таких как опечатка зарегистрированного действия. Claude Code пропускает привязку и сохраняет любую привязку по умолчанию для этого ключа в силе. До версии 2.1.246 привязка с неизвестным именем действия молча отключала этот ключ

Details

79 79 

80Когда клиент использует формат Amazon Bedrock, передавайте тело ответа `InvokeModelWithResponseStream` и его заголовок `Content-Type: application/vnd.amazon.eventstream` без изменений, и не преобразуйте поток в server-sent events. См. [Streaming errors behind a gateway or proxy](/docs/ru/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy).80Когда клиент использует формат Amazon Bedrock, передавайте тело ответа `InvokeModelWithResponseStream` и его заголовок `Content-Type: application/vnd.amazon.eventstream` без изменений, и не преобразуйте поток в server-sent events. См. [Streaming errors behind a gateway or proxy](/docs/ru/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy).

81 81 

82Пересылайте также keep-alive пинги. На соединениях через `ANTHROPIC_BASE_URL` или `ANTHROPIC_AWS_BASE_URL`, Claude Code считает каждый байт, который ваш шлюз передаёт, включая SSE события `ping` и строки комментариев, и прерывает поток, который молчит в течение 300 секунд по умолчанию. Пинги вышестоящего сервера — единственный трафик во время длительных пауз размышления, поэтому если ваш шлюз удаляет или буферизирует их, Claude Code прерывает поток во время этих пауз; [Automatic retries](/docs/ru/errors#automatic-retries) охватывает то, что прерванный поток сообщает в зависимости от того, насколько далеко продвинулся ответ. Вышестоящий сервер, который вообще не отправляет пинги, такой как двоичный event-stream Amazon Bedrock, оставляет эти паузы без чего-либо для передачи. При переводе с такого вышестоящего сервера выдавайте свои собственные события `ping` во время молчаливых пауз. Шлюзы, достигнутые через `ANTHROPIC_BEDROCK_BASE_URL`, `ANTHROPIC_VERTEX_BASE_URL` или `ANTHROPIC_FOUNDRY_BASE_URL`, не обёрнуты этим байт-уровневым сторожем, даже когда они передают формат Anthropic Messages; там [5-минутный timeout неактивности](/docs/ru/env-vars) прерывает молчаливый поток вместо этого, и на соединениях `ANTHROPIC_BEDROCK_BASE_URL` вы можете добавить байт-уровневый сторож с помощью [`CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK`](/docs/ru/env-vars).82Пересылайте также keep-alive пинги, потому что Claude Code прерывает потоковый ответ, как только в течение [пяти минут по умолчанию](/docs/ru/network-config#streaming-idle-watchdogs) на него не поступают байты. Во время длительной паузы размышления, SSE события `ping` вышестоящего сервера могут быть единственными байтами на потоке. Если ваш шлюз удаляет или буферизирует их, Claude Code прерывает ответ посередине паузы. Когда вы переводите с вышестоящего сервера, который вообще не отправляет пинги, такого как двоичный event-stream Amazon Bedrock, выдавайте свои собственные события `ping` во время молчаливых пауз.

83 83 

84<h3 id="format-mismatch-with-the-upstream">84<h3 id="format-mismatch-with-the-upstream">

85 Несоответствие формата с вышестоящим сервером85 Несоответствие формата с вышестоящим сервером

managed-mcp.md +23 −6

Details

31 31 

32| Шаблон | Что он делает | Настройка |32| Шаблон | Что он делает | Настройка |

33| :- | :- | :- |33| :- | :- | :- |

34| **Отключить MCP** | Серверы не загружаются, кроме [встроенных серверов, которые регистрирует приложение, запустившее сеанс](#exclusive-control-with-managed-mcp-json), и любых, которые вы [предоставляете через `managedMcpServers`](#provide-servers-through-managed-settings) | `managed-mcp.json` с пустой картой серверов |34| **Отключить MCP** | Серверы не загружаются, кроме нескольких, которые [загружаются под исключительным контролем](#exclusive-control-with-managed-mcp-json) | `managed-mcp.json` с пустой картой серверов |

35| **Фиксированное развертывание** | Каждый пользователь получает одни и те же серверы и не может добавлять другие | `managed-mcp.json` с нужными вам серверами |35| **Фиксированное развертывание** | Каждый пользователь получает одни и те же серверы и не может добавлять другие | `managed-mcp.json` с нужными вам серверами |

36| **Предоставленные серверы** | Каждый пользователь получает удаленные серверы из вашего списка и сохраняет свои собственные | `managedMcpServers` в управляемых параметрах |36| **Предоставленные серверы** | Каждый пользователь получает удаленные серверы из вашего списка и сохраняет свои собственные | `managedMcpServers` в управляемых параметрах |

37| **Утвержденный каталог** | Опубликуйте список утвержденных серверов; пользователи добавляют нужные им, все остальное блокируется | `allowedMcpServers` + `allowManagedMcpServersOnly: true` |37| **Утвержденный каталог** | Опубликуйте список утвержденных серверов; пользователи добавляют нужные им, все остальное блокируется | `allowedMcpServers` + `allowManagedMcpServersOnly: true` |


53* Серверы, которые определяет файл53* Серверы, которые определяет файл

54* Серверы, которые вы [предоставляете через `managedMcpServers`](#provide-servers-through-managed-settings)54* Серверы, которые вы [предоставляете через `managedMcpServers`](#provide-servers-through-managed-settings)

55* Встроенные серверы, которые регистрирует приложение, запустившее сеанс, такие как собственный сервер расширения VS Code или [коннекторы, которые поставляет настольное приложение](/docs/ru/mcp#how-connectors-reach-claude-code)55* Встроенные серверы, которые регистрирует приложение, запустившее сеанс, такие как собственный сервер расширения VS Code или [коннекторы, которые поставляет настольное приложение](/docs/ru/mcp#how-connectors-reach-claude-code)

56* Встроенный сервер [Claude in Chrome](/docs/ru/chrome), если вы [разрешите его наряду с управляемым набором](#allow-claude-in-chrome-alongside-the-managed-set)

56 57 

57Пользователи не могут добавлять, изменять или использовать какие-либо другие MCP серверы, включая серверы, предоставляемые плагинами, и серверы, переданные с помощью [флага CLI `--mcp-config`](/docs/ru/cli-reference#cli-flags). Файл также подавляет коннекторы claude.ai, которые Claude Code загружает сам по себе, если вы не [разрешите их наряду с управляемым набором](#allow-claude-ai-connectors-alongside-the-managed-set).58Пользователи не могут добавлять, изменять или использовать какие-либо другие MCP серверы, включая серверы, предоставляемые плагинами, и серверы, переданные с помощью [флага CLI `--mcp-config`](/docs/ru/cli-reference#cli-flags). Файл также подавляет коннекторы claude.ai, которые Claude Code загружает сам по себе, если вы не [разрешите их наряду с управляемым набором](#allow-claude-ai-connectors-alongside-the-managed-set).

58 59 


144 Отключение MCP полностью145 Отключение MCP полностью

145</h3>146</h3>

146 147 

147Разверните `managed-mcp.json`, содержащий пустую карту серверов, чтобы заблокировать каждый MCP сервер, кроме [встроенных серверов, которые регистрирует приложение, запустившее сеанс](#exclusive-control-with-managed-mcp-json):148Разверните `managed-mcp.json`, содержащий пустую карту серверов, чтобы заблокировать каждый MCP сервер, кроме тех, которые [загружаются под исключительным контролем](#exclusive-control-with-managed-mcp-json):

148 149 

149```json theme={null}150```json theme={null}

150{151{


152}153}

153```154```

154 155 

155`claude mcp add` завершается с ошибкой политики предприятия, указанной выше. Серверы, которые пользователи ранее настроили, перестают загружаться при следующем запуске сеанса, без предупреждения о том, что причина в политике. Серверы, которые вы предоставляете через `managedMcpServers`, по-прежнему загружаются при пустой карте, поэтому оставьте этот ключ также неустановленным, чтобы полностью отключить MCP.156`claude mcp add` завершается с ошибкой политики предприятия, указанной выше. Серверы, которые пользователи ранее настроили, перестают загружаться при следующем запуске сеанса, без предупреждения о том, что причина в политике. Серверы, которые вы предоставляете через `managedMcpServers`, и всё остальное, что вы разрешаете наряду с управляемым набором, по-прежнему загружаются при пустой карте, поэтому оставьте эти ключи неустановленными, чтобы полностью отключить MCP.

156 157 

157<h3 id="allow-claude-ai-connectors-alongside-the-managed-set">158<h3 id="allow-claude-ai-connectors-alongside-the-managed-set">

158 Разрешение коннекторов claude.ai наряду с управляемым набором159 Разрешение коннекторов claude.ai наряду с управляемым набором


166 167 

167Claude Code читает `allowAllClaudeAiMcps` только из контролируемых администратором уровней политики: параметры, управляемые сервером, развёрнутый MDM plist или ключ реестра HKLM, или системный файл `managed-settings.json`. Размещение его в параметрах пользователя или проекта не имеет эффекта, поэтому пользователи не могут повторно включить коннекторы, которые исключительный контроль подавил.168Claude Code читает `allowAllClaudeAiMcps` только из контролируемых администратором уровней политики: параметры, управляемые сервером, развёрнутый MDM plist или ключ реестра HKLM, или системный файл `managed-settings.json`. Размещение его в параметрах пользователя или проекта не имеет эффекта, поэтому пользователи не могут повторно включить коннекторы, которые исключительный контроль подавил.

168 169 

170<h3 id="allow-claude-in-chrome-alongside-the-managed-set">

171 Разрешение Claude in Chrome наряду с управляемым набором

172</h3>

173 

174По умолчанию при развёртывании `managed-mcp.json` Claude Code блокирует встроенный сервер [Claude in Chrome](/docs/ru/chrome) в сеансах терминала. Пользователи не получают [подсказку об установке расширения](/docs/ru/chrome#install-the-extension-when-claude-asks), и сеанс, в котором пользователь [включил Chrome по умолчанию](/docs/ru/chrome#enable-chrome-by-default), запускается без Chrome и не выводит никакого предупреждения. Когда пользователь, который в противном случае мог бы запустить Claude in Chrome, запускает его с помощью `claude --chrome` или `CLAUDE_CODE_ENABLE_CFC=1`, Claude Code завершает работу при запуске с ошибкой, которая называет параметр `allowClaudeInChromeWithManagedMcp`.

175 

176Чтобы позволить пользователям запускать Claude in Chrome наряду с серверами в `managed-mcp.json`, установите `"allowClaudeInChromeWithManagedMcp": true` в управляемых параметрах самого устройства. Поместите его в развёрнутый MDM plist или ключ реестра HKLM, или системный файл `managed-settings.json`, в зависимости от того, что Claude Code [выбирает](/docs/ru/managed-settings#precedence-within-the-managed-tier) на этом устройстве. Требуется Claude Code версии 2.1.282 или позже. До версии 2.1.282 Claude Code игнорирует параметр, и ошибка при запуске читается как `You cannot dynamically configure MCP servers when an enterprise MCP config is present`.

177 

178Claude Code читает параметр из этих источников устройства даже когда [параметры, управляемые сервером](/docs/ru/server-managed-settings), доставляют остальную часть вашей политики. Он игнорирует параметр в самих параметрах, управляемых сервером, в реестре HKCU, доступном для записи пользователем, и в параметрах пользователя или проекта. Запись [`deniedMcpServers`](#policy-based-control-with-allowlists-and-denylists) для `claude-in-chrome` по-прежнему блокирует сервер с параметром.

179 

169<h2 id="provide-servers-through-managed-settings">180<h2 id="provide-servers-through-managed-settings">

170 Предоставление серверов через управляемые параметры181 Предоставление серверов через управляемые параметры

171</h2>182</h2>


303 314 

304| Параметр | Не установлен (по умолчанию) | Пустой массив `[]` | Заполненный |315| Параметр | Не установлен (по умолчанию) | Пустой массив `[]` | Заполненный |

305| :- | :- | :- | :- |316| :- | :- | :- | :- |

306| `allowedMcpServers` | Все серверы разрешены | Серверы не разрешены, кроме [собственных серверов организации](#how-a-server-is-evaluated) | Разрешены только совпадающие серверы, кроме [собственных серверов организации](#how-a-server-is-evaluated) |317| `allowedMcpServers` | Все серверы разрешены | Серверы не разрешены, кроме [тех, которые пропускают проверку списка разрешений](#how-a-server-is-evaluated) | Разрешены только совпадающие серверы, кроме [тех, которые пропускают проверку списка разрешений](#how-a-server-is-evaluated) |

307| `deniedMcpServers` | Серверы не блокируются | Серверы не блокируются | Совпадающие серверы блокируются |318| `deniedMcpServers` | Серверы не блокируются | Серверы не блокируются | Совпадающие серверы блокируются |

308 319 

309Информацию о том, что происходит, когда запись не проходит проверку схемы, см. в разделе [Недействительные записи в управляемых параметрах](/docs/ru/managed-settings#invalid-entries-in-managed-settings).320Информацию о том, что происходит, когда запись не проходит проверку схемы, см. в разделе [Недействительные записи в управляемых параметрах](/docs/ru/managed-settings#invalid-entries-in-managed-settings).


3292. **Проверьте список запретов.** Сервер, который совпадает с любой записью списка запретов по URL, команде или имени, блокируется. Ничто не переопределяет совпадение списка запретов.3402. **Проверьте список запретов.** Сервер, который совпадает с любой записью списка запретов по URL, команде или имени, блокируется. Ничто не переопределяет совпадение списка запретов.

3303. **Проверьте список разрешений.** Если `allowedMcpServers` не установлен нигде, каждый сервер, прошедший список запретов, загружается. Если он установлен, то, с чем должен совпадать сервер, зависит от его типа, показанного в таблице ниже.3413. **Проверьте список разрешений.** Если `allowedMcpServers` не установлен нигде, каждый сервер, прошедший список запретов, загружается. Если он установлен, то, с чем должен совпадать сервер, зависит от его типа, показанного в таблице ниже.

331 342 

332 Собственные серверы организации пропускают эту проверку: каждая запись `managedMcpServers` и любая запись `managed-mcp.json`, значения которой не используют расширение `${VAR}`. Встроенные серверы также пропускают ее, такие как Claude в Chrome, сервер `ide`, к которому Claude Code подключается в работающей IDE VS Code или JetBrains, и серверы, которые сам CLI настраивает.343 Три группы серверов пропускают эту проверку:

344 

345 * Собственные серверы организации: каждая запись `managedMcpServers` и любая запись `managed-mcp.json`, значения которой не используют расширение `${VAR}`.

346 * Встроенные серверы, такие как Claude в Chrome, сервер `ide`, к которому Claude Code подключается в работающей IDE VS Code или JetBrains, и серверы, которые сам CLI настраивает.

347 * Инструменты Slack сеанса [Claude Tag](/docs/ru/claude-tag): серверы, которые он использует для чтения потока и публикации своих ответов, загружаются без записи в список разрешений.

333 348 

334 Сервер `managed-mcp.json`, который использует расширение `${VAR}` в своей команде, аргументах, `env`, URL или заголовках, все еще проверяется, как и каждый сервер, добавленный пользователем, плагином, `--mcp-config` или claude.ai.349 Сервер `managed-mcp.json`, который использует расширение `${VAR}` в своей команде, аргументах, `env`, URL или заголовках, все еще проверяется. Так же как и каждый сервер, добавленный пользователем, плагином, claude.ai, и каждый сервер, переданный пользователем с `--mcp-config`.

335 350 

336| Тип сервера | Разрешено, когда совпадает |351| Тип сервера | Разрешено, когда совпадает |

337| :- | :- |352| :- | :- |


514| Ограничение | Что видит пользователь |529| Ограничение | Что видит пользователь |

515| :- | :- |530| :- | :- |

516| `managed-mcp.json` присутствует и пользователь запускает `claude mcp add` | `Cannot add MCP server: enterprise MCP configuration is active and has exclusive control over MCP servers` |531| `managed-mcp.json` присутствует и пользователь запускает `claude mcp add` | `Cannot add MCP server: enterprise MCP configuration is active and has exclusive control over MCP servers` |

532| `managed-mcp.json` присутствует и пользователь, который в противном случае мог бы запустить Claude в Chrome, запускает `claude --chrome` | Claude Code завершает работу при запуске с `Claude in Chrome is blocked by your organization's managed MCP configuration (managed-mcp.json). An administrator can allow it with allowClaudeInChromeWithManagedMcp in device policy.` |

517| Сервер находится в списке запретов и пользователь запускает `claude mcp add` | `Cannot add MCP server "<name>": server is explicitly blocked by enterprise policy` |533| Сервер находится в списке запретов и пользователь запускает `claude mcp add` | `Cannot add MCP server "<name>": server is explicitly blocked by enterprise policy` |

518| Сервер не находится в списке разрешений и пользователь запускает `claude mcp add` | `Cannot add MCP server "<name>": not allowed by enterprise policy` |534| Сервер не находится в списке разрешений и пользователь запускает `claude mcp add` | `Cannot add MCP server "<name>": not allowed by enterprise policy` |

519| Пользователь запускает `claude mcp remove` на сервере из `managedMcpServers` | `MCP server "<name>" is provided by your organization (managed settings) and cannot be removed locally.` |535| Пользователь запускает `claude mcp remove` на сервере из `managedMcpServers` | `MCP server "<name>" is provided by your organization (managed settings) and cannot be removed locally.` |


541| `allowedMcpServers` | Список разрешений разрешенных серверов | Любой [файл настроек](/docs/ru/settings#where-settings-live); [Как сервер оценивается](#how-a-server-is-evaluated) говорит о том, как списки из нескольких областей и управляемых источников объединяются | Для применения, [источник управляемых настроек](/docs/ru/admin-setup#decide-how-settings-reach-devices): server-managed settings, `managed-settings.json`, профиль MDM или реестр |557| `allowedMcpServers` | Список разрешений разрешенных серверов | Любой [файл настроек](/docs/ru/settings#where-settings-live); [Как сервер оценивается](#how-a-server-is-evaluated) говорит о том, как списки из нескольких областей и управляемых источников объединяются | Для применения, [источник управляемых настроек](/docs/ru/admin-setup#decide-how-settings-reach-devices): server-managed settings, `managed-settings.json`, профиль MDM или реестр |

542| `deniedMcpServers` | Список запретов заблокированных серверов | Любой файл настроек; [Как сервер оценивается](#how-a-server-is-evaluated) говорит о том, как списки из нескольких областей и управляемых источников объединяются | То же, что `allowedMcpServers` |558| `deniedMcpServers` | Список запретов заблокированных серверов | Любой файл настроек; [Как сервер оценивается](#how-a-server-is-evaluated) говорит о том, как списки из нескольких областей и управляемых источников объединяются | То же, что `allowedMcpServers` |

543| `allowManagedMcpServersOnly` | Блокирует список разрешений только управляемыми источниками | Только источники управляемых настроек; [Ключи, читаемые из каждого источника администратора](/docs/ru/managed-settings#keys-read-from-every-admin-source) говорит о том, какие управляемые источники могут его включить. Параметр не имеет эффекта в других областях | То же, что `allowedMcpServers` |559| `allowManagedMcpServersOnly` | Блокирует список разрешений только управляемыми источниками | Только источники управляемых настроек; [Ключи, читаемые из каждого источника администратора](/docs/ru/managed-settings#keys-read-from-every-admin-source) говорит о том, какие управляемые источники могут его включить. Параметр не имеет эффекта в других областях | То же, что `allowedMcpServers` |

560| `allowClaudeInChromeWithManagedMcp` | Позволяет встроенному серверу Claude в Chrome работать наряду с `managed-mcp.json` | Управляемые настройки на устройстве только: профиль MDM, реестр HKLM или `managed-settings.json`. Server-managed settings и источники, доступные для записи пользователем, не имеют эффекта | MDM, GPO, управление флотом или любой процесс с правами администратора |

544| `allowAllClaudeAiMcps` | Загружает соединители claude.ai, которые Claude Code получает сам, наряду с `managed-mcp.json`. [Файл `managed-mcp.json` на хосте, на котором запущена облачная сессия, по-прежнему подавляет соединители этой сессии](#allow-claude-ai-connectors-alongside-the-managed-set) | Только источники управляемых настроек; параметр не имеет эффекта в других местах | То же, что `allowedMcpServers` |561| `allowAllClaudeAiMcps` | Загружает соединители claude.ai, которые Claude Code получает сам, наряду с `managed-mcp.json`. [Файл `managed-mcp.json` на хосте, на котором запущена облачная сессия, по-прежнему подавляет соединители этой сессии](#allow-claude-ai-connectors-alongside-the-managed-set) | Только источники управляемых настроек; параметр не имеет эффекта в других местах | То же, что `allowedMcpServers` |

545 562 

546<h2 id="related-resources">563<h2 id="related-resources">

Details

449| [`blockedMarketplaces`](/docs/ru/settings-reference#blockedmarketplaces) | Список блокировки источников маркетплейса. Заблокированные источники проверяются перед загрузкой, поэтому они никогда не касаются файловой системы. См. [управляемые ограничения маркетплейса](/docs/ru/plugins/org#restrict-what-users-can-install) |449| [`blockedMarketplaces`](/docs/ru/settings-reference#blockedmarketplaces) | Список блокировки источников маркетплейса. Заблокированные источники проверяются перед загрузкой, поэтому они никогда не касаются файловой системы. См. [управляемые ограничения маркетплейса](/docs/ru/plugins/org#restrict-what-users-can-install) |

450| [`channelsEnabled`](/docs/ru/settings-reference#channelsenabled) | Разрешить [каналы](/docs/ru/channels) для организации. См. [элементы управления предприятием](/docs/ru/channels#enterprise-controls) для значения по умолчанию на каждом плане |450| [`channelsEnabled`](/docs/ru/settings-reference#channelsenabled) | Разрешить [каналы](/docs/ru/channels) для организации. См. [элементы управления предприятием](/docs/ru/channels#enterprise-controls) для значения по умолчанию на каждом плане |

451| [`disableCommandPluginSources`](/docs/ru/settings-reference#disablecommandpluginsources) | Когда `true`, полностью блокирует [`command` источники плагинов](/docs/ru/plugins/marketplace-reference#command-plugin-source), поэтому объявленная маркетплейсом команда никогда не работает. Также блокирует команды [`headersHelper`](/docs/ru/plugins/host-marketplace#authenticate-archive-downloads) маркетплейса, кроме маркетплейса, который сами управляемые параметры объявляют. Когда не установлено, следует `allowManagedHooksOnly`. Требует Claude Code v2.1.229 или позже, и блок `headersHelper` требует v2.1.238 или позже |451| [`disableCommandPluginSources`](/docs/ru/settings-reference#disablecommandpluginsources) | Когда `true`, полностью блокирует [`command` источники плагинов](/docs/ru/plugins/marketplace-reference#command-plugin-source), поэтому объявленная маркетплейсом команда никогда не работает. Также блокирует команды [`headersHelper`](/docs/ru/plugins/host-marketplace#authenticate-archive-downloads) маркетплейса, кроме маркетплейса, который сами управляемые параметры объявляют. Когда не установлено, следует `allowManagedHooksOnly`. Требует Claude Code v2.1.229 или позже, и блок `headersHelper` требует v2.1.238 или позже |

452| [`disableSideloadFlags`](/docs/ru/settings-reference#disablesideloadflags) | Отклоните флаги `--plugin-dir`, `--plugin-url`, `--agents` и `--mcp-config` при запуске. В облачных сеансах Claude Code отбрасывает MCP серверы, которые сервер доставил через `--mcp-config`, кроме записей `type: "sdk"` в процессе, и запускает сеанс. Требует Claude Code v2.1.193 или позже |452| [`disableSideloadFlags`](/docs/ru/settings-reference#disablesideloadflags) | Отклоните флаги `--plugin-dir`, `--plugin-url`, `--agents` и `--mcp-config` при запуске. В облачных сеансах Claude Code вместо этого запускает сеанс и отбрасывает серверы `--mcp-config`, доставленные сервером, кроме исключений, которые перечисляет его [справочная запись](/docs/ru/settings-reference#disablesideloadflags). Требует Claude Code v2.1.193 или позже |

453| [`forceRemoteSettingsRefresh`](/docs/ru/settings-reference#forceremotesettingsrefresh) | Когда `true`, блокирует запуск CLI, пока управляемые параметры удаленного сервера не будут свежо получены, и выходит, если выборка не удается. См. [применение fail-closed](/docs/ru/server-managed-settings#enforce-fail-closed-startup) |453| [`forceRemoteSettingsRefresh`](/docs/ru/settings-reference#forceremotesettingsrefresh) | Когда `true`, блокирует запуск CLI, пока управляемые параметры удаленного сервера не будут свежо получены, и выходит, если выборка не удается. См. [применение fail-closed](/docs/ru/server-managed-settings#enforce-fail-closed-startup) |

454| [`managedMcpServers`](/docs/ru/settings-reference#managedmcpservers) | Удаленные MCP серверы, предоставленные каждому пользователю вместе с их собственными. Он предоставляет серверы, а не блокирует что-либо. См. [Предоставьте серверы через управляемые параметры](/docs/ru/managed-mcp#provide-servers-through-managed-settings). Требует Claude Code v2.1.259 или позже |454| [`managedMcpServers`](/docs/ru/settings-reference#managedmcpservers) | Удаленные MCP серверы, предоставленные каждому пользователю вместе с их собственными. Он предоставляет серверы, а не блокирует что-либо. См. [Предоставьте серверы через управляемые параметры](/docs/ru/managed-mcp#provide-servers-through-managed-settings). Требует Claude Code v2.1.259 или позже |

455| [`managedSourcesBehavior`](/docs/ru/settings-reference#managedsourcesbehavior) | Применяет ли Claude Code только управляемый источник с наивысшим приоритетом или [составляет каждый из них](#compose-every-managed-source) |455| [`managedSourcesBehavior`](/docs/ru/settings-reference#managedsourcesbehavior) | Применяет ли Claude Code только управляемый источник с наивысшим приоритетом или [составляет каждый из них](#compose-every-managed-source) |

mcp.md +33 −28

Details

237 237 

238[Добавление MCP серверов из конфигурации JSON](#add-mcp-servers-from-json-configuration) охватывает экранирование оболочки и флаг `--scope` для `add-json`. Чтобы поделиться сервером с вашей командой вместо этого, добавьте `--scope project` или добавьте запись под `mcpServers` в `.mcp.json` в корне вашего проекта и зафиксируйте её. [Область проекта](#project-scope) охватывает, как Claude Code загружает и одобряет этот файл.238[Добавление MCP серверов из конфигурации JSON](#add-mcp-servers-from-json-configuration) охватывает экранирование оболочки и флаг `--scope` для `add-json`. Чтобы поделиться сервером с вашей командой вместо этого, добавьте `--scope project` или добавьте запись под `mcpServers` в `.mcp.json` в корне вашего проекта и зафиксируйте её. [Область проекта](#project-scope) охватывает, как Claude Code загружает и одобряет этот файл.

239 239 

240Каждая команда `claude mcp add` и `claude mcp add-json` выводит строку `Added ...`. Чтобы проверить, что Claude Code подключился, запустите `claude mcp get <name>`; [Статус сервера](#server-status) охватывает статусы, которые он показывает, и шаг одобрения для серверов `.mcp.json`.240Каждая команда `claude mcp add` и `claude mcp add-json` выводит строку `Added ...` при успехе. Чтобы проверить, что Claude Code подключился, запустите `claude mcp get <name>`; [Статус сервера](#server-status) охватывает статусы, которые он показывает, и шаг одобрения для серверов `.mcp.json`.

241 241 

242<h3 id="managing-your-servers">242<h3 id="managing-your-servers">

243 Управление вашими серверами243 Управление вашими серверами


265 Статус сервера265 Статус сервера

266</h4>266</h4>

267 267 

268`claude mcp add` подтверждает успешное добавление, выводя строку `Added ...`, что означает, что конфигурация была записана. `claude mcp list` затем показывает статус здоровья рядом с каждым сервером, который он перечисляет, такой как `✔ Connected`, `! Needs authentication` или `✘ Failed to connect`. Статус отказа означает, что Claude Code не смог подключиться к этому серверу, а не то, что команда list не удалась.268`claude mcp add` подтверждает успешное добавление, выводя строку `Added ...`, что означает, что конфигурация была записана. Если команда выводит сообщение `was not saved` вместо этого, смотрите [MCP server was not saved or removed](/docs/ru/errors#mcp-server-was-not-saved-or-removed); для сообщения `may not have been saved` смотрите [MCP server may not have been saved or removed](/docs/ru/errors#mcp-server-may-not-have-been-saved-or-removed).

269 

270`claude mcp list` показывает статус здоровья рядом с каждым сервером, который он перечисляет, такой как `✔ Connected`, `! Needs authentication` или `✘ Failed to connect`. Статус отказа означает, что Claude Code не смог подключиться к этому серверу, а не то, что команда list не удалась.

269 271 

270Статусы в этом списке сообщают о решении конфигурации, а не о попытке подключения, поэтому Claude Code выводит их без подключения к серверу:272Статусы в этом списке сообщают о решении конфигурации, а не о попытке подключения, поэтому Claude Code выводит их без подключения к серверу:

271 273 


371* Получает уведомления `list_changed` с серверов на более новом пересмотре через [поток, который он держит открытым](#notification-streams-on-the-v2-runtime).373* Получает уведомления `list_changed` с серверов на более новом пересмотре через [поток, который он держит открытым](#notification-streams-on-the-v2-runtime).

372* Не регистрирует сервер [канала](#push-messages-with-channels), который подключается на более новом пересмотре, потому что этот пересмотр не может нести сообщения канала.374* Не регистрирует сервер [канала](#push-messages-with-channels), который подключается на более новом пересмотре, потому что этот пересмотр не может нести сообщения канала.

373* Не удаётся [вход MCP OAuth](#authenticate-with-remote-mcp-servers), чей ответ авторизации называет неожиданного издателя.375* Не удаётся [вход MCP OAuth](#authenticate-with-remote-mcp-servers), чей ответ авторизации называет неожиданного издателя.

376* Отправляет [учётные данные MCP OAuth](#authenticate-with-remote-mcp-servers) только на конечную точку токена, обслуживаемую через HTTPS или на `localhost`, `127.0.0.1` или `::1`. Вход не удаётся для сервера, чья конечная точка токена — это простой `http://` где-либо ещё, такой как устройство в вашей локальной сети. Смотрите [Refusing to send credentials to non-https token endpoint](/docs/ru/errors#refusing-to-send-credentials-to-non-https-token-endpoint).

374 377 

375Anthropic может сохранить конкретный сервер на более раннем протоколе или вне этого потока с флагом функции, который Claude Code получает.378Anthropic может сохранить конкретный сервер на более раннем протоколе или вне этого потока с флагом функции, который Claude Code получает.

376 379 


542 * В [облачных сеансах](/docs/ru/claude-code-on-the-web) вызов MCP к серверу плагина, который ещё не подключён, такой как сразу после пробуждения неактивного сеанса, запускает сервер по требованию и ждёт его подключения545 * В [облачных сеансах](/docs/ru/claude-code-on-the-web) вызов MCP к серверу плагина, который ещё не подключён, такой как сразу после пробуждения неактивного сеанса, запускает сервер по требованию и ждёт его подключения

543* **Заполнители пути**: `${CLAUDE_PLUGIN_ROOT}` разрешается в директорию установки плагина, `${CLAUDE_PLUGIN_DATA}` в его директорию [постоянного состояния](/docs/ru/plugins/components#path-variables-and-persistent-data) и `${CLAUDE_PROJECT_DIR}` в стабильный корень проекта. Подстановка применяется к:546* **Заполнители пути**: `${CLAUDE_PLUGIN_ROOT}` разрешается в директорию установки плагина, `${CLAUDE_PLUGIN_DATA}` в его директорию [постоянного состояния](/docs/ru/plugins/components#path-variables-and-persistent-data) и `${CLAUDE_PROJECT_DIR}` в стабильный корень проекта. Подстановка применяется к:

544 * серверам `stdio`: `command`, `args`, `env`547 * серверам `stdio`: `command`, `args`, `env`

545 * серверам `http`, `sse` и `ws`: `url`, `headers` и `headersHelper`. До версии v2.1.195 `headersHelper` передавал заполнитель как буквальную строку548 * серверам `http`, `sse` и `ws`: `url`, `headers` и `headersHelper`

546* **Доступ к пользовательскому окружению**: доступ к тем же переменным окружения, что и вручную настроенные серверы549* **Доступ к пользовательскому окружению**: доступ к тем же переменным окружения, что и вручную настроенные серверы

547* **Несколько типов транспорта**: поддержка транспортов stdio, SSE, HTTP и WebSocket, хотя поддержка транспорта может варьироваться по серверам550* **Несколько типов транспорта**: поддержка транспортов stdio, SSE, HTTP и WebSocket, хотя поддержка транспорта может варьироваться по серверам

548 551 


823Claude Code помечает удаленный сервер как требующий аутентификации, когда сервер отвечает с `401 Unauthorized` или `403 Forbidden`. То, что показывает Claude Code, зависит от сервера:826Claude Code помечает удаленный сервер как требующий аутентификации, когда сервер отвечает с `401 Unauthorized` или `403 Forbidden`. То, что показывает Claude Code, зависит от сервера:

824 827 

825* Для сервера, на который вы еще не вошли, любой из этих кодов состояния помечает его в `/mcp`, чтобы вы могли завершить поток OAuth.828* Для сервера, на который вы еще не вошли, любой из этих кодов состояния помечает его в `/mcp`, чтобы вы могли завершить поток OAuth.

826* Для [коннектора claude.ai](#use-mcp-servers-from-claude-ai), `401`, вызванный отклонением claude.ai вашего токена сеанса, не помечает коннектор, потому что повторная авторизация коннектора не может исправить вашу учетную запись. Claude Code показывает [состояние отклонения токена сеанса](/docs/ru/errors#claude-ai-rejected-the-session-token) вместо этого.829* Для [коннектора claude.ai](#use-mcp-servers-from-claude-ai), `401`, вызванный отклонением claude.ai вашего токена сеанса, не помечает коннектор, потому что повторная авторизация коннектора не может исправить вашу сессию входа. Claude Code вместо этого показывает [состояние отклонения токена сеанса](/docs/ru/errors#claude-ai-rejected-the-session-token).

827* Для сервера, чей заголовок `Authorization` вы настроили в `headers` или через [`headersHelper`](#use-dynamic-headers-for-custom-authentication), `401` или `403` при подключении не помечает сервер, потому что учетные данные для исправления — это те, которые вы настроили. Claude Code вместо этого сообщает о неудачном соединении. Если вы установили этот заголовок из ссылки `${VAR}`, проверьте, является ли эта переменная одной из тех, которые Claude Code [читает как пустые](#credential-variables-that-read-as-empty).830* Для сервера, чей заголовок `Authorization` вы настроили в `headers` или через [`headersHelper`](#use-dynamic-headers-for-custom-authentication), `401` или `403` при подключении не помечает сервер, потому что учетные данные для исправления — это те, которые вы настроили. Claude Code вместо этого сообщает о неудачном подключении. Если вы установили этот заголовок из ссылки `${VAR}`, проверьте, является ли эта переменная одной из тех, которые Claude Code [читает как пустые](#credential-variables-that-read-as-empty).

828* Для коннектора [доставленного в облачный сеанс](#how-connectors-reach-claude-code), Claude Code не запускает поток входа, потому что прокси сеанса аутентифицируется на коннекторе с авторизацией, которую вы предоставили в claude.ai. Когда коннектор там требует повторной авторизации, переподключитесь на [claude.ai/customize/connectors](https://claude.ai/customize/connectors) вместо сеанса.831* Для коннектора [доставленного в облачный сеанс](#how-connectors-reach-claude-code), Claude Code не запускает поток входа, потому что прокси сеанса аутентифицируется на коннекторе с авторизацией, которую вы предоставили в claude.ai. Когда коннектор там требует повторной авторизации, переподключитесь на [claude.ai/customize/connectors](https://claude.ai/customize/connectors) вместо сеанса.

829 832 

830Когда запрос к OAuth серверу, на который вы уже вошли, возвращает `401 Unauthorized`, Claude Code обновляет сохраненный токен, переподключается и повторяет запрос один раз. Он помечает сервер в `/mcp` только если этот повтор также не удается. До v2.1.206 обновление токена, которое не удалось по временной причине, такой как ошибка сети, помечало OAuth сервер как требующий аутентификации на остаток сеанса, даже если его токен обновления был все еще действителен.833Когда запрос к OAuth серверу, на который вы уже вошли, возвращает `401 Unauthorized`, Claude Code обновляет сохраненный токен, переподключается и повторяет запрос один раз. Он помечает сервер в `/mcp` только если этот повтор также не удается. До v2.1.206 обновление токена, которое не удалось по временной причине, такой как ошибка сети, помечало OAuth сервер как требующий аутентификации на остаток сеанса, даже если его токен обновления был все еще действителен.


833 836 

834Пользовательский сервер, который возвращает заголовок `WWW-Authenticate`, указывающий на его сервер авторизации, получает такое же автоматическое обнаружение, как и любой другой удаленный сервер.837Пользовательский сервер, который возвращает заголовок `WWW-Authenticate`, указывающий на его сервер авторизации, получает такое же автоматическое обнаружение, как и любой другой удаленный сервер.

835 838 

836Claude Code также показывает уведомление при запуске, когда один или несколько настроенных серверов требуют аутентификации, поэтому вам не нужно открывать `/mcp`, чтобы узнать, какие серверы требуют входа. Уведомление требует Claude Code v2.1.193 или позже. Оно считает только серверы, на которые вы можете войти из Claude Code. До v2.1.218 оно также считало [коннекторы claude.ai](#use-mcp-servers-from-claude-ai), которые не были подключены в claude.ai, которые вы можете подключить только из параметров claude.ai.839Claude Code также показывает уведомление при запуске, когда один или несколько настроенных серверов требуют аутентификации, поэтому вам не нужно открывать `/mcp`, чтобы узнать, какие серверы требуют входа. Уведомление требует Claude Code v2.1.193 или позже. Оно считает только серверы, на которые вы можете войти из Claude Code. До v2.1.218 оно также считало [коннекторы claude.ai](#use-mcp-servers-from-claude-ai), которые не были подключены в claude.ai, которые вы можете подключить только из настроек claude.ai.

837 840 

838Уведомление объявляет каждый сервер один раз и исключает его из подсчета при последующих запусках, пока этот сервер не подключится и снова не потребует входа. `/mcp` по-прежнему перечисляет каждый сервер, который требует входа.841Уведомление объявляет каждый сервер один раз и исключает его из подсчета при последующих запусках, пока этот сервер не подключится и снова не потребует входа. `/mcp` по-прежнему перечисляет каждый сервер, который требует входа.

839 842 

840В неинтерактивном режиме нет панели `/mcp`, поэтому Claude Code не может запустить поток OAuth для вас. Начиная с v2.1.196, когда настроенный сервер требует аутентификации во время запуска `claude -p` или Agent SDK с включенным [поиском инструментов](#scale-with-mcp-tool-search), что является значением по умолчанию, Claude Code сообщает Claude, что инструменты сервера недоступны, пока вы его не авторизуете. Claude затем может назвать сервер, который требует входа, вместо того чтобы отвечать так, как если бы сервер не был настроен. Завершите вход из интерактивного сеанса с `/mcp` или `claude mcp login <name>`.843В неинтерактивном режиме нет панели `/mcp`, поэтому Claude Code не может запустить поток OAuth для вас. Начиная с v2.1.196, когда настроенный сервер требует аутентификации во время запуска `claude -p` или Agent SDK с включенным [поиском инструментов](#scale-with-mcp-tool-search), что является значением по умолчанию, Claude Code сообщает Claude, что инструменты сервера недоступны, пока вы его не авторизуете. Claude затем может назвать сервер, который требует входа, вместо того чтобы отвечать так, как если бы сервер не был настроен. Завершите вход из интерактивного сеанса с `/mcp` или `claude mcp login <name>`.

841 844 

842Если вы настроили `headers.Authorization` для сервера и сервер отклоняет этот заголовок, Claude Code сообщает о неудачном соединении вместо возврата к OAuth. Проверьте, что токен действителен для конечной точки MCP, или удалите заголовок, чтобы использовать поток OAuth.845Если вы настроили `headers.Authorization` для сервера и сервер отклоняет этот заголовок, Claude Code сообщает о неудачном подключении вместо возврата к OAuth. Проверьте, что токен действителен для конечной точки MCP, или удалите заголовок, чтобы использовать поток OAuth.

843 846 

844<Steps>847<Steps>

845 <Step title="Добавьте сервер, требующий аутентификации">848 <Step title="Добавьте сервер, требующий аутентификации">


867 * Токены аутентификации хранятся безопасно и автоматически обновляются870 * Токены аутентификации хранятся безопасно и автоматически обновляются

868 * Используйте "Clear authentication" в меню `/mcp` для отзыва доступа871 * Используйте "Clear authentication" в меню `/mcp` для отзыва доступа

869 * Если ваш браузер не открывается автоматически, скопируйте предоставленный URL и откройте его вручную872 * Если ваш браузер не открывается автоматически, скопируйте предоставленный URL и откройте его вручную

870 * Если перенаправление браузера не удается с ошибкой соединения после аутентификации, вставьте полный URL обратного вызова из адресной строки браузера в приглашение URL, которое появляется в Claude Code873 * Если перенаправление браузера не удается с ошибкой подключения после аутентификации, вставьте полный URL обратного вызова из адресной строки браузера в приглашение URL, которое появляется в Claude Code

871 * Аутентификация OAuth работает с HTTP серверами874 * Аутентификация OAuth работает с HTTP серверами

872</Tip>875</Tip>

873 876 


895 898 

896Некоторые MCP серверы требуют определенный URI перенаправления, зарегистрированный заранее. По умолчанию Claude Code выбирает случайный доступный порт для обратного вызова OAuth. Используйте `--callback-port`, чтобы зафиксировать порт так, чтобы он соответствовал предварительно зарегистрированному URI перенаправления формы `http://localhost:PORT/callback`. Если вход на Claude Code v2.1.229 не удается с несоответствием URI перенаправления, см. примечание версии в разделе [Используйте предварительно настроенные учетные данные OAuth](#use-pre-configured-oauth-credentials).899Некоторые MCP серверы требуют определенный URI перенаправления, зарегистрированный заранее. По умолчанию Claude Code выбирает случайный доступный порт для обратного вызова OAuth. Используйте `--callback-port`, чтобы зафиксировать порт так, чтобы он соответствовал предварительно зарегистрированному URI перенаправления формы `http://localhost:PORT/callback`. Если вход на Claude Code v2.1.229 не удается с несоответствием URI перенаправления, см. примечание версии в разделе [Используйте предварительно настроенные учетные данные OAuth](#use-pre-configured-oauth-credentials).

897 900 

898Вы можете использовать `--callback-port` самостоятельно (с динамической регистрацией клиента) или вместе с `--client-id` (с предварительно настроенными учетными данными).901Вы можете использовать `--callback-port` отдельно (с динамической регистрацией клиента) или вместе с `--client-id` (с предварительно настроенными учетными данными).

899 902 

900```bash theme={null}903```bash theme={null}

901# Фиксированный порт обратного вызова с динамической регистрацией клиента904# Фиксированный порт обратного вызова с динамической регистрацией клиента


944 </Tab>947 </Tab>

945 948 

946 <Tab title="claude mcp add-json (только порт обратного вызова)">949 <Tab title="claude mcp add-json (только порт обратного вызова)">

947 Чтобы зафиксировать только порт обратного вызова и позволить Claude Code зарегистрировать клиента автоматически, установите `callbackPort` самостоятельно:950 Чтобы зафиксировать только порт обратного вызова и позволить Claude Code зарегистрировать клиента автоматически, установите `callbackPort` отдельно:

948 951 

949 ```bash theme={null}952 ```bash theme={null}

950 claude mcp add-json my-server \953 claude mcp add-json my-server \


973 Советы:976 Советы:

974 977 

975 * Секрет клиента хранится безопасно в цепочке ключей вашей системы (macOS) или файле учетных данных, а не в вашей конфигурации978 * Секрет клиента хранится безопасно в цепочке ключей вашей системы (macOS) или файле учетных данных, а не в вашей конфигурации

976 * Вы можете установить секрет клиента только при добавлении сервера. Когда вы аутентифицируетесь с помощью `claude mcp login` или из `/mcp`, Claude Code использует сохраненный секрет и не запрашивает его или не читает `MCP_CLIENT_SECRET`979 * Вы можете установить секрет клиента только при добавлении сервера. Когда вы аутентифицируетесь с `claude mcp login` или из `/mcp`, Claude Code использует сохраненный секрет и не запрашивает его или не читает `MCP_CLIENT_SECRET`

977 * Чтобы позже добавить или изменить секрет, удалите сервер с помощью `claude mcp remove <name>`, затем добавьте его снова с `--client-secret` и той же `--scope`980 * Чтобы позже добавить или изменить секрет, удалите сервер с `claude mcp remove <name>`, затем добавьте его снова с `--client-secret` и той же `--scope`

978 * Если сервер использует публичный OAuth клиент без секрета, используйте только `--client-id` без `--client-secret`981 * Если сервер использует публичный OAuth клиент без секрета, используйте только `--client-id` без `--client-secret`

979 * Эти флаги применяются только к транспортам HTTP и SSE. Они не влияют на серверы stdio982 * Эти флаги применяются только к HTTP и SSE транспортам. Они не влияют на серверы stdio

980 * Используйте `claude mcp get <name>` для проверки того, что учетные данные OAuth настроены для сервера983 * Используйте `claude mcp get <name>` для проверки того, что учетные данные OAuth настроены для сервера

981</Tip>984</Tip>

982 985 


1026 1029 

1027`oauth.scopes` имеет приоритет над `authServerMetadataUrl` и областями, которые сервер обнаруживает на `/.well-known`. Оставьте его неустановленным, чтобы позволить MCP серверу определить запрашиваемый набор областей.1030`oauth.scopes` имеет приоритет над `authServerMetadataUrl` и областями, которые сервер обнаруживает на `/.well-known`. Оставьте его неустановленным, чтобы позволить MCP серверу определить запрашиваемый набор областей.

1028 1031 

1029Начиная с v2.1.196, когда `oauth.scopes` не установлен, Claude Code запрашивает область, предоставленную заголовком `WWW-Authenticate` сервера или его метаданными защищенного ресурса, и не отправляет параметр `scope`, когда ни один из них не предоставляет его. Он больше не запрашивает полный каталог `scopes_supported` из автоматически обнаруженных метаданных сервера авторизации. Запрос этого каталога заставлял поставщиков идентификации, которые объявляют области только для администраторов или шаблонов, отклонять запрос авторизации с ошибкой `invalid_scope`. Метаданные, полученные из настроенного `authServerMetadataUrl`, по-прежнему предоставляют свой `scopes_supported` как запрашиваемые области.1032Начиная с v2.1.196, когда `oauth.scopes` не установлен, Claude Code запрашивает область, предоставленную заголовком `WWW-Authenticate` сервера или его метаданными защищенного ресурса, и не отправляет параметр `scope`, когда ни один из них не предоставляет его. Он больше не запрашивает полный каталог `scopes_supported` из автоматически обнаруженных метаданных сервера авторизации. Запрос этого каталога заставлял поставщиков идентификации, которые объявляют области только для администраторов или шаблоны, отклонять запрос авторизации с ошибкой `invalid_scope`. Метаданные, полученные из настроенного `authServerMetadataUrl`, по-прежнему предоставляют свой `scopes_supported` как запрашиваемые области.

1030 1033 

1031Если сервер авторизации объявляет `offline_access` в `scopes_supported`, Claude Code добавляет его к зафиксированным областям, чтобы токен доступа можно было обновить без нового входа в браузер.1034Если сервер авторизации объявляет `offline_access` в `scopes_supported`, Claude Code добавляет его к зафиксированным областям, чтобы токен доступа можно было обновить без нового входа в браузер.

1032 1035 

1033Если сервер позже возвращает 403 `insufficient_scope` для вызова инструмента, вызов не удается с сообщением [`needs additional permissions`](/docs/ru/errors#mcp-server-needs-you-to-sign-in-again), которое называет область, которую запрашивает сервер. Сервер показывается как требующий аутентификации в `/mcp`.1036Если сервер позже возвращает 403 `insufficient_scope` для вызова инструмента, вызов не удается с сообщением [`needs additional permissions`](/docs/ru/errors#mcp-server-needs-you-to-sign-in-again), которое называет область, которую запрашивает сервер. Сервер показывается как требующий аутентификации в `/mcp`.

1034 1037 

1035Если эта область не находится в вашем зафиксированном `oauth.scopes`, добавьте ее, затем запустите `/mcp` и аутентифицируйте сервер снова. Claude Code запрашивает зафиксированные области, а не область, которую назвал сервер, поэтому если вы аутентифицируетесь снова без добавления ее, токен, который вы получаете, по-прежнему ей не хватает.1038Если эта область не находится в вашем зафиксированном `oauth.scopes`, добавьте ее, затем запустите `/mcp` и аутентифицируйте сервер снова. Claude Code запрашивает зафиксированные области, а не область, которую назвал сервер, поэтому если вы аутентифицируетесь снова без добавления ее, токен, который вы получите, по-прежнему ей не хватает.

1036 1039 

1037<h3 id="use-dynamic-headers-for-custom-authentication">1040<h3 id="use-dynamic-headers-for-custom-authentication">

1038 Используйте динамические заголовки для пользовательской аутентификации1041 Используйте динамические заголовки для пользовательской аутентификации

1039</h3>1042</h3>

1040 1043 

1041Если ваш MCP сервер использует схему аутентификации, отличную от OAuth, такую как Kerberos, краткосрочные токены или внутреннее SSO, используйте `headersHelper` для генерации заголовков запроса во время подключения. Claude Code запускает команду и объединяет ее вывод в заголовки соединения.1044Если ваш MCP сервер использует схему аутентификации, отличную от OAuth, такую как Kerberos, краткосрочные токены или внутреннее SSO, используйте `headersHelper` для генерации заголовков запроса во время подключения. Claude Code запускает команду и объединяет ее вывод в заголовки подключения.

1042 1045 

1043```json theme={null}1046```json theme={null}

1044{1047{


1079 1082 

1080Когда вывод помощника включает заголовок `Authorization`, Claude Code использует это учетное данное как аутентификацию сервера и не возвращается к OAuth для сервера.1083Когда вывод помощника включает заголовок `Authorization`, Claude Code использует это учетное данное как аутентификацию сервера и не возвращается к OAuth для сервера.

1081 1084 

1082Если сервер отклоняет учетное данное помощника при подключении, Claude Code сообщает о неудачном соединении, а не помечает сервер как требующий аутентификации. Исправьте учетное данное, которое возвращает ваш помощник, затем переподключитесь из `/mcp`, чтобы повторно запустить помощника.1085Если сервер отклоняет учетное данное помощника при подключении, Claude Code сообщает о неудачном подключении, а не помечает сервер как требующий аутентификации. Исправьте учетное данное, которое возвращает ваш помощник, затем переподключитесь из `/mcp` для повторного запуска помощника.

1083 1086 

1084Claude Code устанавливает эти переменные окружения при выполнении помощника:1087Claude Code устанавливает эти переменные окружения при выполнении помощника:

1085 1088 


1091 1094 

1092Используйте их для написания одного скрипта помощника, который служит нескольким MCP серверам.1095Используйте их для написания одного скрипта помощника, который служит нескольким MCP серверам.

1093 1096 

1094Предоставленный плагином `headersHelper` не может ссылаться на значения [`${user_config.*}`](/docs/ru/plugins/manifest-reference#user-configuration) плагина, потому что команда запускается через оболочку. Claude Code сообщает о неправильной конфигурации сервера с [ошибкой](/docs/ru/errors#plugin-command-references-user-config) и не подставляет значение. Поместите `${user_config.KEY}` в поле `headers` сервера вместо этого, которое не анализируется оболочкой, или попросите скрипт помощника прочитать значение из файла конфигурации. До v2.1.207 `headersHelper` подставлял значения `${user_config.*}`.1097`headersHelper`, предоставленный плагином, не может ссылаться на значения [`${user_config.*}`](/docs/ru/plugins/manifest-reference#user-configuration) плагина, потому что команда запускается через оболочку. Claude Code сообщает о неправильной конфигурации сервера с [ошибкой](/docs/ru/errors#plugin-command-references-user-config) и не подставляет значение. Вместо этого поместите `${user_config.KEY}` в поле `headers` сервера, которое не анализируется оболочкой, или попросите скрипт помощника прочитать значение из файла конфигурации. До v2.1.207 `headersHelper` подставлял значения `${user_config.*}`.

1095 1098 

1096<h4 id="where-the-helper-runs">1099<h4 id="where-the-helper-runs">

1097 Где запускается помощник1100 Где запускается помощник


1101 1104 

1102| Где вы настроили сервер | Рабочий каталог |1105| Где вы настроили сервер | Рабочий каталог |

1103| :- | :- |1106| :- | :- |

1104| [Плагин](/docs/ru/plugins/components#mcp-servers) | Корневой каталог плагина. Требует Claude Code v2.1.195 или позже |1107| [Плагин](/docs/ru/plugins/components#mcp-servers) | Корневой каталог плагина |

1105| Проект `.mcp.json` или сервер [локальной области](#local-scope) | Каталог проекта, в котором объявлен сервер |1108| Проект `.mcp.json` или сервер [локальной области](#local-scope) | Каталог проекта, в котором объявлен сервер |

1106| Файл агента в вашем проекте, сервер из опции `mcpServers` SDK или метода `setMcpServers()`, или [`--mcp-config`](/docs/ru/cli-reference) | [Основной рабочий каталог](/docs/ru/permissions#working-directories) сеанса |1109| Файл агента в вашем проекте, сервер из опции `mcpServers` SDK или метода `setMcpServers()`, или [`--mcp-config`](/docs/ru/cli-reference) | [Основной рабочий каталог](/docs/ru/permissions#working-directories) сеанса |

1107| [Область пользователя](#user-scope), [управляемый MCP](/docs/ru/managed-mcp), [коннектор claude.ai](#use-mcp-servers-from-claude-ai), или файл агента из вне вашего проекта, включая один из каталога `--add-dir` | Ваш каталог конфигурации, `~/.claude` если вы не установили [`CLAUDE_CONFIG_DIR`](/docs/ru/env-vars) |1110| [Область пользователя](#user-scope), [управляемый MCP](/docs/ru/managed-mcp), [коннектор claude.ai](#use-mcp-servers-from-claude-ai) или файл агента из вне вашего проекта, включая один из каталога `--add-dir` | Ваш каталог конфигурации, `~/.claude` если вы не установили [`CLAUDE_CONFIG_DIR`](/docs/ru/env-vars) |

1108 1111 

1109До v2.1.238 Claude Code также запускал помощников серверов области пользователя, управляемых и коннекторов claude.ai, и файлов агентов из вне вашего проекта, из каталога, в котором вы его запустили.1112До v2.1.238 Claude Code также запускал помощников серверов области пользователя, управляемых и коннекторов claude.ai, и файлов агентов из вне вашего проекта, из каталога, в котором вы его запустили.

1110 1113 


1115`headersHelper`, который поставляет репозиторий или плагин, — это команда, которую вы не писали, поэтому Claude Code запускает ее без переменных учетных данных из вашей среды, таких как `ANTHROPIC_API_KEY`. Место, где вы настроили сервер, определяет, применяется ли это:1118`headersHelper`, который поставляет репозиторий или плагин, — это команда, которую вы не писали, поэтому Claude Code запускает ее без переменных учетных данных из вашей среды, таких как `ANTHROPIC_API_KEY`. Место, где вы настроили сервер, определяет, применяется ли это:

1116 1119 

1117* **Удалено**: сервер в проекте `.mcp.json` или в плагине, и встроенный сервер в файле агента из вашего проекта или из каталога `--add-dir`1120* **Удалено**: сервер в проекте `.mcp.json` или в плагине, и встроенный сервер в файле агента из вашего проекта или из каталога `--add-dir`

1118* **Не удалено**: сервер в [области пользователя](#user-scope) или [локальной области](#local-scope), в [управляемом MCP](/docs/ru/managed-mcp), из [коннектора claude.ai](#use-mcp-servers-from-claude-ai), или предоставленный SDK или [`--mcp-config`](/docs/ru/cli-reference), и встроенный сервер в файле агента из `~/.claude/agents/`, из управляемых параметров или переданный с `--agents`1121* **Не удалено**: сервер в [области пользователя](#user-scope) или [локальной области](#local-scope), в [управляемом MCP](/docs/ru/managed-mcp), из [коннектора claude.ai](#use-mcp-servers-from-claude-ai), или предоставленный SDK или [`--mcp-config`](/docs/ru/cli-reference), и встроенный сервер в файле агента из `~/.claude/agents/`, из управляемых настроек или переданный с `--agents`

1119 1122 

1120Помимо переменных `GIT_CONFIG_KEY_<n>` Git, Claude Code удаляет каждую переменную из вашей среды, чье имя выглядит как учетное данное, такое как имя с `TOKEN`, `SECRET`, `PASSWORD`, `KEY` или `AUTH` в нем в любом регистре, поэтому `ANTHROPIC_API_KEY` и `MY_REGISTRY_TOKEN` оба удаляются. Claude Code также удаляет фиксированный список переменных учетных данных, чьи имена не следуют этому шаблону, такие как `ANTHROPIC_CUSTOM_HEADERS`.1123Помимо переменных `GIT_CONFIG_KEY_<n>` Git, Claude Code удаляет каждую переменную из вашей среды, чье имя выглядит как учетное данное, такое как имя с `TOKEN`, `SECRET`, `PASSWORD`, `KEY` или `AUTH` в нем в любом регистре, поэтому `ANTHROPIC_API_KEY` и `MY_REGISTRY_TOKEN` оба удаляются. Claude Code также удаляет фиксированный список переменных учетных данных, чьи имена не следуют этому шаблону, такие как `ANTHROPIC_CUSTOM_HEADERS`.

1121 1124 


1125 Доверьте папку перед запуском ее headersHelper1128 Доверьте папку перед запуском ее headersHelper

1126</h4>1129</h4>

1127 1130 

1128Claude Code выполняет `headersHelper` как произвольную команду оболочки. Для сервера в проекте `.mcp.json` или в [локальной области](#local-scope), он запускает помощника только после того, как вы примете [диалог доверия](/docs/ru/permissions#project-allow-rules-and-workspace-trust) для каталога проекта, в котором объявлен сервер. До v2.1.238 сеанс `claude -p` или SDK запускал этих помощников без проверки доверия, и интерактивный сеанс запускал их один раз, когда вы доверили родительской папке.1131Claude Code выполняет `headersHelper` как произвольную команду оболочки. Для сервера в проекте `.mcp.json` или в [локальной области](#local-scope), он запускает помощника только после того, как вы примете [диалог доверия](/docs/ru/permissions#project-allow-rules-and-workspace-trust) для каталога проекта, в котором объявлен сервер. До v2.1.238 сеанс `claude -p` или SDK запускал этих помощников без проверки доверия, и интерактивный сеанс запускал их после того, как вы доверили родительской папке.

1129 1132 

1130* **Доверие, которое не считается**: доверие родительской папки и автоматическое доверие, которое получает сеанс `claude -p` или SDK для [hooks в файлах параметров](/docs/ru/permissions#what-runs-before-you-trust-a-folder)1133* **Доверие, которое не считается**: доверие родительской папки и автоматическое доверие, которое получает сеанс `claude -p` или SDK для [хуков в файлах настроек](/docs/ru/permissions#what-runs-before-you-trust-a-folder)

1131* **Пока вы не доверите папке**: Claude Code подключает сервер только с его статическими `headers`. В сеансе `claude -p` или SDK он также выводит одну строку [`headersHelper not run`](/docs/ru/errors#headershelper-not-run) на stderr, сообщая вам, как предоставить доверие.1134* **До тех пор, пока вы не доверите папке**: Claude Code подключает сервер только с его статическими `headers`. В сеансе `claude -p` или SDK он также выводит одну строку [`headersHelper not run`](/docs/ru/errors#headershelper-not-run) на stderr, сообщая вам, как предоставить доверие.

1132* **Доверие без диалога**: установите `projects["<path>"].hasTrustDialogAccepted` на `true` в `~/.claude.json`. `<path>` — это папка, на которой [Project allow rules and workspace trust](/docs/ru/permissions#project-allow-rules-and-workspace-trust) говорит Claude Code ключ доверия.1135* **Доверие без диалога**: установите `projects["<path>"].hasTrustDialogAccepted` на `true` в `~/.claude.json`. `<path>` — это папка, на которую Claude Code ключает доверие согласно [Project allow rules and workspace trust](/docs/ru/permissions#project-allow-rules-and-workspace-trust).

1133 1136 

1134Claude Code применяет то же правило к серверу, объявленному встроенным в [файл агента](/docs/ru/sub-agents#scope-mcp-servers-to-a-subagent), проверяя, откуда этот файл агента пришел: ваш проект, для файла в его каталоге `.claude/agents/`, или каталог `--add-dir`. Пока вы не [доверите этому проекту или каталогу самому](/docs/ru/permissions#what-runs-before-you-trust-a-folder), Claude Code не загружает сервер вообще, поэтому его помощник никогда не запускается либо.1137Claude Code применяет то же правило к серверу, объявленному встроенным в [файл агента](/docs/ru/sub-agents#scope-mcp-servers-to-a-subagent), проверяя, откуда этот файл агента пришел: ваш проект, для файла в его каталоге `.claude/agents/`, или каталог `--add-dir`. До тех пор, пока вы не [доверите этому проекту или каталогу самому](/docs/ru/permissions#what-runs-before-you-trust-a-folder), Claude Code не загружает сервер вообще, поэтому его помощник никогда не запускается.

1135 1138 

1136<h2 id="add-mcp-servers-from-json-configuration">1139<h2 id="add-mcp-servers-from-json-configuration">

1137 Добавьте MCP servers из конфигурации JSON1140 Добавьте MCP servers из конфигурации JSON


1288Ваша организация может установить элементы управления для каждого инструмента на [connectors claude.ai](https://claude.com/docs/connectors). Claude Code читает эти параметры при запуске и применяет их локально, кроме как в [локальных и SSH сеансах](#how-connectors-reach-claude-code) настольного приложения. Там настольное приложение скрывает инструменты `blocked` перед доставкой connector, и параметр `ask` не достигает Claude Code, поэтому он применяет обычные [правила разрешений](/docs/ru/permissions) сеанса к этим инструментам вместо запроса при каждом вызове. В сеансах, где Claude Code загружает connectors сам, запустите `/mcp`, чтобы увидеть, какой параметр применяется к каждому инструменту на connector.1291Ваша организация может установить элементы управления для каждого инструмента на [connectors claude.ai](https://claude.com/docs/connectors). Claude Code читает эти параметры при запуске и применяет их локально, кроме как в [локальных и SSH сеансах](#how-connectors-reach-claude-code) настольного приложения. Там настольное приложение скрывает инструменты `blocked` перед доставкой connector, и параметр `ask` не достигает Claude Code, поэтому он применяет обычные [правила разрешений](/docs/ru/permissions) сеанса к этим инструментам вместо запроса при каждом вызове. В сеансах, где Claude Code загружает connectors сам, запустите `/mcp`, чтобы увидеть, какой параметр применяется к каждому инструменту на connector.

1289 1292 

1290* **Инструмент установлен на `ask`**: Claude Code запрашивает при каждом вызове с причиной `Your organization requires approval for this tool`. Запрос появляется даже в режимах разрешений `acceptEdits`, `auto` и `bypassPermissions` [permission modes](/docs/ru/permissions#permission-modes), и никогда не предлагает опцию запомнить ваш выбор. [Правила разрешений](/docs/ru/permissions), которые совпадают с инструментом, также не пропускают запрос. В режиме `dontAsk`, который никогда не запрашивает, Claude Code отклоняет вызов вместо этого.1293* **Инструмент установлен на `ask`**: Claude Code запрашивает при каждом вызове с причиной `Your organization requires approval for this tool`. Запрос появляется даже в режимах разрешений `acceptEdits`, `auto` и `bypassPermissions` [permission modes](/docs/ru/permissions#permission-modes), и никогда не предлагает опцию запомнить ваш выбор. [Правила разрешений](/docs/ru/permissions), которые совпадают с инструментом, также не пропускают запрос. В режиме `dontAsk`, который никогда не запрашивает, Claude Code отклоняет вызов вместо этого.

1291* **Инструмент установлен на `blocked`**: Claude Code фильтрует инструмент перед тем, как Claude его видит, поэтому он никогда не появляется в списке инструментов. Настольное приложение и чат claude.ai применяют тот же параметр `blocked`, поэтому Claude не может использовать инструмент там либо, и вы не можете скрыть инструмент из сеансов настольного приложения, сохраняя его доступным в чате. Настольное приложение пропускает connector, все инструменты которого заблокированы.1294* **Инструмент установлен на `blocked`**: Claude Code фильтрует инструмент перед тем, как Claude его видит, поэтому он никогда не появляется в списке инструментов Claude. В сеансах, где Claude Code загружает connectors сам, список инструментов `/mcp` всё ещё показывает инструмент, помеченный как `disabled by your organization`.

1295 

1296Настольное приложение и чат claude.ai применяют тот же параметр `blocked`, поэтому Claude не может использовать инструмент там либо, и вы не можете скрыть инструмент из сеансов настольного приложения, сохраняя его доступным в чате. Настольное приложение пропускает connector, все инструменты которого заблокированы.

1292 1297 

1293<h3 id="disable-claude-ai-connectors">1298<h3 id="disable-claude-ai-connectors">

1294 Отключение connectors claude.ai1299 Отключение connectors claude.ai


1440 1445 

1441Ваш сервер получает любые аргументы, которые выбрал Claude, поэтому продолжайте проверять комбинацию на стороне сервера.1446Ваш сервер получает любые аргументы, которые выбрал Claude, поэтому продолжайте проверять комбинацию на стороне сервера.

1442 1447 

1443Когда Claude Code не может создать схему, которую принимает API, или при развёртывании, которое не получает удалённую конфигурацию, включающую переписывание, он пропускает этот инструмент, записывает причину в журнал сервера и оставляет другие инструменты сервера доступными. Версии более ранние, чем v2.1.195, пропускают каждый инструмент, входная схема которого имеет корневой `anyOf`, `oneOf` или `allOf`.1448Когда Claude Code не может создать схему, которую принимает API, или при развёртывании, которое не получает удалённую конфигурацию, включающую переписывание, он пропускает этот инструмент, записывает причину в журнал сервера и оставляет другие инструменты сервера доступными.

1444 1449 

1445<h2 id="tools-with-invalid-input-schemas">1450<h2 id="tools-with-invalid-input-schemas">

1446 Инструменты с недействительными схемами входных данных1451 Инструменты с недействительными схемами входных данных

memory.md +20 −10

Details

89 Напишите эффективные инструкции89 Напишите эффективные инструкции

90</h3>90</h3>

91 91 

92Файлы CLAUDE.md загружаются в контекстное окно в начале каждой сессии, потребляя токены вместе с вашим разговором. [Визуализация контекстного окна](/docs/ru/context-window) показывает, где загружается CLAUDE.md относительно остального контекста запуска. Поскольку это контекст, а не принудительная конфигурация, то, как вы пишете инструкции, влияет на то, насколько надёжно Claude их следует. Конкретные, краткие, хорошо структурированные инструкции работают лучше всего.92Claude рассматривает файлы CLAUDE.md как контекст, а не принудительную конфигурацию, поэтому то, как вы пишете инструкции, влияет на то, насколько надёжно Claude их следует. Напишите инструкции, которые достаточно конкретны для проверки:

93 

94**Размер**: нацеливайтесь на менее 200 строк на файл CLAUDE.md. Более длинные файлы потребляют больше контекста и снижают соответствие. Если ваши инструкции растут, используйте [path-scoped rules](#path-specific-rules), чтобы инструкции загружались только когда Claude работает с совпадающими файлами. Вы также можете разделить содержимое на [imports](#import-additional-files) для организации, хотя импортированные файлы всё ещё загружаются и входят в контекстное окно при запуске.

95 

96**Структура**: используйте заголовки markdown и маркеры для группировки связанных инструкций. Claude сканирует структуру так же, как читатели: организованные разделы легче следовать, чем плотные абзацы.

97 

98**Специфичность**: напишите инструкции, которые достаточно конкретны для проверки. Например:

99 93 

100* «Используйте отступ из 2 пробелов» вместо «Правильно форматируйте код»94* «Используйте отступ из 2 пробелов» вместо «Правильно форматируйте код»

101* «Запустите `npm test` перед коммитом» вместо «Протестируйте ваши изменения»95* «Запустите `npm test` перед коммитом» вместо «Протестируйте ваши изменения»

102* «Обработчики API находятся в `src/api/handlers/`» вместо «Держите файлы организованными»96* «Обработчики API находятся в `src/api/handlers/`» вместо «Держите файлы организованными»

103 97 

104**Согласованность**: если два правила противоречат друг другу, Claude может выбрать одно произвольно. Периодически проверяйте ваши файлы CLAUDE.md, вложенные файлы CLAUDE.md в подкаталогах и [`.claude/rules/`](#organize-rules-with-claude/rules/) для удаления устаревших или конфликтующих инструкций. В монорепозиториях используйте [`claudeMdExcludes`](#exclude-specific-claude-md-files) для пропуска файлов CLAUDE.md от других команд, которые не имеют отношения к вашей работе.98Держите ваши файлы короткими, организованными и согласованными:

99 

100* **Размер**: нацеливайтесь на менее 200 строк на файл CLAUDE.md. Более длинные файлы потребляют больше контекста и снижают соответствие. Переместите инструкции, которые имеют значение только для части кодовой базы, в [path-scoped rules](#path-specific-rules), которые загружаются только когда Claude работает с совпадающими файлами. [Импорты](#import-additional-files) помогают вам организовать длинный файл, но не снижают его стоимость контекста, потому что импортированные файлы также загружаются при запуске.

101* **Структура**: группируйте связанные инструкции под заголовками markdown и маркерами. Организованные разделы легче для Claude следовать, чем плотные абзацы.

102* **Согласованность**: если два правила противоречат друг другу, Claude может выбрать одно произвольно. Периодически проверяйте ваши файлы CLAUDE.md, вложенные файлы CLAUDE.md в подкаталогах и [`.claude/rules/`](#organize-rules-with-claude/rules/) для удаления устаревших или конфликтующих инструкций. Чтобы Claude нашёл их для вас, [запустите аудит подсказок](#audit-your-instruction-files).

103 

104<h4 id="audit-your-instruction-files">

105 Аудит ваших файлов инструкций

106</h4>

105 107 

106Чтобы Claude проверил эти файлы на устаревшие или конфликтующие инструкции, запустите `/doctor prompt-audit` в сессии. Claude читает ваши файлы CLAUDE.md, CLAUDE.local.md и AGENTS.md, а также правила, skills, команды, подагентов и стили вывода в `.claude/` и `~/.claude/`. Он ищет проблемы, такие как инструкции, написанные для более старых моделей, ссылки на файлы или команды, которые не существуют, и файлы, которые противоречат друг другу. Вы получаете отчёт о результатах и набор предложенных правок, и ничего в ваших файлах не изменяется, пока вы не попросите Claude применить их.108Чтобы Claude проверил ваши файлы инструкций на устаревшие или конфликтующие содержимое, запустите `/doctor prompt-audit` в сессии. Claude ищет проблемы, такие как инструкции, написанные для более старых моделей, ссылки на файлы или команды, которые не существуют, и файлы, которые противоречат друг другу. Вы получаете отчёт о результатах с предложенными правками, и ничего в ваших файлах не изменяется, пока вы не попросите Claude применить их.

107 109 

108Чтобы проверить один файл или каталог вместо этого, передайте его путь, например `/doctor prompt-audit .claude/skills/deploy`. Проверка выполняется через встроенный skill `/claude-api`, поэтому он недоступен, пока этот skill отключён в [`skillOverrides`](/docs/ru/skills#override-skill-visibility-from-settings) или с [`disableBundledSkills`](/docs/ru/settings-reference#disablebundledskills). `/doctor prompt-audit` требует Claude Code v2.1.283 или позже.110По умолчанию аудит охватывает ваши файлы CLAUDE.md, CLAUDE.local.md и AGENTS.md, а также правила, skills, команды, подагентов и стили вывода в `.claude/` и `~/.claude/`. Чтобы проверить один файл или каталог вместо этого, передайте его путь, например `/doctor prompt-audit .claude/skills/deploy`.

111 

112Аудит выполняется через встроенный skill `/claude-api`. Он недоступен, пока этот skill отключён в [`skillOverrides`](/docs/ru/skills#override-skill-visibility-from-settings) или с [`disableBundledSkills`](/docs/ru/settings-reference#disablebundledskills). `/doctor prompt-audit` требует Claude Code v2.1.283 или позже.

109 113 

110<h3 id="import-additional-files">114<h3 id="import-additional-files">

111 Импортируйте дополнительные файлы115 Импортируйте дополнительные файлы


115 119 

116Допускаются как относительные, так и абсолютные пути. Относительные пути разрешаются относительно файла, содержащего импорт, а не рабочего каталога. Импортированные файлы могут рекурсивно импортировать другие файлы с максимальной глубиной четыре перехода.120Допускаются как относительные, так и абсолютные пути. Относительные пути разрешаются относительно файла, содержащего импорт, а не рабочего каталога. Импортированные файлы могут рекурсивно импортировать другие файлы с максимальной глубиной четыре перехода.

117 121 

122Чтобы импортировать файл, путь которого содержит пробелы, поставьте обратную косую черту перед каждым пробелом. Без обратных косых черт путь заканчивается в первом пробеле, даже если импорт находится на отдельной строке. Путь, заключённый в кавычки, вообще не импортируется, с обратными косыми чертами или без них. Этот импорт загружает файл из папки с именем `Design Docs`:

123 

124```text theme={null}

125- API conventions @Design\ Docs/api-conventions.md

126```

127 

118Анализ импорта пропускает диапазоны кода Markdown и блоки кода с ограждением. Чтобы упомянуть путь в вашем CLAUDE.md без импорта, оберните его в обратные кавычки: написание `` `@README` `` сохраняет текст буквальным, в то время как `@README` вне обратных кавычек импортирует файл.128Анализ импорта пропускает диапазоны кода Markdown и блоки кода с ограждением. Чтобы упомянуть путь в вашем CLAUDE.md без импорта, оберните его в обратные кавычки: написание `` `@README` `` сохраняет текст буквальным, в то время как `@README` вне обратных кавычек импортирует файл.

119 129 

120Чтобы включить README, package.json и руководство по рабочему процессу, ссылайтесь на них с синтаксисом `@` в любом месте вашего CLAUDE.md:130Чтобы включить README, package.json и руководство по рабочему процессу, ссылайтесь на них с синтаксисом `@` в любом месте вашего CLAUDE.md:

model-config.md +68 −65

Details

65Псевдонимы указывают на рекомендуемую версию для вашего поставщика и обновляются со временем. Чтобы закрепить определённую версию, используйте полное имя модели, например `claude-opus-5-5`, или установите соответствующую переменную окружения, например `ANTHROPIC_DEFAULT_OPUS_MODEL`.65Псевдонимы указывают на рекомендуемую версию для вашего поставщика и обновляются со временем. Чтобы закрепить определённую версию, используйте полное имя модели, например `claude-opus-5-5`, или установите соответствующую переменную окружения, например `ANTHROPIC_DEFAULT_OPUS_MODEL`.

66 66 

67<Note>67<Note>

68 Sonnet 5.5 требует Claude Code версии 2.1.284 или позже, а Opus 5.5 требует версии 2.1.280 или позже. Запустите `claude update` для обновления.68 Sonnet 5.5 требует Claude Code версии 2.1.284 или позже, а Opus 5.5 требует версии 2.1.280 или позже. Если запрос для одной из них из более старой версии не удаётся, см. [Claude Code does not support this model](/docs/ru/errors#claude-code-does-not-support-this-model). Запустите `claude update` для обновления.

69</Note>69</Note>

70 70 

71<h3 id="work-with-fable">71<h3 id="work-with-fable">


104 104 

105В интерактивных сеансах Claude Code показывает запрос согласия перед запросом Fable, который выставляет кредиты использования. Члены планов Enterprise с организационным выставлением счётов не видят запрос. Вы можете продолжить работу на Fable, используя кредиты использования, или переключиться на вашу модель по умолчанию. Вы также можете отклонить запрос:105В интерактивных сеансах Claude Code показывает запрос согласия перед запросом Fable, который выставляет кредиты использования. Члены планов Enterprise с организационным выставлением счётов не видят запрос. Вы можете продолжить работу на Fable, используя кредиты использования, или переключиться на вашу модель по умолчанию. Вы также можете отклонить запрос:

106 106 

107* В средстве выбора `/model` вы сохраняете вашу текущую модель.107* Когда вы выбираете модель Fable с помощью `/model`, вы сохраняете вашу текущую модель.

108* Во время сеанса Claude Code продолжает ход на вашей модели по умолчанию.108* Во время сеанса Claude Code продолжает ход на вашей модели по умолчанию.

109 109 

110После того как вы выберете продолжить работу на Fable, используя кредиты использования, Claude Code больше не показывает запрос.110После того как вы выберете продолжить работу на Fable, используя кредиты использования, Claude Code больше не показывает запрос.


117* В фоновом сеансе ответьте до крайнего срока.117* В фоновом сеансе ответьте до крайнего срока.

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

119 119 

120В [неинтерактивном режиме](/docs/ru/headless) с флагом `-p` и через Agent SDK Claude Code никогда не показывает запрос согласия. Когда запрос Fable там выставляет кредиты использования, Claude Code выставляет его без запроса.120В сеансе, размещённом другим приложением через [Agent SDK](/docs/ru/agent-sdk/overview), появляется ли запрос, зависит от этого приложения. Если он появляется и никто не ответит до того же крайнего срока [`dialogExpiry`](/docs/ru/settings-reference#dialogexpiry), Claude Code завершает ход без отправки запроса.

121 

122В [неинтерактивном режиме](/docs/ru/headless) с флагом `-p` и в приложении Agent SDK, которое не показывает запрос, Claude Code никогда не запрашивает согласие. Когда запрос Fable там выставляет кредиты использования, Claude Code выставляет его без запроса.

121 123 

122<h3 id="setting-your-model">124<h3 id="setting-your-model">

123 Установка вашей модели125 Установка вашей модели


164 166 

165Когда Claude Code не может определить, какие PreModelSwitch hooks доставляют [управляемые плагины](/docs/ru/settings-reference#enabledplugins) вашей организации, например потому что управляемый плагин не загрузился, он отказывает в переключении вместо его применения, и он проверяет снова при каждой новой попытке. См. [Model switch was blocked by a PreModelSwitch hook](/docs/ru/errors#model-switch-was-blocked-by-a-premodelswitch-hook) для сообщения и восстановления.167Когда Claude Code не может определить, какие PreModelSwitch hooks доставляют [управляемые плагины](/docs/ru/settings-reference#enabledplugins) вашей организации, например потому что управляемый плагин не загрузился, он отказывает в переключении вместо его применения, и он проверяет снова при каждой новой попытке. См. [Model switch was blocked by a PreModelSwitch hook](/docs/ru/errors#model-switch-was-blocked-by-a-premodelswitch-hook) для сообщения и восстановления.

166 168 

167Когда вы переключаете модели через метод [Agent SDK](/docs/ru/agent-sdk/overview) `setModel()` или с устройства, подключённого через [Remote Control](/docs/ru/remote-control), или приложение, такое как [Desktop app](/docs/ru/desktop), которое запускает CLI Claude Code для вас, Claude Code проверяет, что строка — это та, которую он распознаёт, перед её сохранением. Эта проверка требует Claude Code версии 2.1.200 или позже. Проверка выбора Remote Control требует Claude Code версии 2.1.260 или позже на вашей машине. В Anthropic API Claude Code распознаёт:169Когда вы переключаете модели через метод [Agent SDK](/docs/ru/agent-sdk/overview) `setModel()`, через приложение, такое как [Desktop app](/docs/ru/desktop), или с устройства, подключённого через [Remote Control](/docs/ru/remote-control), Claude Code проверяет значение при переключении:

168 170 

169* псевдоним модели171* **Agent SDK или приложение**: с Claude Code версии 2.1.268 или позже, если Claude Code не принимает ID модели локально, как это происходит для вашего [пользовательского варианта модели](#add-a-custom-model-option), он подтверждает ID у вашего поставщика при первом переключении сеанса на него. Подтверждение выполняется на каждом поставщике, и ID, который ваш поставщик не предлагает, отклоняется при переключении вместо сбоя при следующем запросе.

170* запись из средства выбора `/model`172* **Remote Control**: в Anthropic API Claude Code проверяет значение локально и не отправляет запрос.

171* любое имя, которое начинается с `claude-`

172* значение, которое вы сами настроили как [пользовательский вариант модели](#add-a-custom-model-option) или в [`modelOverrides`](#override-model-ids-per-version)

173 173 

174Claude Code отклоняет нераспознанную строку с `Model "<name>" is not a recognized model id.` и сеанс сохраняет свою текущую модель, вместо сохранения строки и сбоя при следующем запросе. См. [справку по ошибкам](/docs/ru/errors#model-is-not-a-recognized-model-id) для шагов восстановления.174См. [Model is not a recognized model id](/docs/ru/errors#model-is-not-a-recognized-model-id) и [Model not found](/docs/ru/errors#model-not-found) для сообщений.

175 175 

176Проверка запускается только в Anthropic API. На Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, [Claude Platform on AWS](/docs/ru/claude-platform-on-aws) и за [шлюзом LLM](/docs/ru/llm-gateway) или пользовательским `ANTHROPIC_BASE_URL`, ваш поставщик или шлюз определяет имена моделей, поэтому Claude Code пропускает любую строку без проверки. Проверка также не охватывает флаг `--model`, переменную окружения `ANTHROPIC_MODEL` или параметр `model`; неправильно введённое значение там производит [There's an issue with the selected model](/docs/ru/errors#theres-an-issue-with-the-selected-model) при первом запросе вместо этого. Claude Code по-прежнему может написать [строку диагностики нераспознанной модели](/docs/ru/errors#unrecognized-model-id-on-a-request) во время запроса на каждом поставщике.176Если вы установите модель с флагом `--model`, переменной окружения `ANTHROPIC_MODEL` или параметром `model`, Claude Code не проверяет её заранее, и неправильно введённое значение производит [There's an issue with the selected model](/docs/ru/errors#theres-an-issue-with-the-selected-model) при первом запросе.

177 177 

178Когда запрошенная модель имеет запланированную дату снятия с производства или автоматически переназначается на более новую версию, Claude Code показывает предупреждение, которое называет запрошенную модель. Интерактивные сеансы показывают его как уведомление при запуске. Начиная с версии 2.1.182, то же предупреждение записывается в stderr в [неинтерактивном режиме](/docs/ru/headless) при использовании формата вывода текста по умолчанию. Проверка также охватывает `model`, установленный в [фронтматтере подагента](/docs/ru/sub-agents). Предупреждение stderr подавляется для `--output-format json` и `stream-json`; прочитайте фактическую модель из поля `modelUsage` [результирующего сообщения](/docs/ru/headless#get-structured-output) вместо этого.178Когда запрошенная модель имеет запланированную дату снятия с производства или автоматически переназначается на более новую версию, Claude Code показывает предупреждение, которое называет запрошенную модель. Интерактивные сеансы показывают его как уведомление при запуске. Начиная с версии 2.1.182, то же предупреждение записывается в stderr в [неинтерактивном режиме](/docs/ru/headless) при использовании формата вывода текста по умолчанию. Проверка также охватывает `model`, установленный в [фронтматтере подагента](/docs/ru/sub-agents). Предупреждение stderr подавляется для `--output-format json` и `stream-json`; прочитайте фактическую модель из поля `modelUsage` [результирующего сообщения](/docs/ru/headless#get-structured-output) вместо этого.

179 179 


241 Ограничение выбора модели241 Ограничение выбора модели

242</h2>242</h2>

243 243 

244Администраторы предприятия могут использовать `availableModels` в [управляемых или политических параметрах](/docs/ru/managed-settings) для ограничения того, какие модели могут выбирать пользователи. Записи соответствуют семейству моделей, такому как `sonnet`, префиксу версии, такому как `claude-sonnet-4-5`, или полному идентификатору модели, такому как `claude-sonnet-4-5-20250929`. Префикс версии также соответствует более поздним идентификаторам моделей, которые расширяют его еще одним сегментом, поэтому `claude-fable-5` разрешает как Fable 5, так и Fable 5.1, а `claude-fable-5-1` разрешает только Fable 5.1. Чтобы заблокировать модель, которую разрешает список, или чтобы каждая запись идентификатора модели разрешала только версию, которую она называет, см. [Блокировка конкретных моделей или версий](#block-specific-models-or-versions).244Администраторы могут использовать `availableModels` в [управляемых или политических параметрах](/docs/ru/managed-settings) для ограничения того, какие модели могут выбирать пользователи. Записи соответствуют семейству моделей, такому как `sonnet`, префиксу версии, такому как `claude-sonnet-4-5`, или полному идентификатору модели, такому как `claude-sonnet-4-5-20250929`. Префикс версии также соответствует более поздним идентификаторам моделей, которые расширяют его еще одним сегментом, поэтому `claude-fable-5` разрешает как Fable 5, так и Fable 5.1, а `claude-fable-5-1` разрешает только Fable 5.1. Чтобы заблокировать модель, которую разрешает список, или чтобы каждая запись идентификатора модели разрешала только версию, которую она называет, см. [Блокировка конкретных моделей или версий](#block-specific-models-or-versions).

245 245 

246На платформах, которые встраивают Claude Code и устанавливают [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/ru/env-vars), конфигурация модели хоста имеет приоритет над управляемыми параметрами модели, в то время как управляемый список разрешений `availableModels` остается в силе, если только хост не предоставляет свой собственный; [Исключения из приоритета управляемых параметров](/docs/ru/settings#exceptions-to-managed-settings-precedence) указывает, какие ключи и переменные переопределяет хост.246На платформах, которые встраивают Claude Code и устанавливают [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/ru/env-vars), конфигурация модели хоста имеет приоритет над управляемыми параметрами модели, в то время как управляемый список разрешений `availableModels` остается в силе, если только хост не предоставляет свой собственный; [Исключения из приоритета управляемых параметров](/docs/ru/settings#exceptions-to-managed-settings-precedence) указывает, какие ключи и переменные переопределяет хост.

247 247 


249 249 

250* **Модель основной сессии**: `/model`, флаг `--model`, переменная окружения `ANTHROPIC_MODEL`, параметр `model`, [`ANTHROPIC_DEFAULT_MODEL`](#set-a-default-model-for-new-sessions) и модель, восстановленная при [возобновлении сессии](#setting-your-model)250* **Модель основной сессии**: `/model`, флаг `--model`, переменная окружения `ANTHROPIC_MODEL`, параметр `model`, [`ANTHROPIC_DEFAULT_MODEL`](#set-a-default-model-for-new-sessions) и модель, восстановленная при [возобновлении сессии](#setting-your-model)

251* **Разрешение псевдонимов**: переменные окружения `ANTHROPIC_DEFAULT_OPUS_MODEL`, `ANTHROPIC_DEFAULT_SONNET_MODEL`, `ANTHROPIC_DEFAULT_HAIKU_MODEL` и `ANTHROPIC_DEFAULT_FABLE_MODEL` не могут перенаправить разрешенный псевдоним на модель вне списка251* **Разрешение псевдонимов**: переменные окружения `ANTHROPIC_DEFAULT_OPUS_MODEL`, `ANTHROPIC_DEFAULT_SONNET_MODEL`, `ANTHROPIC_DEFAULT_HAIKU_MODEL` и `ANTHROPIC_DEFAULT_FABLE_MODEL` не могут перенаправить разрешенный псевдоним на модель вне списка

252* **Быстрый режим**: команда `/fast` отказывает переключаться, когда это неявно переключилось бы на модель Opus вне списка, с сообщением "is not in your organization's allowed models"252* **Fast mode**: команда `/fast` отказывает переключаться, когда это неявно переключилось бы на модель Opus вне списка, с сообщением "is not in your organization's allowed models"

253* **Модели подагента и товарища**: поле `model` в [подагенте](/docs/ru/sub-agents#choose-a-model) frontmatter, параметр `model` инструмента Agent, модели товарищей [команды агентов](/docs/ru/agent-teams#specify-teammates-and-models), `CLAUDE_CODE_SUBAGENT_MODEL` и, в v2.1.197 и более ранних версиях, средство выбора модели в мастере `/agents`&#x20;253* **Модели подагента и товарища**: поле `model` в [подагенте](/docs/ru/sub-agents#choose-a-model) frontmatter, параметр `model` инструмента Agent, модели товарищей [команды агентов](/docs/ru/agent-teams#specify-teammates-and-models), `CLAUDE_CODE_SUBAGENT_MODEL` и, в v2.1.197 и более ранних версиях, средство выбора модели в мастере `/agents`&#x20;

254* **Модели навыков и команд**: frontmatter `model` в [навыках и командах](/docs/ru/skills)254* **Модели skills и команд**: frontmatter `model` в [skills и командах](/docs/ru/skills)

255* **Модель советника**: настроенный параметр [`advisorModel`](/docs/ru/advisor) и флаг `--advisor`255* **Модель советника**: настроенный параметр [`advisorModel`](/docs/ru/advisor) и флаг `--advisor`

256* **Модель фонового агента**: модель, выбранная в [средстве выбора диспетчеризации](/docs/ru/agent-view)256* **Модель фонового агента**: модель, выбранная в [средстве выбора диспетчеризации](/docs/ru/agent-view)

257 257 


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

270 270 

271 Где работает подстановка самой новой разрешенной версии выше, заблокированный псевдоним семейства следует ей вместо этого. До v2.1.222 псевдоним отступал как любое другое заблокированное значение на каждом поставщике271 Где работает подстановка самой новой разрешенной версии выше, заблокированный псевдоним семейства следует ей вместо этого. До v2.1.222 псевдоним отступал как любое другое заблокированное значение на каждом поставщике

272* **Переопределение навыка или команды**: Claude Code игнорирует переопределение, включая заблокированный псевдоним семейства, и навык или команда запускаются на модели сессии. Навык или команда, которая [запускается в подагенте](/docs/ru/skills#run-skills-in-a-subagent), следует поведению подагента выше вместо этого272* **Переопределение skill или команды**: Claude Code игнорирует переопределение, включая заблокированный псевдоним семейства, и skill или команда запускаются на модели сессии. Skill или команда, которая [запускается в подагенте](/docs/ru/skills#run-skills-in-a-subagent), следует поведению подагента выше вместо этого

273* **Параметр `advisorModel`**: советник отключен для сессии273* **Параметр `advisorModel`**: советник отключен для сессии

274* **Флаг `--advisor`**: Claude Code выходит с ошибкой при запуске. В [фоновой сессии](/docs/ru/agent-view) он запускает сессию без советника вместо выхода274* **Флаг `--advisor`**: Claude Code выходит с ошибкой при запуске. В [фоновой сессии](/docs/ru/agent-view) он запускает сессию без советника вместо выхода

275 275 


278Изменения модели, которые Claude Code делает от вашего имени, проверяются таким же образом:278Изменения модели, которые Claude Code делает от вашего имени, проверяются таким же образом:

279 279 

280* **[Цепочки резервных моделей](#fallback-model-chains)**: записи вне списка разрешений удаляются280* **[Цепочки резервных моделей](#fallback-model-chains)**: записи вне списка разрешений удаляются

281* **Обновления режима Plan**: на Anthropic API и Claude Platform on AWS обновление, такое как [`opusplan`](#opusplan-model-setting) на исключенную модель, использует самую новую разрешенную версию семейства обновления. На поставщиках с идентификаторами моделей, специфичными для поставщика, и когда никакая версия не разрешена, обновление пропускается и планирование продолжается на модели сессии281* **Обновления Plan Mode**: на Anthropic API и Claude Platform on AWS обновление, такое как [`opusplan`](#opusplan-model-setting) на исключенную модель, использует самую новую разрешенную версию семейства обновления. На поставщиках с идентификаторами моделей, специфичными для поставщика, и когда никакая версия не разрешена, обновление пропускается и планирование продолжается на модели сессии

282* **[Автоматический резервный вариант модели](#automatic-model-fallback)**: резервный вариант, целевой объект которого исключен, не запускается, поэтому помеченный запрос заканчивается отказом вместо этого282* **[Автоматический резервный вариант модели](#automatic-model-fallback)**: резервный вариант, целевой объект которого исключен, не запускается, поэтому помеченный запрос заканчивается отказом вместо этого

283* **[Классификатор режима Auto](/docs/ru/permission-modes#eliminate-prompts-with-auto-mode)**: значение по умолчанию Claude Sonnet 5 классификатора применяется только когда список разрешений разрешает Sonnet 5. Когда он исключен, классификатор запускается на модели сессии, которую список разрешений уже управляет, или на модели Opus, когда сессия запускается на [модели Fable](#work-with-fable). На поставщиках, отличных от Anthropic API, этот резервный вариант Opus запускается на модели Opus поставщика по умолчанию без консультации со списком разрешений. Требуется Claude Code v2.1.210 или позже283* **[Классификатор режима Auto](/docs/ru/permission-modes#eliminate-prompts-with-auto-mode)**: значение по умолчанию Claude Sonnet 5 классификатора применяется только когда список разрешений разрешает Sonnet 5. Когда он исключен, классификатор запускается на модели сессии, которую список разрешений уже управляет, или на модели Opus, когда сессия запускается на [модели Fable](#work-with-fable). На поставщиках, отличных от Anthropic API, этот резервный вариант Opus запускается на модели Opus поставщика по умолчанию без консультации со списком разрешений. Требуется Claude Code v2.1.210 или позже

284* **[Быстрый режим](/docs/ru/fast-mode)**: включение быстрого режима отказывается, когда модель, на которой сессия будет запускаться впоследствии, находится вне списка разрешений284* **[Fast mode](/docs/ru/fast-mode)**: включение fast mode отказывается, когда модель, на которой сессия будет запускаться впоследствии, находится вне списка разрешений

285 285 

286```json theme={null}286```json theme={null}

287{287{


297 297 

298| Механизм доставки | CLI и IDE | Локальные сессии Desktop | Веб-, мобильные и облачные сессии | Agent SDK и неинтерактивные | Cowork |298| Механизм доставки | CLI и IDE | Локальные сессии Desktop | Веб-, мобильные и облачные сессии | Agent SDK и неинтерактивные | Cowork |

299| :- | :- | :- | :- | :- | :- |299| :- | :- | :- | :- | :- | :- |

300| [Управляемые параметры сервера](/docs/ru/server-managed-settings) из консоли администратора | Применяется | Применяется | Применяется, кроме сессий [Claude Tag](https://claude.com/docs/claude-tag/overview) | Применяется | Не доставляется |300| [Управляемые параметры сервера](/docs/ru/server-managed-settings) из консоли администратора | Применяется | Применяется | Применяется, кроме сессий [Claude Tag](https://claude.com/docs/claude-tag/overview) | Применяется | Удаленные сессии Cowork: сервер проверяет модель. На машине пользователя: не доставляется. |

301| [MDM или файлы управляемых параметров](/docs/ru/managed-settings#delivery-mechanisms) | Применяется | Применяется | Не доставляется в средах, размещенных Anthropic; в [самостоятельно размещенных средах](/docs/ru/self-hosted-environments) применяется из образа runner согласно [как Claude Code объединяет управляемые источники](/docs/ru/managed-settings#how-claude-code-combines-managed-sources) | Применяется | Применяется где развернуто |301| [MDM или файлы управляемых параметров](/docs/ru/managed-settings#delivery-mechanisms) | Применяется | Применяется | Не доставляется в средах, размещенных Anthropic; в [самостоятельно размещенных средах](/docs/ru/self-hosted-environments) применяется из образа runner согласно [как Claude Code объединяет управляемые источники](/docs/ru/managed-settings#how-claude-code-combines-managed-sources) | Применяется | Применяется где развернуто |

302 302 

303* [Облачные сессии](/docs/ru/claude-code-on-the-web), включая те, которые вы запускаете из приложения Desktop, по умолчанию запускаются на управляемых Anthropic виртуальных машинах: параметры, развернутые на вашем устройстве, не достигают их, поэтому доставляйте список разрешений через управляемые параметры сервера. Сессии, которые ваша организация маршрутизирует в [самостоятельно размещенную среду](/docs/ru/self-hosted-environments), запускаются на вашем собственном вычислении и также читают файл управляемых параметров в образе runner. [Как Claude Code объединяет управляемые источники](/docs/ru/managed-settings#how-claude-code-combines-managed-sources) указывает, когда этот файл применяется. Переключение модели в середине сессии в облачной сессии отклоняется, когда запрошенная модель исключена списком разрешений. Когда список `availableModels` в ваших управляемых параметрах сервера не пуст, сервер отклоняет запрос на запуск облачной сессии на модели, которую список исключает, на claude.ai/code или из приложения Desktop.303* [Облачные сессии](/docs/ru/claude-code-on-the-web), включая те, которые вы запускаете из приложения Desktop, по умолчанию запускаются на управляемых Anthropic виртуальных машинах: параметры, развернутые на вашем устройстве, не достигают их, поэтому доставляйте список разрешений через управляемые параметры сервера. Сессии, которые ваша организация маршрутизирует в [самостоятельно размещенную среду](/docs/ru/self-hosted-environments), запускаются на вашем собственном вычислении и также читают файл управляемых параметров в образе runner. [Как Claude Code объединяет управляемые источники](/docs/ru/managed-settings#how-claude-code-combines-managed-sources) указывает, когда этот файл применяется. Переключение модели в середине сессии в облачной сессии отклоняется, когда запрошенная модель исключена списком разрешений. Когда список `availableModels` в ваших управляемых параметрах сервера не пуст, сервер отклоняет запрос на запуск облачной сессии на модели, которую список исключает, на claude.ai/code или из приложения Desktop.

304* Сессии [Claude Tag](https://claude.com/docs/claude-tag/overview) запускаются в облачных средах, но не получают управляемые параметры сервера; в [самостоятельно размещенной среде](/docs/ru/self-hosted-environments) они все еще читают файл управляемых параметров в образе runner. Чтобы установить модель для этих сессий, см. [Выбор модели для области](https://claude.com/docs/claude-tag/admins/customize#choose-the-model-for-a-scope) в руководстве администратора Claude Tag.304* Сессии [Claude Tag](https://claude.com/docs/claude-tag/overview) запускаются в облачных средах, но не получают управляемые параметры сервера; в [самостоятельно размещенной среде](/docs/ru/self-hosted-environments) они все еще читают файл управляемых параметров в образе runner. Чтобы установить модель для этих сессий, см. [Выбор модели для области](https://claude.com/docs/claude-tag/admins/customize#choose-the-model-for-a-scope) в руководстве администратора Claude Tag.

305* Cowork, вкладка агентской работы в приложении Claude Desktop, запускает свои сессии на Claude Code, но по замыслу не получает управляемые параметры сервера из консоли администратора claude.ai. Файл управляемых параметров применяется к сессиям Cowork, когда он присутствует там, где запускается сессия; удаленные сессии Cowork запускаются на управляемых Anthropic виртуальных машинах, где развернутый на устройстве файл отсутствует.305* Cowork, вкладка агентской работы в приложении Claude Desktop, запускает свои сессии на Claude Code, но по замыслу не получает управляемые параметры сервера из консоли администратора claude.ai. Когда список `availableModels` в ваших управляемых параметрах сервера не пуст и пользователь выбирает модель вне него, сервер отклоняет эту модель для удаленной сессии Cowork. Файл управляемых параметров применяется к сессиям Cowork, когда он присутствует там, где запускается сессия; удаленные сессии Cowork запускаются на управляемых Anthropic виртуальных машинах, где развернутый на устройстве файл отсутствует.

306* Сессии на [поставщиках третьих сторон](/docs/ru/server-managed-settings#platform-availability), таких как Amazon Bedrock, Agent Platform Google Cloud, Microsoft Foundry и [Claude Platform on AWS](/docs/ru/claude-platform-on-aws), не получают управляемые параметры сервера, поэтому доставляйте список разрешений через MDM или файлы управляемых параметров там.306* Сессии на [поставщиках третьих сторон](/docs/ru/server-managed-settings#platform-availability), таких как Amazon Bedrock, Agent Platform Google Cloud, Microsoft Foundry и [Claude Platform on AWS](/docs/ru/claude-platform-on-aws), не получают управляемые параметры сервера, поэтому доставляйте список разрешений через MDM или файлы управляемых параметров там.

307* Доставка, управляемая сервером, также требует, чтобы сессия аутентифицировалась с помощью [подходящего входа или ключа](/docs/ru/server-managed-settings#platform-availability). Флоты, которые генерируют ключи только через скрипт [`apiKeyHelper`](/docs/ru/settings-reference#apikeyhelper), должны доставлять список разрешений через MDM или файлы управляемых параметров.307* Доставка, управляемая сервером, также требует, чтобы сессия аутентифицировалась с помощью [подходящего входа или ключа](/docs/ru/server-managed-settings#platform-availability). Флоты, которые генерируют ключи только через скрипт [`apiKeyHelper`](/docs/ru/settings-reference#apikeyhelper), должны доставлять список разрешений через MDM или файлы управляемых параметров.

308* Вкладка Desktop Code также размещает [сессии SSH](/docs/ru/desktop#ssh-sessions), которые читают файл управляемых параметров с удаленного хоста, на котором они запускаются. См. [Управляемые параметры Desktop](/docs/ru/desktop#managed-settings).308* Вкладка Desktop Code также размещает [сессии SSH](/docs/ru/desktop#ssh-sessions), которые читают файл управляемых параметров с удаленного хоста, на котором они запускаются. См. [Управляемые параметры Desktop](/docs/ru/desktop#managed-settings).


751| Установка глобального стандартного | Запустите `/config` и переключите Thinking Mode. Сохранено как `alwaysThinkingEnabled` в `~/.claude/settings.json` |751| Установка глобального стандартного | Запустите `/config` и переключите Thinking Mode. Сохранено как `alwaysThinkingEnabled` в `~/.claude/settings.json` |

752| Отключение через переменную окружения | Установите [`MAX_THINKING_TOKENS=0`](/docs/ru/env-vars), что отключает размышление на Anthropic API, кроме Opus 5.5, Sonnet 5.5 и моделей Fable. На [сторонних поставщиках](/docs/ru/third-party-integrations) Claude Code опускает параметр `thinking` вместо этого, и модели адаптивного рассуждения все еще могут думать. Другие значения применяются только с [фиксированным бюджетом размышления](#adaptive-reasoning-and-fixed-thinking-budgets) |752| Отключение через переменную окружения | Установите [`MAX_THINKING_TOKENS=0`](/docs/ru/env-vars), что отключает размышление на Anthropic API, кроме Opus 5.5, Sonnet 5.5 и моделей Fable. На [сторонних поставщиках](/docs/ru/third-party-integrations) Claude Code опускает параметр `thinking` вместо этого, и модели адаптивного рассуждения все еще могут думать. Другие значения применяются только с [фиксированным бюджетом размышления](#adaptive-reasoning-and-fixed-thinking-budgets) |

753 753 

754Вы не можете отключить размышление на Opus 5.5, Sonnet 5.5 или моделях Fable. Переключение сеанса, `alwaysThinkingEnabled` и `MAX_THINKING_TOKENS=0` не имеют эффекта там, и модель решает на каждом шаге, сколько думать на основе уровня усилий.754Вы не можете отключить размышление на Opus 5.5, Sonnet 5.5 или моделях Fable. Переключение сеанса и `/config` строка показывают `Thinking can't be turned off` для этих моделей вместо предложения переключателя, и сохраненный `alwaysThinkingEnabled: false` или `MAX_THINKING_TOKENS=0` не имеет эффекта там. На этих моделях модель решает на каждом шаге, сколько думать на основе уровня усилий. Сохраненный параметр применяется снова, когда вы переключаетесь на модель, которая его принимает.

755 755 

756Claude Code сворачивает вывод размышления по умолчанию. Нажмите `Ctrl+O`, чтобы переключить подробный режим и увидеть рассуждение как серый курсивный текст. Интерактивные сеансы на Anthropic API получают отредактированные блоки размышления по умолчанию, поэтому установите `showThinkingSummaries: true` в [параметрах](/docs/ru/settings), если вы хотите, чтобы полные резюме были доступны при расширении. Вам выставляется счет за все сгенерированные токены размышления, даже когда они свернуты или отредактированы.756Claude Code сворачивает вывод размышления по умолчанию. Нажмите `Ctrl+O`, чтобы переключить подробный режим и увидеть рассуждение как серый курсивный текст. Интерактивные сеансы на Anthropic API получают отредактированные блоки размышления по умолчанию, поэтому установите `showThinkingSummaries: true` в [параметрах](/docs/ru/settings), если вы хотите, чтобы полные резюме были доступны при расширении. Вам выставляется счет за все сгенерированные токены размышления, даже когда они свернуты или отредактированы.

757 757 


784 784 

785Окно контекста 1M использует стандартное ценообразование модели без премии за токены сверх 200K. Для планов, где расширенный контекст включен в вашу подписку, использование остается покрытым вашей подпиской. Для планов, которые получают доступ к расширенному контексту через кредиты использования, токены выставляются в счет кредитов использования.785Окно контекста 1M использует стандартное ценообразование модели без премии за токены сверх 200K. Для планов, где расширенный контекст включен в вашу подписку, использование остается покрытым вашей подпиской. Для планов, которые получают доступ к расширенному контексту через кредиты использования, токены выставляются в счет кредитов использования.

786 786 

787Если ваша учетная запись поддерживает контекст 1M, параметр появляется в средстве выбора `/model` в последних версиях Claude Code. Если вы его не видите, попробуйте перезагрузить сеанс.787Если ваша учетная запись поддерживает контекст 1M, параметр появляется в средстве выбора `/model` в последних версиях Claude Code. Если вы его не видите, перезагрузите сеанс, и на сторонних поставщиках проверьте, [закрепила ли ваша развертывание модель](#pin-models-for-third-party-deployments) с переменной `ANTHROPIC_DEFAULT_*_MODEL`.

788 788 

789Вы также можете использовать суффикс `[1m]` с псевдонимами моделей или полными именами моделей:789Вы также можете использовать суффикс `[1m]` с псевдонимами моделей или полными именами моделей:

790 790 


910 910 

911| Переменная окружения | Описание |911| Переменная окружения | Описание |

912| - | - |912| - | - |

913| `ANTHROPIC_DEFAULT_FABLE_MODEL` | Модель для использования для `fable`, и идентификатор модели, который Claude Code распознает как Fable модель для [автоматического переключения модели](#automatic-model-fallback) у поставщиков третьих сторон |913| `ANTHROPIC_DEFAULT_FABLE_MODEL` | Модель для использования с `fable` и идентификатор модели, который Claude Code распознает как модель Fable для [автоматического переключения модели](#automatic-model-fallback) у сторонних поставщиков |

914| `ANTHROPIC_DEFAULT_OPUS_MODEL` | Модель для использования для `opus`, или для `opusplan` при активном Plan Mode. |914| `ANTHROPIC_DEFAULT_OPUS_MODEL` | Модель для использования с `opus` или для `opusplan` когда активен Plan Mode. |

915| `ANTHROPIC_DEFAULT_SONNET_MODEL` | Модель для использования для `sonnet`, или для `opusplan` при неактивном Plan Mode. |915| `ANTHROPIC_DEFAULT_SONNET_MODEL` | Модель для использования с `sonnet` или для `opusplan` когда Plan Mode неактивен. |

916| `ANTHROPIC_DEFAULT_HAIKU_MODEL` | Модель для использования для `haiku`, или [фоновой функциональности](/docs/ru/costs#background-token-usage) |916| `ANTHROPIC_DEFAULT_HAIKU_MODEL` | Модель для использования с `haiku` или [фоновая функциональность](/docs/ru/costs#background-token-usage) |

917| `CLAUDE_CODE_SUBAGENT_MODEL` | Модель по умолчанию для [subagents](/docs/ru/sub-agents#choose-a-model), [agent team](/docs/ru/agent-teams#specify-teammates-and-models) товарищей по команде и [workflow](/docs/ru/workflows) агентов, которым не назначена модель другим способом. Принимает псевдоним, такой как `haiku`, или полное имя модели. Модель для каждого вызова или поле `model` определения, включая `inherit`, имеет приоритет. Чтобы изменить это, установите [`CLAUDE_CODE_SUBAGENT_MODEL_FORCE`](/docs/ru/sub-agents#run-every-subagent-on-one-model) |917| `CLAUDE_CODE_SUBAGENT_MODEL` | Модель по умолчанию для [подагентов](/docs/ru/sub-agents#choose-a-model), товарищей по [команде агентов](/docs/ru/agent-teams#specify-teammates-and-models) и агентов [workflow](/docs/ru/workflows), которым не назначена модель другим способом. Принимает псевдоним, такой как `haiku`, или полное имя модели. Модель для каждого вызова или поле `model` определения, включая `inherit`, имеет приоритет. Чтобы изменить это, установите [`CLAUDE_CODE_SUBAGENT_MODEL_FORCE`](/docs/ru/sub-agents#run-every-subagent-on-one-model) |

918 918 

919На поставщиках третьих сторон [Настройка отображения и возможностей закрепленной модели](#customize-pinned-model-display-and-capabilities) описывает, что показывает строка закрепленной модели в средстве выбора `/model`.919У сторонних поставщиков [Настройка отображения и возможностей закреплённой модели](#customize-pinned-model-display-and-capabilities) описывает, что показывает строка закреплённой модели в средстве выбора `/model`.

920 920 

921Примечание: `ANTHROPIC_SMALL_FAST_MODEL` устарел в пользу `ANTHROPIC_DEFAULT_HAIKU_MODEL`.921Примечание: `ANTHROPIC_SMALL_FAST_MODEL` устарела в пользу

922`ANTHROPIC_DEFAULT_HAIKU_MODEL`.

922 923 

923<h3 id="pin-models-for-third-party-deployments">924<h3 id="pin-models-for-third-party-deployments">

924 Закрепление моделей для развертываний третьих сторон925 Закрепление моделей для развёртываний у сторонних поставщиков

925</h3>926</h3>

926 927 

927При развертывании Claude Code через [Amazon Bedrock](/docs/ru/amazon-bedrock), [Google Cloud's Agent Platform](/docs/ru/google-vertex-ai), [Microsoft Foundry](/docs/ru/microsoft-foundry) или [Claude Platform on AWS](/docs/ru/claude-platform-on-aws) закрепите версии моделей перед развертыванием для пользователей.928При развёртывании Claude Code через [Amazon Bedrock](/docs/ru/amazon-bedrock), [Google Cloud's Agent Platform](/docs/ru/google-vertex-ai), [Microsoft Foundry](/docs/ru/microsoft-foundry) или [Claude Platform on AWS](/docs/ru/claude-platform-on-aws) закрепите версии моделей перед развёртыванием для пользователей.

928 929 

929Без закрепления Claude Code использует псевдонимы моделей, такие как `fable`, `opus`, `sonnet` и `haiku`, которые разрешаются в встроенный идентификатор модели по умолчанию для каждого поставщика. Это значение по умолчанию может отставать от последнего выпуска Anthropic, и модель, на которую оно указывает, может быть еще не включена в учетную запись пользователя. Когда значение по умолчанию недоступно, пользователи Amazon Bedrock и Google Cloud's Agent Platform видят уведомление и сеанс переходит на более раннюю версию модели по умолчанию, или на модель Sonnet по умолчанию, когда значение по умолчанию является моделью Opus и нет доступной версии Opus. Пользователи Microsoft Foundry видят ошибки вместо этого, потому что Microsoft Foundry не имеет эквивалентной проверки при запуске.930Без закрепления Claude Code использует псевдонимы моделей, такие как `fable`, `opus`, `sonnet` и `haiku`, которые разрешаются в встроенный идентификатор модели по умолчанию для каждого поставщика. Этот идентификатор по умолчанию может отставать от последнего выпуска Anthropic, и модель, на которую он указывает, может быть ещё не включена в учётной записи пользователя. Когда идентификатор по умолчанию недоступен, пользователи Amazon Bedrock и Google Cloud's Agent Platform видят уведомление, и сеанс переключается на более раннюю версию модели по умолчанию или на модель Sonnet по умолчанию, когда идентификатор по умолчанию является моделью Opus и нет доступной версии Opus. Пользователи Microsoft Foundry видят ошибки вместо этого, потому что Microsoft Foundry не имеет эквивалентной проверки при запуске.

930 931 

931На Amazon Bedrock и Google Cloud's Agent Platform пользователь, который запускает сеанс на конкретной версии Sonnet или Opus, например с `--model`, `ANTHROPIC_MODEL` или параметром `model`, закрепляет эту версию как значение по умолчанию сеанса для соответствующего псевдонима: проверка при запуске пропускает встроенное значение по умолчанию, которое оно заменяет, и не показывает уведомление о переключении. До версии 2.1.211 проверка выполнялась и могла показать уведомление даже когда модель сеанса была явно настроена.932На Amazon Bedrock и Google Cloud's Agent Platform пользователь, который запускает сеанс на конкретной версии Sonnet или Opus, например с помощью `--model`, `ANTHROPIC_MODEL` или параметра `model`, закрепляет эту версию как идентификатор по умолчанию сеанса для соответствующего псевдонима: проверка при запуске пропускает встроенный идентификатор по умолчанию, который она заменяет, и не показывает уведомление о переключении. До версии 2.1.211 проверка выполнялась и могла показать уведомление даже когда модель сеанса была явно настроена.

932 933 

933<Warning>934<Warning>

934 Установите переменные окружения модели на конкретные идентификаторы версий как часть вашей начальной настройки. Закрепление позволяет вам контролировать, когда ваши пользователи переходят на новую модель.935 Установите переменные окружения модели на конкретные идентификаторы версий как часть вашей начальной настройки. Закрепление позволяет вам контролировать, когда ваши пользователи переходят на новую модель.

935</Warning>936</Warning>

936 937 

937Используйте следующие переменные окружения с идентификаторами моделей, специфичными для версии, для вашего поставщика:938Используйте следующие переменные окружения с идентификаторами моделей для конкретных версий вашего поставщика:

938 939 

939| Поставщик | Пример |940| Поставщик | Пример |

940| :- | :- |941| :- | :- |


942| Google Cloud's Agent Platform | `export ANTHROPIC_DEFAULT_OPUS_MODEL='claude-opus-4-8'` |943| Google Cloud's Agent Platform | `export ANTHROPIC_DEFAULT_OPUS_MODEL='claude-opus-4-8'` |

943| Microsoft Foundry | `export ANTHROPIC_DEFAULT_OPUS_MODEL='claude-opus-4-8'` |944| Microsoft Foundry | `export ANTHROPIC_DEFAULT_OPUS_MODEL='claude-opus-4-8'` |

944 945 

945Применяйте тот же шаблон для `ANTHROPIC_DEFAULT_FABLE_MODEL`, `ANTHROPIC_DEFAULT_SONNET_MODEL` и `ANTHROPIC_DEFAULT_HAIKU_MODEL`. Для текущих и устаревших идентификаторов моделей во всех поставщиках см. [Обзор моделей](https://platform.claude.com/docs/en/about-claude/models/overview). Чтобы обновить пользователей до новой версии модели, обновите эти переменные окружения и переразверните.946Применяйте тот же шаблон для `ANTHROPIC_DEFAULT_FABLE_MODEL`, `ANTHROPIC_DEFAULT_SONNET_MODEL` и `ANTHROPIC_DEFAULT_HAIKU_MODEL`. Для текущих и устаревших идентификаторов моделей у всех поставщиков см. [Обзор моделей](https://platform.claude.com/docs/en/about-claude/models/overview). Чтобы обновить пользователей до новой версии модели, обновите эти переменные окружения и переразверните.

946 947 

947Чтобы включить [расширенный контекст](#extended-context) для закрепленной модели, добавьте `[1m]` к идентификатору модели в `ANTHROPIC_DEFAULT_OPUS_MODEL`, `ANTHROPIC_DEFAULT_SONNET_MODEL` или `ANTHROPIC_DEFAULT_FABLE_MODEL`:948Чтобы включить [расширенный контекст](#extended-context) для закреплённой модели, добавьте `[1m]` к идентификатору модели в `ANTHROPIC_DEFAULT_OPUS_MODEL`, `ANTHROPIC_DEFAULT_SONNET_MODEL` или `ANTHROPIC_DEFAULT_FABLE_MODEL`:

948 949 

949```bash theme={null}950```bash theme={null}

950export ANTHROPIC_DEFAULT_OPUS_MODEL='claude-opus-4-8[1m]'951export ANTHROPIC_DEFAULT_OPUS_MODEL='claude-opus-4-8[1m]'

951```952```

952 953 

953С суффиксом `[1m]` контекстное окно 1M применяется ко всему использованию закрепленного псевдонима, включая фазу Opus в режиме плана [`opusplan`](#opusplan-model-setting) и [subagents](/docs/ru/sub-agents#choose-a-model), чей frontmatter `model` называет псевдоним.954С суффиксом `[1m]` окно контекста 1M применяется ко всему использованию закреплённого псевдонима, включая фазу Opus в режиме плана [`opusplan`](#opusplan-model-setting) и [подагентов](/docs/ru/sub-agents#choose-a-model), чьё frontmatter `model` называет псевдоним.

954 955 

955* Claude Code удаляет суффикс перед отправкой идентификатора модели вашему поставщику.956* Claude Code удаляет суффикс перед отправкой идентификатора модели вашему поставщику.

956* Добавляйте `[1m]` только когда базовая модель [поддерживает контекст 1M](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model).957* Добавляйте `[1m]` только когда базовая модель [поддерживает контекст 1M](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model).

957* Суффикс читается для каждой переменной, а не для каждой модели. На Amazon Bedrock, Google Cloud's Agent Platform и Microsoft Foundry идентификатор модели без `[1m]` в одной переменной использует контекст 200K, даже если другая переменная устанавливает ту же модель с суффиксом. Sonnet 5 всегда работает с окном 1M на этих поставщиках и никогда не требует суффикса.958* Суффикс читается для каждой переменной, а не для каждой модели. На Amazon Bedrock, Google Cloud's Agent Platform и Microsoft Foundry идентификатор модели без `[1m]` в одной переменной использует контекст 200K даже если другая переменная устанавливает ту же модель с суффиксом. Sonnet 5 всегда работает с окном 1M на этих поставщиках и никогда не требует суффикса.

959 

960Когда вы устанавливаете переменную `ANTHROPIC_DEFAULT_*_MODEL`, средство выбора `/model` показывает одну строку для этой модели вместо встроенных строк семейства, включая любые строки контекста 1M. Чтобы достичь окна 1M без добавления суффикса к этой переменной, ваши пользователи запускают `/model opus[1m]`, и Claude Code применяет суффикс к модели, которую называет переменная. `/model sonnet[1m]` работает так же.

958 961 

959<Note>962<Note>

960 Список разрешений `availableModels`, доставленный через [MDM или управляемый файл параметров](/docs/ru/managed-settings#delivery-mechanisms), все еще применяется при использовании поставщиков третьих сторон; [параметры, управляемые сервером, не доставляются туда](/docs/ru/server-managed-settings#platform-availability).963 Список разрешений `availableModels`, доставленный через [MDM или управляемый файл параметров](/docs/ru/managed-settings#delivery-mechanisms), по-прежнему применяется при использовании сторонних поставщиков; [параметры, управляемые сервером, не доставляются туда](/docs/ru/server-managed-settings#platform-availability).

961 964 

962 Фильтрация соответствует псевдониму модели, такому как `opus`, префиксу версии, такому как `claude-opus-4-8`, или полному идентификатору модели в форме поставщика. Префиксы, специфичные для поставщика, такие как `us.anthropic.`, не удаляются, поэтому для разрешения конкретной модели укажите ее полный идентификатор в форме поставщика, или отобразите его через [`modelOverrides`](#override-model-ids-per-version). Для закрепленной модели этот идентификатор — это значение, которое вы установили в его переменной `ANTHROPIC_DEFAULT_*_MODEL`. Любой суффикс `[1m]` удаляется как из записи списка разрешений, так и из запрашиваемой модели перед сопоставлением.965 Фильтрация соответствует псевдониму модели, такому как `opus`, префиксу версии, такому как `claude-opus-4-8`, или полному идентификатору модели в форме поставщика. Префиксы, специфичные для поставщика, такие как `us.anthropic.`, не удаляются, поэтому чтобы разрешить конкретную модель, укажите её полный идентификатор в форме поставщика или отобразите её через [`modelOverrides`](#override-model-ids-per-version). Для закреплённой модели этот идентификатор является значением, которое вы установили в её переменной `ANTHROPIC_DEFAULT_*_MODEL`. Любой суффикс `[1m]` удаляется из записи списка разрешений и запрошенной модели перед сопоставлением.

963</Note>966</Note>

964 967 

965<h3 id="customize-pinned-model-display-and-capabilities">968<h3 id="customize-pinned-model-display-and-capabilities">

966 Настройка отображения и возможностей закрепленной модели969 Настройка отображения и возможностей закреплённой модели

967</h3>970</h3>

968 971 

969Когда вы закрепляете модель у поставщика третьей стороны, ее строка в средстве выбора `/model` показывает имя модели по умолчанию, если Claude Code распознает закрепленный идентификатор, и необработанный идентификатор в противном случае:972Когда вы закрепляете модель у стороннего поставщика, её строка в средстве выбора `/model` показывает имя модели по умолчанию, если Claude Code распознаёт закреплённый идентификатор, и необработанный идентификатор в противном случае:

970 973 

971* **Распознано**: точный идентификатор модели, которую Claude Code знает, такой как его идентификатор Anthropic API или форма вашего поставщика или шлюза, с суффиксом `[1m]` или без него. Закрепите `us.anthropic.claude-sonnet-4-5-20250929-v1:0` и строка будет читаться как `Sonnet 4.5`.974* **Распознана**: точный идентификатор модели, которую Claude Code знает, такой как её идентификатор Anthropic API или форма вашего поставщика или шлюза, с суффиксом `[1m]` или без него. Закрепите `us.anthropic.claude-sonnet-4-5-20250929-v1:0` и строка будет читаться как `Sonnet 4.5`.

972* **Не распознано**: любой другой идентификатор, такой как ARN профиля вывода приложения или версия модели, которую Claude Code не знает, если только запись [`modelOverrides`](#override-model-ids-per-version) не отображает модель на эту точную строку. На Microsoft Foundry имена развертывания определяются пользователем, поэтому Claude Code никогда не распознает закрепленный идентификатор там, отображенный или нет, и строка показывает имя развертывания по умолчанию.975* **Не распознана**: любой другой идентификатор, такой как ARN профиля вывода приложения или версия модели, которую Claude Code не знает, если только запись [`modelOverrides`](#override-model-ids-per-version) не отображает модель на эту точную строку. На Microsoft Foundry имена развёртываний определяются пользователем, поэтому Claude Code никогда не распознаёт закреплённый идентификатор там, отображённый или нет, и строка показывает имя развёртывания по умолчанию.

973 976 

974Когда строка показывает имя модели, ее описание по умолчанию включает закрепленный идентификатор, чтобы вы все еще могли видеть, какой идентификатор закреплен.977Когда строка показывает имя модели, её описание по умолчанию включает закреплённый идентификатор, чтобы вы всё ещё могли видеть, какой идентификатор закреплён.

975 978 

976Claude Code также может не распознать, какие функции поддерживает закрепленная модель. Вы можете установить отображаемое имя и описание самостоятельно и объявить возможности с помощью вспомогательных переменных окружения для каждой закрепленной модели.979Claude Code также может не распознать, какие функции поддерживает закреплённая модель. Вы можете установить имя отображения и описание самостоятельно и объявить возможности с помощью переменных окружения-спутников для каждой закреплённой модели.

977 980 

978Эти переменные вступают в силу у поставщиков третьих сторон, таких как Amazon Bedrock, Google Cloud's Agent Platform и Microsoft Foundry. Переменные `_NAME` и `_DESCRIPTION` также вступают в силу, когда `ANTHROPIC_BASE_URL` указывает на [LLM gateway](/docs/ru/llm-gateway). Они не имеют эффекта при прямом подключении к `api.anthropic.com`.981Эти переменные вступают в силу у сторонних поставщиков, таких как Amazon Bedrock, Google Cloud's Agent Platform и Microsoft Foundry. Переменные `_NAME` и `_DESCRIPTION` также вступают в силу, когда `ANTHROPIC_BASE_URL` указывает на [LLM gateway](/docs/ru/llm-gateway). Они не имеют эффекта при прямом подключении к `api.anthropic.com`.

979 982 

980| Переменная окружения | Описание |983| Переменная окружения | Описание |

981| - | - |984| - | - |

982| `ANTHROPIC_DEFAULT_OPUS_MODEL_NAME` | Отображаемое имя для закрепленной модели Opus в средстве выбора `/model`. Когда не установлено, строка показывает имя модели, если Claude Code распознает закрепленный идентификатор, и закрепленный идентификатор в противном случае |985| `ANTHROPIC_DEFAULT_OPUS_MODEL_NAME` | Имя отображения для закреплённой модели Opus в средстве выбора `/model`. Когда не установлено, строка показывает имя модели, если Claude Code распознаёт закреплённый идентификатор, и закреплённый идентификатор в противном случае |

983| `ANTHROPIC_DEFAULT_OPUS_MODEL_DESCRIPTION` | Отображаемое описание для закрепленной модели Opus в средстве выбора `/model`. Когда не установлено, строка показывает описание по умолчанию, которое начинается с `Custom Opus model` |986| `ANTHROPIC_DEFAULT_OPUS_MODEL_DESCRIPTION` | Описание отображения для закреплённой модели Opus в средстве выбора `/model`. Когда не установлено, строка показывает описание по умолчанию, которое начинается с `Custom Opus model` |

984| `ANTHROPIC_DEFAULT_OPUS_MODEL_SUPPORTED_CAPABILITIES` | Разделенный запятыми список возможностей, которые поддерживает закрепленная модель Opus |987| `ANTHROPIC_DEFAULT_OPUS_MODEL_SUPPORTED_CAPABILITIES` | Список возможностей, разделённый запятыми, которые поддерживает закреплённая модель Opus |

985 988 

986Те же суффиксы `_NAME`, `_DESCRIPTION` и `_SUPPORTED_CAPABILITIES` доступны для `ANTHROPIC_DEFAULT_SONNET_MODEL`, `ANTHROPIC_DEFAULT_HAIKU_MODEL`, `ANTHROPIC_DEFAULT_FABLE_MODEL` и `ANTHROPIC_CUSTOM_MODEL_OPTION`.989Те же суффиксы `_NAME`, `_DESCRIPTION` и `_SUPPORTED_CAPABILITIES` доступны для `ANTHROPIC_DEFAULT_SONNET_MODEL`, `ANTHROPIC_DEFAULT_HAIKU_MODEL`, `ANTHROPIC_DEFAULT_FABLE_MODEL` и `ANTHROPIC_CUSTOM_MODEL_OPTION`.

987 990 

988Claude Code включает функции, такие как [уровни усилий](#adjust-effort-level) и [расширенное мышление](#extended-thinking), путем сопоставления идентификатора модели с известными шаблонами. Идентификаторы, специфичные для поставщика, такие как ARN Amazon Bedrock или пользовательские имена развертывания, часто не соответствуют этим шаблонам, оставляя поддерживаемые функции отключенными. Установите `_SUPPORTED_CAPABILITIES`, чтобы сообщить Claude Code, какие функции фактически поддерживает модель:991Claude Code включает функции, такие как [уровни усилий](#adjust-effort-level) и [расширенное мышление](#extended-thinking), путём сопоставления идентификатора модели с известными шаблонами. Идентификаторы, специфичные для поставщика, такие как ARN Amazon Bedrock или пользовательские имена развёртываний, часто не соответствуют этим шаблонам, оставляя поддерживаемые функции отключёнными. Установите `_SUPPORTED_CAPABILITIES`, чтобы сообщить Claude Code, какие функции фактически поддерживает модель:

989 992 

990| Значение возможности | Включает |993| Значение возможности | Включает |

991| - | - |994| - | - |


996| `adaptive_thinking` | Адаптивное рассуждение, которое динамически распределяет мышление на основе сложности задачи |999| `adaptive_thinking` | Адаптивное рассуждение, которое динамически распределяет мышление на основе сложности задачи |

997| `interleaved_thinking` | Мышление между вызовами инструментов |1000| `interleaved_thinking` | Мышление между вызовами инструментов |

998 1001 

999Когда установлена `_SUPPORTED_CAPABILITIES`, Claude Code включает перечисленные возможности и отключает неперечисленные для соответствующей закрепленной модели. Когда переменная не установлена, Claude Code возвращается к встроенному обнаружению на основе идентификатора модели.1002Когда `_SUPPORTED_CAPABILITIES` установлена, Claude Code включает перечисленные возможности и отключает неперечисленные для соответствующей закреплённой модели. Когда переменная не установлена, Claude Code возвращается к встроенному обнаружению на основе идентификатора модели.

1000 1003 

1001Этот пример закрепляет Opus на пользовательский ARN модели Amazon Bedrock, устанавливает понятное имя и объявляет его возможности:1004Этот пример закрепляет Opus на пользовательский ARN модели Amazon Bedrock, устанавливает понятное имя и объявляет его возможности:

1002 1005 


1011 Переопределение идентификаторов моделей для каждой версии1014 Переопределение идентификаторов моделей для каждой версии

1012</h3>1015</h3>

1013 1016 

1014На платформах, которые встраивают Claude Code и устанавливают [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/ru/env-vars), конфигурация модели хоста имеет приоритет над управляемыми параметрами модели, в то время как управляемый список разрешений `availableModels` остается в силе, если только хост не предоставляет свой собственный; [Исключения из приоритета управляемых параметров](/docs/ru/settings#exceptions-to-managed-settings-precedence) говорит, какие ключи и переменные переопределяет хост.1017На платформах, которые встраивают Claude Code и устанавливают [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/ru/env-vars), конфигурация модели хоста имеет приоритет над управляемыми параметрами модели, в то время как управляемый список разрешений `availableModels` остаётся в силе, если только хост не предоставляет свой собственный; [Исключения из приоритета управляемых параметров](/docs/ru/settings#exceptions-to-managed-settings-precedence) говорит, какие ключи и переменные переопределяет хост.

1015 1018 

1016Переменные окружения уровня семейства выше настраивают один идентификатор модели для каждого псевдонима семейства. Если вам нужно отобразить несколько версий в одном семействе на различные идентификаторы поставщика, используйте вместо этого параметр `modelOverrides`.1019Переменные окружения уровня семейства выше настраивают один идентификатор модели для каждого псевдонима семейства. Если вам нужно отобразить несколько версий в одном семействе на различные идентификаторы поставщика, используйте вместо этого параметр `modelOverrides`.

1017 1020 

1018`modelOverrides` отображает отдельные идентификаторы моделей Anthropic на строки, специфичные для поставщика, которые Claude Code отправляет API вашего поставщика. Когда пользователь выбирает отображаемую модель в средстве выбора `/model`, Claude Code использует ваше настроенное значение вместо встроенного значения по умолчанию.1021`modelOverrides` отображает отдельные идентификаторы моделей Anthropic на строки, специфичные для поставщика, которые Claude Code отправляет API вашего поставщика. Когда пользователь выбирает отображённую модель в средстве выбора `/model`, Claude Code использует ваше настроенное значение вместо встроенного значения по умолчанию.

1019 1022 

1020Это позволяет администраторам предприятия маршрутизировать каждую версию модели на конкретный ARN профиля вывода Amazon Bedrock, имя версии Google Cloud's Agent Platform или имя развертывания Microsoft Foundry для управления, распределения затрат или региональной маршрутизации.1023Это позволяет администраторам предприятия маршрутизировать каждую версию модели на конкретный ARN профиля вывода приложения Amazon Bedrock, имя версии Google Cloud's Agent Platform или имя развёртывания Microsoft Foundry для управления, распределения затрат или региональной маршрутизации.

1021 1024 

1022Установите `modelOverrides` в вашем [файле параметров](/docs/ru/settings#where-settings-live):1025Установите `modelOverrides` в вашем [файле параметров](/docs/ru/settings#where-settings-live):

1023 1026 


1031}1034}

1032```1035```

1033 1036 

1034Ключи должны быть идентификаторами моделей Anthropic, как указано в [Обзоре моделей](https://platform.claude.com/docs/en/about-claude/models/overview). Для датированных идентификаторов моделей включите суффикс даты точно так, как он там отображается. Неизвестные ключи игнорируются.1037Ключи должны быть идентификаторами моделей Anthropic, как указано в [Обзоре моделей](https://platform.claude.com/docs/en/about-claude/models/overview). Для датированных идентификаторов моделей включите суффикс даты точно так, как он там появляется. Неизвестные ключи игнорируются.

1035 1038 

1036Чтобы остановить строку диагностики `[claude-code:unrecognized_model]` [diagnostic line](/docs/ru/errors#unrecognized-model-id-on-a-request) для идентификатора, такого как псевдоним шлюза, добавьте запись с этим идентификатором в качестве его значения.1039Чтобы остановить [диагностическую строку](/docs/ru/errors#unrecognized-model-id-on-a-request) `[claude-code:unrecognized_model]` для идентификатора, такого как псевдоним шлюза, добавьте запись с этим идентификатором в качестве его значения.

1037 1040 

1038Переопределения заменяют встроенные идентификаторы моделей, которые поддерживают каждую запись в средстве выбора `/model`. На Amazon Bedrock записи `modelOverrides` имеют приоритет над любыми профилями вывода, которые Claude Code автоматически обнаруживает при запуске. Claude Code передает значения, которые уже являются специфичными для поставщика, такие как ARN профиля вывода Amazon Bedrock или имена развертывания Microsoft Foundry, поставщику как есть.1041Переопределения заменяют встроенные идентификаторы моделей, которые поддерживают каждую запись в средстве выбора `/model`. На Amazon Bedrock записи `modelOverrides` имеют приоритет над любыми профилями вывода, которые Claude Code автоматически обнаруживает при запуске. Claude Code передаёт значения, которые уже являются собственными для поставщика, такие как ARN профиля вывода приложения Amazon Bedrock или имена развёртываний Microsoft Foundry, поставщику как есть.

1039 1042 

1040Переопределения также применяются, когда вы передаете идентификатор модели Anthropic непосредственно через `--model`, переменную окружения `ANTHROPIC_MODEL` или переменную окружения `ANTHROPIC_DEFAULT_*_MODEL`. На Amazon Bedrock, Google Cloud's Agent Platform и [Mantle](/docs/ru/amazon-bedrock#use-the-mantle-endpoint) идентификатор модели Anthropic без записи `modelOverrides` разрешается в тот же идентификатор, специфичный для поставщика, что и строка средства выбора `/model` для этой версии, когда поставщик поддерживает эту версию. Mantle поддерживает подмножество версий. Для идентификатора модели Anthropic вне этого подмножества Claude Code отправляет необработанный идентификатор Mantle без отображения, если только запись `modelOverrides` не охватывает его. До версии 2.1.200 значения `--model` и переменных окружения достигали поставщика как есть без прохождения через карту переопределений.1043Переопределения также применяются, когда вы передаёте идентификатор модели Anthropic непосредственно через `--model`, переменную окружения `ANTHROPIC_MODEL` или переменную окружения `ANTHROPIC_DEFAULT_*_MODEL`. На Amazon Bedrock, Google Cloud's Agent Platform и [Mantle](/docs/ru/amazon-bedrock#use-the-mantle-endpoint), идентификатор модели Anthropic без записи `modelOverrides` разрешается на тот же идентификатор, специфичный для поставщика, что и строка средства выбора `/model` для этой версии, когда поставщик поддерживает эту версию. Mantle поддерживает подмножество версий. Для идентификатора модели Anthropic вне этого подмножества Claude Code отправляет необработанный идентификатор Mantle без отображения, если только запись `modelOverrides` не охватывает его. До версии 2.1.200 `--model` и значения переменных окружения достигали поставщика как есть без прохождения через карту переопределений.

1041 1044 

1042`modelOverrides` работает вместе с `availableModels`. Список разрешений оценивается по идентификатору модели Anthropic, а не по значению переопределения, поэтому запись, такая как `"opus"` в `availableModels`, продолжает совпадать, даже когда версии Opus отображаются на ARN. Когда `enforceAvailableModels` установлен в управляемых параметрах, принудительное значение Default разрешается через `modelOverrides` из [управляемых параметров](/docs/ru/managed-settings#how-claude-code-combines-managed-sources) только. Отображение администратора, такое как версия, закрепленная на ARN профиля вывода, соблюдается в принудительном Default. Переопределения из параметров пользователя или проекта не влияют на него.1045`modelOverrides` работает вместе с `availableModels`. Список разрешений оценивается по идентификатору модели Anthropic, а не по значению переопределения, поэтому запись, такая как `"opus"` в `availableModels`, продолжает соответствовать даже когда версии Opus отображаются на ARN. Когда `enforceAvailableModels` установлена в управляемых параметрах, принудительный Default разрешается через `modelOverrides` из [управляемых параметров](/docs/ru/managed-settings#how-claude-code-combines-managed-sources) только. Отображение администратора, такое как версия, закреплённая на ARN профиля вывода, соблюдается в принудительном Default. Переопределения из параметров пользователя или проекта не влияют на него.

1043 1046 

1044Когда `availableModels` установлен в [управляемых параметрах](/docs/ru/managed-settings), только `modelOverrides` из управляемых параметров применяются к идентификатору модели Anthropic, переданному непосредственно через `--model` или переменные окружения выше. Claude Code игнорирует переопределения в параметрах пользователя или проекта для этих идентификаторов и никогда не разрешает идентификатор, который исключает управляемый список, через `modelOverrides` из любого источника параметров. Это ограничение управляемого источника требует Claude Code версии 2.1.200 или позже. См. [Ограничение выбора модели](#restrict-model-selection) для того, как обрабатываются заблокированные идентификаторы.1047Когда `availableModels` установлена в [управляемых параметрах](/docs/ru/managed-settings), только `modelOverrides` из управляемых параметров применяются к идентификатору модели Anthropic, переданному непосредственно через `--model` или переменные окружения выше. Claude Code игнорирует переопределения в параметрах пользователя или проекта для этих идентификаторов и никогда не разрешает идентификатор, который управляемый список исключает, через `modelOverrides` из любого источника параметров. Это ограничение источника управляемых параметров требует Claude Code версии 2.1.200 или позже. См. [Ограничение выбора модели](#restrict-model-selection) для того, как обрабатываются заблокированные идентификаторы.

1045 1048 

1046<h3 id="prompt-caching-configuration">1049<h3 id="prompt-caching-configuration">

1047 Конфигурация кэширования подсказок1050 Конфигурация кэширования подсказок


1051 1054 

1052| Переменная окружения | Описание |1055| Переменная окружения | Описание |

1053| - | - |1056| - | - |

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

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

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

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

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

1059 1062 

1060Чтобы выбрать TTL кэша для основного разговора и для subagents отдельно, см. [выберите TTL самостоятельно](/docs/ru/prompt-caching#choose-the-ttl-yourself). Для того, что вызывает промах кэша, см. [Как Claude Code использует кэширование подсказок](/docs/ru/prompt-caching).1063Чтобы выбрать TTL кэша для основного разговора и для подагентов отдельно, см. [выберите TTL самостоятельно](/docs/ru/prompt-caching#choose-the-ttl-yourself). Для того, что вызывает промах кэша, см. [Как Claude Code использует кэширование подсказок](/docs/ru/prompt-caching).

1061 1064 

1062<h2 id="version-history">1065<h2 id="version-history">

1063 История версий1066 История версий

Details

64}64}

65```65```

66 66 

67В приложении Claude Desktop сеансы вкладки Code читают эти управляемые параметры из источников, которые [достигают каждого вида сеанса Desktop](/docs/ru/desktop#managed-settings). Форма OpenTelemetry для Cowork в разделе **Monitoring** в [параметрах конфиденциальности и данных](https://claude.ai/admin-settings/data-privacy-controls) консоли администратора применяется только к сеансам Cowork, поэтому ни терминальный CLI, ни вкладка Code не экспортируют на сборщик, который вы там установили.

68 

67Claude Code игнорирует [переменные экспортера OpenTelemetry](/docs/ru/settings-reference#variables-claude-code-ignores-in-env) в файлах `.claude/settings.json` и `.claude/settings.local.json` репозитория, поэтому репозиторий не может использовать их для включения телеметрии, выбора места её отправки или захвата содержимого. Установите их в управляемых параметрах или попросите каждого разработчика установить их в своей оболочке или в `~/.claude/settings.json`. Репозиторий все ещё может отключить сигнал, установив его селектор экспортера, например `OTEL_LOGS_EXPORTER`, на `none`, если только управляемые параметры, файл `--settings` или окружение, из которого вы запускаете Claude Code, не устанавливают эту переменную.69Claude Code игнорирует [переменные экспортера OpenTelemetry](/docs/ru/settings-reference#variables-claude-code-ignores-in-env) в файлах `.claude/settings.json` и `.claude/settings.local.json` репозитория, поэтому репозиторий не может использовать их для включения телеметрии, выбора места её отправки или захвата содержимого. Установите их в управляемых параметрах или попросите каждого разработчика установить их в своей оболочке или в `~/.claude/settings.json`. Репозиторий все ещё может отключить сигнал, установив его селектор экспортера, например `OTEL_LOGS_EXPORTER`, на `none`, если только управляемые параметры, файл `--settings` или окружение, из которого вы запускаете Claude Code, не устанавливают эту переменную.

68 70 

69Claude Code не передает переменные окружения `OTEL_*` подпроцессам, которые он порождает, включая инструмент Bash, hooks, MCP серверы и языковые серверы. Приложение, инструментированное OpenTelemetry, которое вы запускаете через инструмент Bash, не наследует endpoint экспортера Claude Code или заголовки, поэтому установите эти переменные непосредственно в команде, если это приложение должно экспортировать свою собственную телеметрию.71Claude Code не передает переменные окружения `OTEL_*` подпроцессам, которые он порождает, включая инструмент Bash, hooks, MCP серверы и языковые серверы. Приложение, инструментированное OpenTelemetry, которое вы запускаете через инструмент Bash, не наследует endpoint экспортера Claude Code или заголовки, поэтому установите эти переменные непосредственно в команде, если это приложение должно экспортировать свою собственную телеметрию.


582| Ключи из `OTEL_RESOURCE_ATTRIBUTES` | Пользовательские атрибуты, которые вы устанавливаете, например `department` или `team.id`. См. [Поддержка многокомандной организации](#multi-team-organization-support) | `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES` (по умолчанию: true) |584| Ключи из `OTEL_RESOURCE_ATTRIBUTES` | Пользовательские атрибуты, которые вы устанавливаете, например `department` или `team.id`. См. [Поддержка многокомандной организации](#multi-team-organization-support) | `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES` (по умолчанию: true) |

583| `vcs.repository.url.full`, `vcs.owner.name`, `vcs.repository.name`, `vcs.provider.name` | Идентификатор репозитория сеанса, полученный из его удалённого хранилища `origin`. См. [Атрибуты репозитория](#repository-attributes) | `OTEL_METRICS_INCLUDE_REPOSITORY` (по умолчанию: false). Требуется Claude Code v2.1.269 или позже |585| `vcs.repository.url.full`, `vcs.owner.name`, `vcs.repository.name`, `vcs.provider.name` | Идентификатор репозитория сеанса, полученный из его удалённого хранилища `origin`. См. [Атрибуты репозитория](#repository-attributes) | `OTEL_METRICS_INCLUDE_REPOSITORY` (по умолчанию: false). Требуется Claude Code v2.1.269 или позже |

584 586 

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

588 

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

586 590 

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

588 592 


1540 Атрибуция действий пользователям1544 Атрибуция действий пользователям

1541</h3>1545</h3>

1542 1546 

1543[Стандартные атрибуты](#standard-attributes) на каждом событии включают идентификацию аутентифицированного пользователя: `user.email`, `user.account_uuid`, `user.account_id` и `organization.id` при входе с учетной записью Claude или, в [облачном сеансе](/docs/ru/claude-code-on-the-web), когда учетные данные самого сеанса их содержат, плюс `user.id` и область сеанса `session.id`. `user.id` является идентификатором, ограниченным установкой, за исключением сеансов [Claude apps gateway](/docs/ru/claude-apps-gateway), где это субъект IdP из выданного шлюзом токена.1547[Стандартные атрибуты](#standard-attributes) на каждом событии включают идентификацию аутентифицированного пользователя: `user.email`, `user.account_uuid`, `user.account_id` и `organization.id` при входе с учетной записью Claude или, в [облачном сеансе](/docs/ru/claude-code-on-the-web), когда учетные данные самого сеанса их содержат, плюс `user.id` и область сеанса `session.id`. `user.id` является идентификатором, ограниченным установкой, за исключением сеансов, подписанных на [Claude apps gateway](/docs/ru/claude-apps-gateway) через `/login`, где это субъект IdP из выданного шлюзом токена.

1544 1548 

1545В сеансе, который запускает разработчик, вызовы инструментов MCP, команды Bash и редактирование файлов поэтому приписываются этому разработчику. Claude Code не действует под отдельной учетной записью сервиса; идентификация, записанная на каждом событии, это собственная учетная запись Claude разработчика или идентификация IdP разработчика в сеансе [Claude apps gateway](/docs/ru/claude-apps-gateway). В сеансах канала Claude Tag, Claude работает как [общая идентификация](/docs/ru/cloud-environments#set-the-environment-a-claude-tag-channel-uses) вашей организации.1549В сеансе, который запускает разработчик, вызовы инструментов MCP, команды Bash и редактирование файлов поэтому приписываются этому разработчику. Claude Code не действует под отдельной учетной записью сервиса; идентификация, записанная на каждом событии, это собственная учетная запись Claude разработчика или идентификация IdP разработчика в сеансе [Claude apps gateway](/docs/ru/claude-apps-gateway). В сеансах канала Claude Tag, Claude работает как [общая идентификация](/docs/ru/cloud-environments#set-the-environment-a-claude-tag-channel-uses) вашей организации.

1546 1550 

1547Когда Claude Code аутентифицируется с прямым ключом API или против Amazon Bedrock, Google Cloud's Agent Platform или Microsoft Foundry, в сеансе нет учетной записи Claude и только `user.id` и `session.id` заполняются. В этих развертываниях прикрепите идентификацию пользователя самостоятельно с помощью `OTEL_RESOURCE_ATTRIBUTES`, установленного для каждого пользователя через файл [управляемых параметров](#administrator-configuration) или оболочку запуска. Сеансы Claude apps gateway не требуют ничего из этого: CLI автоматически проставляет идентификацию IdP, как описано в [Стандартные атрибуты](#standard-attributes).1551Когда Claude Code аутентифицируется с прямым ключом API или против Amazon Bedrock, Google Cloud's Agent Platform или Microsoft Foundry, в сеансе нет учетной записи Claude и только `user.id` и `session.id` заполняются. В этих развертываниях прикрепите идентификацию пользователя самостоятельно с помощью `OTEL_RESOURCE_ATTRIBUTES`, установленного для каждого пользователя через файл [управляемых параметров](#administrator-configuration) или оболочку запуска. Сеансы Claude apps gateway не требуют ничего из этого: см. [Стандартные атрибуты](#standard-attributes) для идентификации, которую несут их экспорты.

1548 1552 

1549```bash theme={null}1553```bash theme={null}

1550export OTEL_RESOURCE_ATTRIBUTES="enduser.id=jdoe@example.com,enduser.directory_id=S-1-5-21-..."1554export OTEL_RESOURCE_ATTRIBUTES="enduser.id=jdoe@example.com,enduser.directory_id=S-1-5-21-..."

Details

210| First-byte deadline | Заголовки ответа не поступают после отправки запроса Claude Code | Прямой API Anthropic и [Claude Platform on AWS](/docs/ru/claude-platform-on-aws), включая через HTTPS-прокси, но не когда `ANTHROPIC_BASE_URL` или `ANTHROPIC_AWS_BASE_URL` маршрутизируют их через [gateway](/docs/ru/gateways). Opt-in на Amazon Bedrock с `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1`; не работает на Google Cloud's Agent Platform или Microsoft Foundry | 180 секунд на прямом API Anthropic, 300 секунд в других местах, плюс одна секунда на 32 КБ тела запроса |210| First-byte deadline | Заголовки ответа не поступают после отправки запроса Claude Code | Прямой API Anthropic и [Claude Platform on AWS](/docs/ru/claude-platform-on-aws), включая через HTTPS-прокси, но не когда `ANTHROPIC_BASE_URL` или `ANTHROPIC_AWS_BASE_URL` маршрутизируют их через [gateway](/docs/ru/gateways). Opt-in на Amazon Bedrock с `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1`; не работает на Google Cloud's Agent Platform или Microsoft Foundry | 180 секунд на прямом API Anthropic, 300 секунд в других местах, плюс одна секунда на 32 КБ тела запроса |

211| Event-level watchdog | События ответа не анализируются. На соединениях, где работает byte-level watchdog, поступающие байты, включая keep-alive пинги, также сбрасывают этот watchdog, примерно на пять минут без анализируемого события | Каждый провайдер | 300 секунд |211| Event-level watchdog | События ответа не анализируются. На соединениях, где работает byte-level watchdog, поступающие байты, включая keep-alive пинги, также сбрасывают этот watchdog, примерно на пять минут без анализируемого события | Каждый провайдер | 300 секунд |

212| Byte-level watchdog | На проводе не поступают байты, включая SSE keep-alive пинги | Прямой API Anthropic, [Claude Platform on AWS](/docs/ru/claude-platform-on-aws) и [gateway](/docs/ru/gateways) соединения, включая пользовательский `ANTHROPIC_BASE_URL`. Opt-in на Amazon Bedrock `vnd.amazon.eventstream` ответы с `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1`; не работает на Google Cloud's Agent Platform или Microsoft Foundry | 180 секунд на прямом API Anthropic, 300 секунд в других местах |212| Byte-level watchdog | На проводе не поступают байты, включая SSE keep-alive пинги | Прямой API Anthropic, [Claude Platform on AWS](/docs/ru/claude-platform-on-aws) и [gateway](/docs/ru/gateways) соединения, включая пользовательский `ANTHROPIC_BASE_URL`. Opt-in на Amazon Bedrock `vnd.amazon.eventstream` ответы с `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1`; не работает на Google Cloud's Agent Platform или Microsoft Foundry | 180 секунд на прямом API Anthropic, 300 секунд в других местах |

213| Body idle timeout | Байты не поступают в течение 5 минут | Провайдеры, отличные от прямого API Anthropic и Claude Platform on AWS, если только [`API_FORCE_IDLE_TIMEOUT`](/docs/ru/env-vars) это не изменит | 5 минут |213| Body idle timeout | Байты не поступают в течение 5 минут | Провайдеры, отличные от прямого API Anthropic, Claude Platform on AWS и Amazon Bedrock с установленным `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1`, если только [`API_FORCE_IDLE_TIMEOUT`](/docs/ru/env-vars) это не изменит | 5 минут |

214 

215Если вы установите `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1`, byte-level watchdog заменит body idle timeout на Bedrock вместо того, чтобы работать рядом с ним. `CLAUDE_STREAM_IDLE_TIMEOUT_MS` затем также определяет, как долго поток Bedrock может оставаться молчаливым, прежде чем Claude Code будет рассматривать соединение как мёртвое, в пределах указанных ниже лимитов. Поступающие байты по-прежнему не сбрасывают event-level watchdog на Bedrock. При включённом debug logging каждый поток Bedrock затем регистрирует отладочное сообщение, которое начинается с `wire-heartbeat: _chunkTimes absent`.

214 216 

215Настройте таймеры с помощью этих переменных, каждая из которых подробно описана в [справочнике переменных окружения](/docs/ru/env-vars):217Настройте таймеры с помощью этих переменных, каждая из которых подробно описана в [справочнике переменных окружения](/docs/ru/env-vars):

216 218 


277 279 

278Если ваша организация GitHub Enterprise Cloud ограничивает доступ по IP-адресу, включите [IP allow list inheritance for installed GitHub Apps](https://docs.github.com/en/enterprise-cloud@latest/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/managing-allowed-ip-addresses-for-your-organization#allowing-access-by-github-apps) и также [add an allow list entry](https://docs.github.com/en/enterprise-cloud@latest/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/managing-allowed-ip-addresses-for-your-organization#adding-an-allowed-ip-address) для [исходящих IP-адресов](https://platform.claude.com/docs/en/api/ip-addresses#outbound-ip-addresses) Anthropic. Наследование охватывает только запросы, которые делает Claude GitHub App как установка, а не запросы, которые она делает от имени ваших пользователей. Для других брандмауэров см. [Anthropic API IP addresses](https://platform.claude.com/docs/en/api/ip-addresses).280Если ваша организация GitHub Enterprise Cloud ограничивает доступ по IP-адресу, включите [IP allow list inheritance for installed GitHub Apps](https://docs.github.com/en/enterprise-cloud@latest/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/managing-allowed-ip-addresses-for-your-organization#allowing-access-by-github-apps) и также [add an allow list entry](https://docs.github.com/en/enterprise-cloud@latest/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/managing-allowed-ip-addresses-for-your-organization#adding-an-allowed-ip-address) для [исходящих IP-адресов](https://platform.claude.com/docs/en/api/ip-addresses#outbound-ip-addresses) Anthropic. Наследование охватывает только запросы, которые делает Claude GitHub App как установка, а не запросы, которые она делает от имени ваших пользователей. Для других брандмауэров см. [Anthropic API IP addresses](https://platform.claude.com/docs/en/api/ip-addresses).

279 281 

280Для размещенных на собственном сервере экземпляров [GitHub Enterprise Server](/docs/ru/github-enterprise-server) за брандмауэром добавьте в белый список [исходящие IP-адреса](https://platform.claude.com/docs/en/api/ip-addresses#outbound-ip-addresses) Anthropic, чтобы инфраструктура Anthropic могла достичь вашего хоста GHES для клонирования репозиториев и публикации комментариев рецензии. Сеансы в [self-hosted environment](/docs/ru/self-hosted-environments-deploy#configure-git) достигают вашего хоста GHES изнутри вашей сети вместо этого, поэтому это воздействие применяется только к сеансам, размещенным на Anthropic, к размещенным предварительным потокам сеанса, таким как средство выбора репозитория, и к размещенным на собственном сервере runners, которые согласятся на [Anthropic git proxy](/docs/ru/self-hosted-environments-deploy#use-the-anthropic-git-proxy), который получает со стороны Anthropic. Для хоста GHES, который маршрутизируется только внутри вашей сети, [SCM connector](/docs/ru/self-hosted-environments-reference#scm-connector-flags) переносит размещенные предварительные потоки сеанса через исходящее соединение вместо этого, поэтому белый список не требуется для них.282Для размещенных на собственном сервере экземпляров [GitHub Enterprise Server](/docs/ru/github-enterprise-server) за брандмауэром добавьте в белый список [исходящие IP-адреса](https://platform.claude.com/docs/en/api/ip-addresses#outbound-ip-addresses) Anthropic, чтобы инфраструктура Anthropic могла достичь вашего хоста GHES для клонирования репозиториев и публикации комментариев рецензии. Сеансы в [self-hosted environment](/docs/ru/self-hosted-environments-deploy#configure-git) достигают вашего хоста GHES изнутри вашей сети вместо этого, поэтому это воздействие применяется только к сеансам, размещенным на Anthropic, к размещенным предварительным потокам сеанса, таким как средство выбора репозитория, и к размещенным на собственном сервере runners, которые согласятся на [Anthropic git proxy](/docs/ru/self-hosted-environments-deploy#use-the-anthropic-git-proxy), который получает со стороны Anthropic. [SCM connector](/docs/ru/self-hosted-environments-reference#scm-connector-flags) недоступен, поэтому размещенные предварительные потоки сеанса не могут достичь хост GHES, который маршрутизируется только внутри вашей сети.

281 283 

282<h3 id="desktop-and-claude-ai">284<h3 id="desktop-and-claude-ai">

283 Desktop и claude.ai285 Desktop и claude.ai

Details

526 * В сеансе с [проверкой классификатора на стороне сервера](#server-side-classifier-review), действия только для чтения и [команды оболочки в песочнице](/docs/ru/sandboxing#sandbox-modes) ждут эту проверку и блокируются, если она их отмечает526 * В сеансе с [проверкой классификатора на стороне сервера](#server-side-classifier-review), действия только для чтения и [команды оболочки в песочнице](/docs/ru/sandboxing#sandbox-modes) ждут эту проверку и блокируются, если она их отмечает

527 * Запись внутри вашего рабочего каталога, которую [проверка symlink](/docs/ru/permissions#symlinks) разрешает на местоположение вне него, спрашивает вас527 * Запись внутри вашего рабочего каталога, которую [проверка symlink](/docs/ru/permissions#symlinks) разрешает на местоположение вне него, спрашивает вас

528 3. Все остальное идет к классификатору, кроме [удаления критических путей](#critical-paths) при их обработке по умолчанию. Инструменты connector и `requiresUserInteraction` MCP инструменты, которые спрашивают вас напрямую на шаге 1, никогда не достигают классификатора, поэтому ни одобрение, требуемое организацией, ни шаг согласия не автоматически одобряются528 3. Все остальное идет к классификатору, кроме [удаления критических путей](#critical-paths) при их обработке по умолчанию. Инструменты connector и `requiresUserInteraction` MCP инструменты, которые спрашивают вас напрямую на шаге 1, никогда не достигают классификатора, поэтому ни одобрение, требуемое организацией, ни шаг согласия не автоматически одобряются

529 4. Если классификатор блокирует, Claude получает причину и пытается альтернативу. В большинстве сеансов причина называет правило, которое классификатор совпал, такое как `[Data Exfiltration]`, вместо того чтобы давать письменное объяснение; смотрите [Проверка отказов](/docs/ru/auto-mode-config#review-denials)529 4. Если классификатор блокирует, Claude получает причину. В большинстве сеансов причина называет правило, которое классификатор совпал, такое как `[Data Exfiltration]`, вместо того чтобы давать письменное объяснение; смотрите [Проверка отказов](/docs/ru/auto-mode-config#review-denials)

530 530 

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

532 532 

permissions.md +54 −51

Details

80| `default` | Запрашивает разрешение при первом использовании каждого инструмента. Обозначается как Manual в CLI, расширениях VS Code и JetBrains, а также в приложении для рабочего стола, и Claude Code принимает `manual` как псевдоним. Метка и псевдоним требуют Claude Code v2.1.200 или более поздней версии. Метка приложения для рабочего стола не зависит от вашей версии CLI |80| `default` | Запрашивает разрешение при первом использовании каждого инструмента. Обозначается как Manual в CLI, расширениях VS Code и JetBrains, а также в приложении для рабочего стола, и Claude Code принимает `manual` как псевдоним. Метка и псевдоним требуют Claude Code v2.1.200 или более поздней версии. Метка приложения для рабочего стола не зависит от вашей версии CLI |

81| `acceptEdits` | Автоматически принимает редактирование файлов и общие команды файловой системы, такие как `mkdir`, `touch`, `mv` и `cp` для путей в рабочем каталоге или `additionalDirectories` |81| `acceptEdits` | Автоматически принимает редактирование файлов и общие команды файловой системы, такие как `mkdir`, `touch`, `mv` и `cp` для путей в рабочем каталоге или `additionalDirectories` |

82| `plan` | Claude читает файлы и запускает команды оболочки только для чтения для исследования, но не редактирует ваши исходные файлы; с доступным [режимом auto](/docs/ru/permission-modes#eliminate-prompts-with-auto-mode) также запускаются одобренные классификатором команды. Обозначается как Plan в CLI и расширении VS Code |82| `plan` | Claude читает файлы и запускает команды оболочки только для чтения для исследования, но не редактирует ваши исходные файлы; с доступным [режимом auto](/docs/ru/permission-modes#eliminate-prompts-with-auto-mode) также запускаются одобренные классификатором команды. Обозначается как Plan в CLI и расширении VS Code |

83| `auto` | Автоматически одобряет вызовы инструментов с проверками безопасности в фоне, которые проверяют, соответствуют ли действия вашему запросу |83| `auto` | Работает без обычных запросов; перед выполнением действий, таких как команды оболочки и сетевые запросы, фоновый [классификатор](/docs/ru/permission-modes#eliminate-prompts-with-auto-mode) проверяет, что они соответствуют вашему запросу |

84| `dontAsk` | Автоматически отклоняет каждый вызов, который иначе запросил бы подтверждение; чтение файлов в ваших рабочих каталогах и другие действия, которые не требуют одобрения, по-прежнему выполняются, как и инструменты, предварительно одобренные через `/permissions` или правила `permissions.allow`. `AskUserQuestion`, инструменты MCP, отмеченные [`requiresUserInteraction`](/docs/ru/mcp#require-approval-for-a-specific-tool), и инструменты соединителя [установленные вашей организацией на `ask`](/docs/ru/mcp#organization-controls-on-connector-tools) в сеансах, где эта настройка достигает Claude Code, отклоняются даже если вы их разрешили |84| `dontAsk` | Автоматически отклоняет каждый вызов, который иначе запросил бы подтверждение; чтение файлов в ваших рабочих каталогах и другие действия, которые не требуют одобрения, по-прежнему выполняются, как и инструменты, предварительно одобренные через `/permissions` или правила `permissions.allow`. `AskUserQuestion`, инструменты MCP, отмеченные [`requiresUserInteraction`](/docs/ru/mcp#require-approval-for-a-specific-tool), и инструменты соединителя [установленные вашей организацией на `ask`](/docs/ru/mcp#organization-controls-on-connector-tools) в сеансах, где эта настройка достигает Claude Code, отклоняются даже если вы их разрешили |

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

86 86 


144* Каждое правило называет один параметр. Чтобы ограничить как `model`, так и `isolation`, напишите два правила, `Agent(model:opus)` и `Agent(isolation:worktree)`, вместо того чтобы объединять их в одно правило144* Каждое правило называет один параметр. Чтобы ограничить как `model`, так и `isolation`, напишите два правила, `Agent(model:opus)` и `Agent(isolation:worktree)`, вместо того чтобы объединять их в одно правило

145* Значение поддерживает `*` как подстановочный символ, который совпадает с любой последовательностью символов, поэтому `Agent(isolation:*)` совпадает с любым явным значением изоляции. Без `*` совпадение точное145* Значение поддерживает `*` как подстановочный символ, который совпадает с любой последовательностью символов, поэтому `Agent(isolation:*)` совпадает с любым явным значением изоляции. Без `*` совпадение точное

146* Параметр, который модель опускает, никогда не совпадает, поэтому `Agent(model:*)` не совпадает с вызовом, который оставляет `model` неустановленным146* Параметр, который модель опускает, никогда не совпадает, поэтому `Agent(model:*)` не совпадает с вызовом, который оставляет `model` неустановленным

147* Значение сравнивается с буквальным входом, который отправляет Claude, до любой нормализации. `Agent(model:opus)` совпадает с псевдонимом `opus`, но не с полным ID модели. Запустите с [`--verbose`](/docs/ru/cli-reference), чтобы увидеть точные имена параметров и значения в каждом вызове инструмента147* Значение сравнивается с буквальным входом, который отправляет Claude, до любой нормализации. `Agent(model:opus)` совпадает с псевдонимом `opus`, но не с полным ID модели

148* Правило отказа `Skill(skill:<name>)` вместо этого [совпадает с навыком под любым из его имён](/docs/ru/skills#restrict-claude%E2%80%99s-skill-access), таким как его псевдоним или отображаемое имя

149* Запустите с [`--verbose`](/docs/ru/cli-reference), чтобы увидеть точные имена параметров и значения в каждом вызове инструмента

148* Пробелы вокруг двоеточия игнорируются150* Пробелы вокруг двоеточия игнорируются

149 151 

150Вы не можете совпадать с основным полем содержимого инструмента таким образом: `command` для Bash и PowerShell, `file_path` для Read, Edit и Write, `path` для Grep и Glob, `notebook_path` для NotebookEdit и `url` для WebFetch. Правило, такое как `Bash(command:rm *)`, можно было бы обойти составной командой, поэтому Claude Code игнорирует его и выдает предупреждение при запуске. Используйте `Bash(rm *)`, `Read(./path)` или `WebFetch(domain:host)` вместо этого.152Вы не можете совпадать с основным полем содержимого инструмента таким образом: `command` для Bash и PowerShell, `file_path` для Read, Edit и Write, `path` для Grep и Glob, `notebook_path` для NotebookEdit и `url` для WebFetch. Правило, такое как `Bash(command:rm *)`, можно было бы обойти составной командой, поэтому Claude Code игнорирует его и выдает предупреждение при запуске. Используйте `Bash(rm *)`, `Read(./path)` или `WebFetch(domain:host)` вместо этого.


228 Bash230 Bash

229</h3>231</h3>

230 232 

231Правила Bash соответствуют всему тексту команды, где `*` обозначает любой текст. [Шаблоны подстановки](#wildcard-patterns) показывает, какие команды соответствуют каждой форме правила и где размещать `*`. Остальная часть этого раздела охватывает то, как Claude Code сопоставляет составные команды и обёртки, что правило не соответствует, команды только для чтения и перенаправления.233Правила Bash соответствуют всему тексту команды, где `*` обозначает любой текст. [Шаблоны подстановки](#wildcard-patterns) показывает, какие команды соответствуют каждой форме правила и где размещать `*`. Остальная часть этого раздела охватывает, как Claude Code сопоставляет составные команды и обёртки, что правило не соответствует, команды только для чтения и перенаправления.

232 234 

233<h4 id="compound-commands">235<h4 id="compound-commands">

234 Составные команды236 Составные команды


240 242 

241Правила отказа и запроса применяются, когда любая подкоманда им соответствует, включая команду, вложенную в подоболочку, подстановку команды или тело управления потоком, такое как цикл `for`. Правило запроса вроде `Bash(git clean *)` по-прежнему запрашивает вас для `cd /tmp && git clean -f` или `echo "$(git clean -f)"`, даже в [автоматическом режиме](/docs/ru/permission-modes#eliminate-prompts-with-auto-mode).243Правила отказа и запроса применяются, когда любая подкоманда им соответствует, включая команду, вложенную в подоболочку, подстановку команды или тело управления потоком, такое как цикл `for`. Правило запроса вроде `Bash(git clean *)` по-прежнему запрашивает вас для `cd /tmp && git clean -f` или `echo "$(git clean -f)"`, даже в [автоматическом режиме](/docs/ru/permission-modes#eliminate-prompts-with-auto-mode).

242 244 

243Когда после `&&` или `||` ничего нет, например в `npm test &&`, Claude Code рассматривает команду как неразбираемую и не разбивает её на подкоманды для сопоставления правил разрешения, поэтому правило вроде `Bash(npm *)` не одобряет её.245Когда после `&&` или `||` ничего нет, например в `npm test &&`, Claude Code рассматривает команду как непарсируемую и не разбивает её на подкоманды для сопоставления с правилами разрешения, поэтому правило вроде `Bash(npm *)` его не одобряет.

244 246 

245Когда вы одобряете составную команду с помощью «Да, и больше не спрашивать», Claude Code сохраняет отдельное правило для каждой подкоманды, требующей одобрения, а не одно правило для полной строки составной команды. Например, одобрение `git status && npm test` сохраняет правило для `npm test`, поэтому будущие вызовы `npm test` распознаются независимо от того, что предшествует `&&`. Подкоманды вроде `cd` в каталог вне ваших рабочих каталогов генерируют собственное правило Read для этого пути. Для одной составной команды может быть сохранено до 5 правил.247Когда вы одобряете составную команду с помощью «Да, и больше не спрашивать», Claude Code сохраняет отдельное правило для каждой подкоманды, требующей одобрения, а не одно правило для полной составной строки. Например, одобрение `git status && npm test` сохраняет правило для `npm test`, поэтому будущие вызовы `npm test` распознаются независимо от того, что предшествует `&&`. Подкоманды вроде `cd` в каталог вне ваших рабочих каталогов генерируют собственное правило Read для этого пути. Для одной составной команды может быть сохранено до 5 правил.

246 248 

247<h4 id="process-wrappers">249<h4 id="process-wrappers">

248 Обёртки250 Обёртки

249</h4>251</h4>

250 252 

251Перед сопоставлением правил Bash, Claude Code удаляет фиксированный набор обёрток, поэтому правило вроде `Bash(npm test *)` также соответствует `timeout 30 npm test`. Удаляемые обёртки — это `timeout`, `time`, `nice`, `nohup` и `stdbuf`, плюс встроенные команды оболочки `command` и `builtin`, а также `noglob` в zsh. Каждая запускает свой аргумент как фактическую команду. Две связанные формы не удаляются: форма запроса `command -v`, которая ищет команду, а не запускает её, и `nocorrect` в zsh.253Перед сопоставлением правил Bash Claude Code удаляет фиксированный набор обёрток, поэтому правило вроде `Bash(npm test *)` также соответствует `timeout 30 npm test`. Удаляемые обёртки — это `timeout`, `time`, `nice`, `nohup` и `stdbuf`, плюс встроенные команды оболочки `command` и `builtin`, а также `noglob` в zsh. Каждая запускает свой аргумент как фактическую команду. Две связанные формы не удаляются: форма запроса `command -v`, которая ищет команду, а не запускает её, и `nocorrect` в zsh.

252 254 

253Claude Code также удаляет начальное присваивание определённых известных безопасных переменных окружения, поэтому `Bash(npm test *)` соответствует `NODE_ENV=test npm test`. Правило разрешения не будет соответствовать после присваивания любой другой переменной. Правило отказа или запроса соответствует после любого начального присваивания, поэтому `Bash(rm *)` в отказе по-прежнему соответствует `FOO=bar rm -rf tmp/`.255Claude Code также удаляет начальное присваивание определённых известных безопасных переменных окружения, поэтому `Bash(npm test *)` соответствует `NODE_ENV=test npm test`. Правило разрешения не будет соответствовать после присваивания любой другой переменной. Правило отказа или запроса соответствует после любого начального присваивания, поэтому `Bash(rm *)` в отказе по-прежнему соответствует `FOO=bar rm -rf tmp/`.

254 256 


256 258 

257Этот список обёрток встроен и не настраивается. Средства запуска среды разработки, такие как `direnv exec`, `devbox run`, `mise exec`, `npx` и `docker exec`, не входят в список. Поскольку эти инструменты выполняют свои аргументы как команду, правило вроде `Bash(devbox run *)` соответствует всему, что идёт после `run`, включая `devbox run rm -rf .`. Чтобы одобрить работу внутри средства запуска среды, напишите конкретное правило, которое включает как средство запуска, так и внутреннюю команду, например `Bash(devbox run npm test)`. Добавьте одно правило для каждой внутренней команды, которую вы хотите разрешить.259Этот список обёрток встроен и не настраивается. Средства запуска среды разработки, такие как `direnv exec`, `devbox run`, `mise exec`, `npx` и `docker exec`, не входят в список. Поскольку эти инструменты выполняют свои аргументы как команду, правило вроде `Bash(devbox run *)` соответствует всему, что идёт после `run`, включая `devbox run rm -rf .`. Чтобы одобрить работу внутри средства запуска среды, напишите конкретное правило, которое включает как средство запуска, так и внутреннюю команду, например `Bash(devbox run npm test)`. Добавьте одно правило для каждой внутренней команды, которую вы хотите разрешить.

258 260 

259Обёртки exec, такие как `watch`, `setsid`, `ionice` и `flock`, не могут быть автоматически одобрены правилом префикса вроде `Bash(watch *)`, поэтому в ручном режиме они всегда запрашивают. То же самое применяется к `find` с `-exec` или `-delete`: правило `Bash(find *)` не охватывает эти формы. Чтобы одобрить конкретный вызов, напишите правило точного совпадения для полной строки команды.261Обёртки Exec, такие как `watch`, `setsid`, `ionice` и `flock`, не могут быть автоматически одобрены правилом префикса вроде `Bash(watch *)`, поэтому в ручном режиме они всегда запрашивают. То же самое применяется к `find` с `-exec` или `-delete`: правило `Bash(find *)` не охватывает эти формы. Чтобы одобрить конкретный вызов, напишите правило точного совпадения для полной строки команды.

260 262 

261<h4 id="bash-rule-limits">263<h4 id="bash-rule-limits">

262 Что правило Bash не соответствует264 Что правило Bash не соответствует

263</h4>265</h4>

264 266 

265Правило Bash соответствует тексту команды, который пишет Claude, после того как Claude Code разбивает [составные команды](#compound-commands) и удаляет [обёртки](#process-wrappers). Оно не соответствует одной и той же программе, вызванной в другой форме, поэтому правило отказа или запроса охватывает вызов, который Claude обычно производит, и не является границей безопасности вокруг программы. Эти правила в `deny` или `ask` останавливают первую форму, но не другие:267Правило Bash соответствует тексту команды, который пишет Claude, после того как Claude Code разбивает [составные команды](#compound-commands) и удаляет [обёртки](#process-wrappers). Оно не соответствует одной и той же программе, вызванной в другой форме, поэтому правило отказа или запроса охватывает вызов, который Claude обычно производит, и не является границей безопасности вокруг программы. Эти правила в `deny` или `ask` останавливают первую форму, а не другие:

266 268 

267| Правило | Останавливает | Не останавливает |269| Правило | Останавливает | Не останавливает |

268| :- | :- | :- |270| :- | :- | :- |


272 274 

273Ваши другие правила и режим разрешений определяют команды в последнем столбце.275Ваши другие правила и режим разрешений определяют команды в последнем столбце.

274 276 

275Для принудительного применения файловой системы и сети, которое не зависит от текста команды, используйте [изоляцию в песочнице](/docs/ru/sandboxing). Чтобы проверить полный текст команды с вашей собственной логикой перед её выполнением, используйте [hook PreToolUse](#extend-permissions-with-hooks).277Для принудительного применения файловой системы и сети, которое не зависит от текста команды, используйте [изоляцию в песочнице](/docs/ru/sandboxing). Чтобы проверить полный текст команды с вашей собственной логикой перед её выполнением, используйте hook [PreToolUse](#extend-permissions-with-hooks).

276 278 

277<h4 id="read-only-commands">279<h4 id="read-only-commands">

278 Команды только для чтения280 Команды только для чтения

279</h4>281</h4>

280 282 

281Claude Code распознаёт встроенный набор команд Bash как команды только для чтения и выполняет их без запроса разрешения в каждом режиме, за исключением пути, который [`permissions.blockReadsOutsideWorkingDirectories`](/docs/ru/settings-reference#permissions-blockreadsoutsideworkingdirectories) ограничивает. Набор включает `ls`, `cat`, `echo`, `pwd`, `head`, `tail`, `grep`, `find`, `wc`, `which`, `diff`, `stat`, `du`, `cd` и формы `git` только для чтения. Набор не настраивается; чтобы требовать запрос для одной из этих команд, добавьте правило `ask` или `deny` для неё. В автоматическом режиме эти команды также могут ждать проверки классификатора; см. [как классификатор оценивает действия](/docs/ru/permission-modes#how-the-classifier-evaluates-actions).283Claude Code распознаёт встроенный набор команд Bash как команды только для чтения и выполняет их без запроса разрешения в каждом режиме, за исключением того, как [`permissions.blockReadsOutsideWorkingDirectories`](/docs/ru/settings-reference#permissions-blockreadsoutsideworkingdirectories) изменяет поведение для путей вне ваших рабочих каталогов. Набор включает `ls`, `cat`, `echo`, `pwd`, `head`, `tail`, `grep`, `find`, `wc`, `which`, `diff`, `stat`, `du`, `cd` и формы `git` только для чтения. Набор не настраивается; чтобы требовать запрос для одной из этих команд, добавьте правило `ask` или `deny` для неё. В автоматическом режиме эти команды также могут ждать проверки классификатора; см. [как классификатор оценивает действия](/docs/ru/permission-modes#how-the-classifier-evaluates-actions).

282 284 

283Перенаправление вроде `ls > out.txt` добавляет проверку на цель. См. [Перенаправления](#redirections).285Перенаправление вроде `ls > out.txt` добавляет проверку на цель. См. [Перенаправления](#redirections).

284 286 

285Неэкранированные шаблоны glob разрешены для команд, у которых каждый флаг только для чтения, поэтому `ls *.ts` и `wc -l src/*.py` выполняются без запроса.287Неэкранированные шаблоны глобализации разрешены для команд, у которых каждый флаг только для чтения, поэтому `ls *.ts` и `wc -l src/*.py` выполняются без запроса.

286 288 

287В ручном режиме команды из этого набора по-прежнему запрашивают в этих случаях:289В ручном режиме команды из этого набора по-прежнему запрашивают в этих случаях:

288 290 

289* **Неэкранированные глобы для команд с флагами, способными к записи**: команды с флагами, способными к записи или выполнению, такие как `find`, `sort`, `sed` и `git`, запрашивают при наличии неэкранированного глоба, потому что глоб может расширяться до флага вроде `-delete`.291* **Неэкранированные глобы для команд с флагами, способными к записи**: команды с флагами, способными к записи или выполнению, такие как `find`, `sort`, `sed` и `git`, запрашивают при наличии неэкранированного глоба, потому что глоб может расширяться до флага вроде `-delete`.

290* **`docker` указывающий на другой демон**: формы `docker` только для чтения запрашивают, когда команда содержит флаг, который выбирает другой демон, такой как `-H`, `--context` или `--url` и `--connection` в Podman.292* **`docker` указывающий на другой демон**: формы `docker` только для чтения запрашивают, когда команда несёт флаг, который выбирает другой демон, такой как `-H`, `--context` или `--url` и `--connection` в Podman.

291* **`file` с флагами открытия пути**: `file` запрашивает, когда он передаёт `-m`/`--magic-file` или `-f`/`--files-from`, потому что эти флаги заставляют `file` открывать пути, названные в значении флага.293* **`file` с флагами открытия пути**: `file` запрашивает, когда он передаёт `-m`/`--magic-file` или `-f`/`--files-from`, потому что эти флаги заставляют `file` открывать пути, названные в значении флага.

292* **Сетевые пути в Windows**: команда, аргументы которой включают сетевой путь (UNC), такой как `\\server\share\file`, запрашивает, потому что доступ к сетевому пути может отправить ваши учётные данные Windows хосту, который он называет. Та же проверка применяется к командам [инструмента PowerShell](/docs/ru/tools-reference#powershell-tool).294* **Сетевые пути в Windows**: команда, аргументы которой включают сетевой путь (UNC), такой как `\\server\share\file`, запрашивает, потому что доступ к сетевому пути может отправить ваши учётные данные Windows на хост, который он называет. Та же проверка применяется к командам инструмента [PowerShell](/docs/ru/tools-reference#powershell-tool).

293* **Команды, которые анализ не может разобрать**: когда Claude Code не может полностью разобрать команду, он запрашивает одобрение вместо того, чтобы рассматривать команду как только для чтения. Команды длиннее 10 000 символов всегда запрашивают, потому что они превышают то, что анализ разбирает.295* **Записи в специальные переменные оболочки**: команда, которая устанавливает, отменяет или циклирует определённые специальные переменные оболочки, такие как `PATH` или `IFS`, запрашивает даже когда остальная часть команды только для чтения.

296* **Команды, которые анализ не может разобрать**: когда Claude Code не может полностью разобрать команду, он запрашивает одобрение вместо того, чтобы рассматривать команду как только для чтения. Команды длиннее 10 000 символов всегда запрашивают, потому что они превышают то, что анализирует анализ.

294 297 

295`cd` в путь внутри вашего рабочего каталога или [дополнительного каталога](#working-directories) также только для чтения, и составная команда вроде `cd packages/api && ls` выполняется без запроса, когда каждая часть квалифицируется самостоятельно. Эти комбинации запрашивают даже когда каждая часть только для чтения:298`cd` в путь внутри вашего рабочего каталога или [дополнительного каталога](#working-directories) также только для чтения, и составная команда вроде `cd packages/api && ls` выполняется без запроса, когда каждая часть квалифицируется самостоятельно. Эти комбинации запрашивают даже когда каждая часть только для чтения:

296 299 


298* **`cd` с перенаправлением**: запрашивает, когда Claude Code не может определить, в какой каталог разрешается цель перенаправления после выполнения `cd`. Команда, единственной целью перенаправления которой является `/dev/null`, такая как `cd app; grep -r pattern . 2>/dev/null`, не запрашивает, потому что `/dev/null` не зависит от рабочего каталога.301* **`cd` с перенаправлением**: запрашивает, когда Claude Code не может определить, в какой каталог разрешается цель перенаправления после выполнения `cd`. Команда, единственной целью перенаправления которой является `/dev/null`, такая как `cd app; grep -r pattern . 2>/dev/null`, не запрашивает, потому что `/dev/null` не зависит от рабочего каталога.

299 302 

300<Warning>303<Warning>

301 Шаблоны разрешений Bash, которые пытаются ограничить аргументы команды, хрупкие. Например, `Bash(curl http://github.com/ *)` предназначен для ограничения curl URL-адресами GitHub, но не будет соответствовать вариациям вроде:304 Шаблоны разрешений Bash, которые пытаются ограничить аргументы команды, хрупки. Например, `Bash(curl http://github.com/ *)` предназначен для ограничения curl на URL-адреса GitHub, но не будет соответствовать вариациям вроде:

302 305 

303 * Опции перед URL: `curl -X GET http://github.com/...`306 * Опции перед URL: `curl -X GET http://github.com/...`

304 * Другой протокол: `curl https://github.com/...`307 * Другой протокол: `curl https://github.com/...`


311 * **Используйте hooks PreToolUse**: реализуйте hook, который проверяет URL-адреса в командах Bash и блокирует недопустимые домены314 * **Используйте hooks PreToolUse**: реализуйте hook, который проверяет URL-адреса в командах Bash и блокирует недопустимые домены

312 * **Добавьте руководство CLAUDE.md**: опишите ваши разрешённые шаблоны curl в `CLAUDE.md`. Это формирует то, что Claude пытается, но не обеспечивает границу, поэтому объедините с одним из вариантов выше315 * **Добавьте руководство CLAUDE.md**: опишите ваши разрешённые шаблоны curl в `CLAUDE.md`. Это формирует то, что Claude пытается, но не обеспечивает границу, поэтому объедините с одним из вариантов выше

313 316 

314 Обратите внимание, что использование только WebFetch не предотвращает сетевой доступ. Если Bash разрешён, Claude по-прежнему может использовать `curl`, `wget` или другие инструменты для доступа к любому URL-адресу.317 Обратите внимание, что использование только WebFetch не предотвращает сетевой доступ. Если Bash разрешён, Claude всё ещё может использовать `curl`, `wget` или другие инструменты для доступа к любому URL.

315</Warning>318</Warning>

316 319 

317<h4 id="redirections">320<h4 id="redirections">


320 323 

321Когда команда перенаправляет вывод или ввод, Claude Code проверяет цель перенаправления против ваших правил файлов, как если бы Claude напрямую написал или прочитал этот файл:324Когда команда перенаправляет вывод или ввод, Claude Code проверяет цель перенаправления против ваших правил файлов, как если бы Claude напрямую написал или прочитал этот файл:

322 325 

323* **Перенаправления вывода**: для `> file`, `>> file` или `2> file`, проверка охватывает ваши правила разрешения и отказа `Edit`, [защищённые пути](/docs/ru/permission-modes#protected-paths) и [рабочие каталоги](#working-directories). Правило вроде `Bash(git commit *)` разрешает команду, а не цель. Цель, которая начинается с `~` или содержит символ глоба, требует вашего одобрения.326* **Перенаправления вывода**: для `> file`, `>> file` или `2> file`, проверка охватывает ваши правила разрешения и отказа `Edit`, [защищённые пути](/docs/ru/permission-modes#protected-paths) и [рабочие каталоги](#working-directories). Правило вроде `Bash(git commit *)` разрешает команду, а не цель. Цель, которая начинается с `~` или содержит символ глобализации, требует вашего одобрения.

324* **Перенаправления ввода**: для `< file`, проверка охватывает ваши правила разрешения и отказа `Read` и рабочие каталоги. Цель вне рабочих каталогов требует вашего одобрения, если правило разрешения её не охватывает. Цель, которая содержит шаблон глоба или относительный путь, следующий за `cd` в той же команде, требует вашего одобрения даже когда правило разрешения её охватывает. Claude Code проверяет цели ввода в v2.1.257 и позже.327* **Перенаправления ввода**: для `< file`, проверка охватывает ваши правила разрешения и отказа `Read` и рабочие каталоги. Цель вне рабочих каталогов требует вашего одобрения, если правило разрешения её не охватывает. Цель, которая содержит шаблон глобализации, или относительный путь, который следует за `cd` в одной и той же команде, требует вашего одобрения даже когда правило разрешения её охватывает. Claude Code проверяет цели ввода в v2.1.257 и позже.

325 328 

326Цели без файла позади них не проверяются: `/dev/null`, формы дескриптора файла, такие как `2>&1` и `<&3`, и here-docs и here-strings.329Цели без файла позади них не проверяются: `/dev/null`, формы дескриптора файла, такие как `2>&1` и `<&3`, и here-docs и here-strings.

327 330 


357 360 

358Чтобы заблокировать инструменты файлов Claude от чтения файла или каталога, добавьте правило отказа `Read` для его пути, такое как `Read(./.env)` или `Read(./secrets/**)` ; [Исключить конфиденциальные файлы](/docs/ru/settings-reference#exclude-sensitive-files) содержит готовый к вставке пример.361Чтобы заблокировать инструменты файлов Claude от чтения файла или каталога, добавьте правило отказа `Read` для его пути, такое как `Read(./.env)` или `Read(./secrets/**)` ; [Исключить конфиденциальные файлы](/docs/ru/settings-reference#exclude-sensitive-files) содержит готовый к вставке пример.

359 362 

360Правила `Edit` применяются ко всем встроенным инструментам, которые редактируют файлы. Claude прилагает наилучшие усилия для применения правил `Read` ко всем встроенным инструментам, которые читают файлы, таким как Grep и Glob, к упоминаниям `@file` в ваших подсказках и к выделению и контексту открытого файла, которые подключённый [IDE](/docs/ru/vs-code#the-built-in-ide-mcp-server) делит с Claude.363Правила `Edit` применяются ко всем встроенным инструментам, которые редактируют файлы. Claude прилагает наилучшие усилия для применения правил `Read` ко всем встроенным инструментам, которые читают файлы, такие как Grep и Glob, к упоминаниям `@file` в ваших подсказках и к выделению и контексту открытого файла, которые подключённый [IDE](/docs/ru/vs-code#the-built-in-ide-mcp-server) делит с Claude.

361 364 

362Правило отказа `Read` также блокирует [инструменты Edit и Write](/docs/ru/errors#file-is-covered-by-a-read-deny-rule) на том же пути, включая создание нового файла там. NotebookEdit не охватывается, поэтому добавьте правило отказа `Edit` для путей, которые ни один инструмент не может изменять. Проверка требует Claude Code v2.1.208 или позже при редактировании, и v2.1.228 или позже при записи.365Правило отказа `Read` также блокирует инструменты [Edit и Write](/docs/ru/errors#file-is-covered-by-a-read-deny-rule) на том же пути, включая создание нового файла там. NotebookEdit не охватывается, поэтому добавьте правило отказа `Edit` для путей, которые ни один инструмент не может изменять. Проверка требует Claude Code v2.1.208 или позже при редактировании, и v2.1.228 или позже при записи.

363 366 

364Claude Code проверяет разрешения файлов только против правил `Edit(path)` и `Read(path)`. Если вы напишете правило пути для `Write`, `NotebookEdit`, `Glob` или устаревшего инструмента `MultiEdit`, Claude Code принимает правило, но никогда не консультируется с ним, и [предупреждает при запуске](/docs/ru/errors#is-not-matched-by-file-permission-checks), за исключением правила `Glob`, переданного в `--allowedTools`. Используйте `Edit(docs/**)` вместо `Write(docs/**)`, `NotebookEdit(docs/**)` или `MultiEdit(docs/**)`, и `Read(docs/**)` вместо `Glob(docs/**)`. Claude Code не предупреждает о правиле имени инструмента без пути, такое как правило отказа для `Write`; оно соответствует этому правилу на уровне инструмента везде. Требует Claude Code v2.1.210 или позже.367Claude Code проверяет разрешения файлов только против правил `Edit(path)` и `Read(path)`. Если вы напишете правило пути для `Write`, `NotebookEdit`, `Glob` или устаревшего инструмента `MultiEdit`, Claude Code принимает правило, но никогда не консультируется с ним, и [предупреждает при запуске](/docs/ru/errors#is-not-matched-by-file-permission-checks), за исключением правила `Glob`, переданного в `--allowedTools`. Используйте `Edit(docs/**)` вместо `Write(docs/**)`, `NotebookEdit(docs/**)` или `MultiEdit(docs/**)`, и `Read(docs/**)` вместо `Glob(docs/**)`. Claude Code не предупреждает о правиле имени инструмента без пути, такое как правило отказа для `Write`; оно соответствует этому правилу на уровне инструмента везде. Требует Claude Code v2.1.210 или позже.

365 368 


372| Шаблон | Значение | Пример | Соответствует |375| Шаблон | Значение | Пример | Соответствует |

373| - | - | - | - |376| - | - | - | - |

374| `//path` | Абсолютный путь от корня файловой системы | `Read(//Users/alice/secrets/**)` | `/Users/alice/secrets/**` |377| `//path` | Абсолютный путь от корня файловой системы | `Read(//Users/alice/secrets/**)` | `/Users/alice/secrets/**` |

375| `~/path` | Путь от домашнего каталога | `Read(~/Documents/*.pdf)` | `/Users/alice/Documents/*.pdf` |378| `~/path` | Путь из домашнего каталога | `Read(~/Documents/*.pdf)` | `/Users/alice/Documents/*.pdf` |

376| `/path` | Путь относительно источника параметров | `Edit(/src/**/*.ts)` | `<primary working directory>/src/**/*.ts` в параметрах проекта |379| `/path` | Путь относительно источника параметров | `Edit(/src/**/*.ts)` | `<primary working directory>/src/**/*.ts` в параметрах проекта |

377| `path` или `./path` | Путь относительно текущего каталога | `Read(*.env)` | `<cwd>/*.env` |380| `path` или `./path` | Путь относительно текущего каталога | `Read(*.env)` | `<cwd>/*.env` |

378 381 

379<Warning>382<Warning>

380 Шаблон вроде `/Users/alice/file` не является абсолютным путём. Одна начальная косая черта якорирует в источнике параметров, а не в корне файловой системы. Используйте `//Users/alice/file` для абсолютных путей.383 Шаблон вроде `/Users/alice/file` не является абсолютным путём. Одиночный начальный слэш якорирует в источнике параметров, а не в корне файловой системы. Используйте `//Users/alice/file` для абсолютных путей.

381</Warning>384</Warning>

382 385 

383Шаблон `/path` якорирует в каталоге, связанном с источником параметров, который его определяет, поэтому одно и то же правило соответствует разным местоположениям в зависимости от того, где вы его разместите:386Шаблон `/path` якорирует в каталоге, связанном с источником параметров, который его определяет, поэтому одно и то же правило соответствует разным местоположениям в зависимости от того, где вы его разместите:


392 395 

393Правило, которое вы добавляете через `/permissions`, следует строке для файла параметров, в который вы его сохраняете.396Правило, которое вы добавляете через `/permissions`, следует строке для файла параметров, в который вы его сохраняете.

394 397 

395Правила локальных параметров якорируют в [основном рабочем каталоге](#working-directories) сеанса, а не в корне репозитория, где Claude Code [хранит файл](#permission-system) в v2.1.211 и позже. В сеансе, запущенном в корне репозитория, два каталога одинаковы; в сеансе [worktree](/docs/ru/worktrees), общее правило вроде `Edit(/src/**)` соответствует собственному каталогу `src/` этого worktree.398Правила локальных параметров якорируют в [основном рабочем каталоге](#working-directories) сеанса, а не в корне репозитория, где Claude Code [сохраняет файл](#permission-system) в v2.1.211 и позже. В сеансе, запущенном в корне репозитория, два каталога одинаковы; в сеансе [worktree](/docs/ru/worktrees), общее правило вроде `Edit(/src/**)` соответствует собственному каталогу `src/` этого worktree.

396 399 

397Правило отказа вроде `Read(/secrets/**)` в параметрах пользователя блокирует `~/.claude/secrets/**`, а не каталог `secrets` в вашем проекте. Чтобы написать правило в параметрах пользователя, которое применяется внутри каждого проекта, используйте вместо этого абсолютный путь `//` или путь относительно дома `~/`.400Правило отказа вроде `Read(/secrets/**)` в параметрах пользователя блокирует `~/.claude/secrets/**`, а не каталог `secrets` в вашем проекте. Чтобы написать правило в параметрах пользователя, которое применяется внутри каждого проекта, используйте вместо этого абсолютный путь `//` или путь относительно дома `~/`.

398 401 


439| `Edit(**/src/**)` в любом типе правила | Да | Да |442| `Edit(**/src/**)` в любом типе правила | Да | Да |

440 443 

441<Note>444<Note>

442 В шаблонах gitignore `*` соответствует в пределах одного сегмента пути и может появляться в любой позиции в шаблоне, в то время как `**` соответствует через каталоги.445 В шаблонах gitignore `*` соответствует в одном сегменте пути и может появляться в любой позиции в шаблоне, в то время как `**` соответствует через каталоги.

443</Note>446</Note>

444 447 

445Когда вы одобряете путь файла с помощью «Да, и больше не спрашивать», Claude Code экранирует символы шаблона gitignore в этом пути, такие как `[`, `]` и `*`, поэтому сгенерированное правило соответствует только буквальному пути, который вы одобрили. Правила, которые вы пишете сами, не экранируются. До v2.1.202 Claude Code сохранял путь неэкранированным, поэтому сгенерированное правило для каталога с именем `[2024-06] Reports` могло не соответствовать собственному пути или соответствовать непредусмотренным соседним каталогам.448Когда вы одобряете путь файла с помощью «Да, и больше не спрашивать», Claude Code экранирует символы шаблона gitignore в этом пути, такие как `[`, `]` и `*`, поэтому сгенерированное правило соответствует только буквальному пути, который вы одобрили. Правила, которые вы пишете сами, не экранируются. До v2.1.202 Claude Code сохранял путь неэкранированным, поэтому сгенерированное правило для каталога с именем `[2024-06] Reports` могло не соответствовать собственному пути или соответствовать непредусмотренным соседним каталогам.


450 453 

451Шаблон отказа или запроса, который начинается с `!`, является отрицанием gitignore. Он вырезает пути, которые он соответствует, из правил `path` или `./path`, перечисленных перед ним. В одном списке `deny` файла параметров `Read(*.env)`, за которым следует `Read(!sample.env)`, блокирует каждый файл, имя которого заканчивается на `.env` на любой глубине, за исключением файлов с именем `sample.env`. Правило `!`, перечисленное первым, ничего не вырезает.454Шаблон отказа или запроса, который начинается с `!`, является отрицанием gitignore. Он вырезает пути, которые он соответствует, из правил `path` или `./path`, перечисленных перед ним. В одном списке `deny` файла параметров `Read(*.env)`, за которым следует `Read(!sample.env)`, блокирует каждый файл, имя которого заканчивается на `.env` на любой глубине, за исключением файлов с именем `sample.env`. Правило `!`, перечисленное первым, ничего не вырезает.

452 455 

453Вырезание достигает только правил из одного источника. `Read(!.env)` в параметрах проекта или в `--disallowedTools` не отменяет отказ `Read(./.env)` из управляемых параметров или любого другого файла параметров.456Вырезание достигает только правил из одного источника. `Read(!.env)` в параметрах проекта или в `--disallowedTools` не отменяет `Read(./.env)` отказ из управляемых параметров или любого другого файла параметров.

454 457 

455Два ограничения сужают то, что может вырезать шаблон `!`:458Два ограничения сужают то, что шаблон `!` может вырезать:

456 459 

457* Claude Code читает шаблон `!` относительно текущего каталога даже когда после `!` следует `/`, `~/` или `//`, поэтому шаблон не может достичь правила, якорированного одним из этих префиксов. `Read(!~/notes/public/**)` ничего не вырезает из `Read(~/notes/**)`.460* Claude Code читает шаблон `!` относительно текущего каталога даже когда после `!` следует `/`, `~/` или `//`, поэтому шаблон не может достичь правила, якорированного одним из этих префиксов. `Read(!~/notes/public/**)` вырезает ничего из `Read(~/notes/**)`.

458* Вырезание не может переоткрыть файл внутри каталога, который правило блокирует целиком. С `Read(secrets/**)` и `Read(!secrets/public/**)`, Claude Code по-прежнему блокирует `secrets/public` вместе с остальной частью `secrets`.461* Вырезание не может переоткрыть файл внутри каталога, который правило блокирует целиком. С `Read(secrets/**)` и `Read(!secrets/public/**)`, Claude Code по-прежнему блокирует `secrets/public` вместе с остальной частью `secrets`.

459 462 

460<h4 id="symlinks">463<h4 id="symlinks">

461 Символические ссылки464 Символические ссылки

462</h4>465</h4>

463 466 

464Когда путь файла, который запрашивает Claude, проходит через символическую ссылку, проверка разрешения охватывает два пути: запрошенный путь и файл, на который он разрешается. Это применяется к символическим ссылкам на macOS, Linux и Windows, а также к соединениям каталогов на Windows.467Когда путь файла, который запрашивает Claude, проходит через символическую ссылку, проверка разрешения охватывает два пути: тот, который запросил Claude, и файл, на который он разрешается. Это применяется к символическим ссылкам на macOS, Linux и Windows, а также к соединениям каталогов в Windows.

465 468 

466<h5 id="how-rules-match-a-symlinked-path">469<h5 id="how-rules-match-a-symlinked-path">

467 Как правила соответствуют символически связанному пути470 Как правила соответствуют пути со ссылкой

468</h5>471</h5>

469 472 

470Правила разрешения и отказа обрабатывают запрошенный путь и файл, на который он разрешается, по-разному:473Правила разрешения и отказа рассматривают запрошенный путь и файл, на который он разрешается, по-разному:

471 474 

472* **Правила разрешения**: применяются только когда оба пути символической ссылки и её цель соответствуют. Чтение через символическую ссылку внутри разрешённого каталога, которая указывает вне его, не соответствует правилу.475* **Правила разрешения**: применяются только когда оба запрошенный путь и файл, на который он разрешается, соответствуют. Чтение через символическую ссылку внутри разрешённого каталога, которая указывает вне его, не соответствует правилу.

473* **Правила отказа**: применяются когда либо путь символической ссылки, либо её цель соответствует. Символическая ссылка, которая указывает на запрещённый файл, сама запрещена. Например, с `Read(./project/**)` разрешённым и `Read(~/.ssh/**)` запрещённым, символическая ссылка в `./project/key`, указывающая на `~/.ssh/id_rsa`, блокируется: цель не проходит правило разрешения и соответствует правилу отказа.476* **Правила отказа**: применяются когда либо запрошенный путь, либо файл, на который он разрешается, соответствует. Символическая ссылка, которая указывает на запрещённый файл, сама запрещена. Например, с `Read(./project/**)` разрешённым и `Read(~/.ssh/**)` запрещённым, символическая ссылка в `./project/key`, указывающая на `~/.ssh/id_rsa`, блокируется: цель не проходит правило разрешения и соответствует правилу отказа.

474 477 

475На macOS и Linux, правило отказа или запроса, написанное через символически связанный каталог с шаблоном `//`, `~/` или `/`, также применяется в реальном местоположении каталога. Например, на macOS, где `/etc` разрешается в `/private/etc`, `Read(//etc/**)` также блокирует `/private/etc/hosts`. До v2.1.268 правило отказа или запроса, написанное через символически связанный каталог, не применялось к пути, заданному его реальным местоположением.478На macOS и Linux правило отказа или запроса, написанное через символический каталог с шаблоном `//`, `~/` или `/`, также применяется в реальном местоположении каталога. Например, на macOS, где `/etc` разрешается в `/private/etc`, `Read(//etc/**)` также блокирует `/private/etc/hosts`. До v2.1.268 правило отказа или запроса, написанное через символический каталог, не применялось к пути, заданному его реальным местоположением.

476 479 

477Grep и Glob ищут каталог, на который разрешается аргумент `path`. Claude Code применяет правила отказа `Read` к этому каталогу.480Grep и Glob ищут каталог, на который разрешается аргумент `path`. Claude Code применяет правила отказа `Read` к этому каталогу.

478 481 


482 485 

483Если путь, который Claude просит отредактировать или написать, сам является символической ссылкой, инструменты Edit и Write [отказывают в записи и направляют Claude к цели ссылки](/docs/ru/errors#refusing-after-a-symlink-changed).486Если путь, который Claude просит отредактировать или написать, сам является символической ссылкой, инструменты Edit и Write [отказывают в записи и направляют Claude к цели ссылки](/docs/ru/errors#refusing-after-a-symlink-changed).

484 487 

485Запись по-прежнему может пройти через символическую ссылку, когда каталог на пути к файлу является символической ссылкой, или когда команда Bash или PowerShell выполняет запись. Для этих записей то, что происходит, зависит от того, где файл, на который разрешается запись, находится относительно ваших [рабочих каталогов](#working-directories) и [защищённых путей](/docs/ru/permission-modes#protected-paths):488Запись всё ещё может пройти через символическую ссылку, когда каталог на пути к файлу является символической ссылкой, или когда команда Bash или PowerShell выполняет запись. Для этих записей то, что происходит, зависит от того, где файл, на который разрешается запись, находится относительно ваших [рабочих каталогов](#working-directories) и [защищённых путей](/docs/ru/permission-modes#protected-paths):

486 489 

487* **Разрешается вне рабочих каталогов**: когда запрошенный путь находится внутри ваших рабочих каталогов, а файл, на который он разрешается, нет, запись не автоматически одобряется в режиме [`acceptEdits`](/docs/ru/permission-modes#auto-approve-file-edits-with-acceptedits-mode). В [автоматическом режиме](/docs/ru/permission-modes#eliminate-prompts-with-auto-mode), если правило разрешения не одобряет запись, вас запрашивают вместо того, чтобы классификатор решал. Запрос называет путь, на который разрешается запись.490* **Разрешается вне рабочих каталогов**: когда запрошенный путь находится внутри ваших рабочих каталогов, а файл, на который он разрешается, нет, запись не автоматически одобряется в режиме [`acceptEdits`](/docs/ru/permission-modes#auto-approve-file-edits-with-acceptedits-mode). В [автоматическом режиме](/docs/ru/permission-modes#eliminate-prompts-with-auto-mode), если правило разрешения не одобряет запись, вам предлагается выбор вместо того, чтобы классификатор решал. Запрос называет путь, на который разрешается запись.

488* **Разрешается к защищённому пути, который запрошенный путь не называет**: [таблица защищённых путей](/docs/ru/permission-modes#protected-paths) даёт результат для каждого режима разрешений, за исключением того, что где таблица маршрутизирует запись к классификатору, эта запись вместо этого запрашивает вас.491* **Разрешается к защищённому пути, который запрошенный путь не называет**: таблица [защищённых путей](/docs/ru/permission-modes#protected-paths) даёт результат для каждого режима разрешений, за исключением того, что где таблица маршрутизирует запись классификатору, эта запись вместо этого вас запрашивает.

489 492 

490<h5 id="paths-that-can’t-be-resolved-or-that-change">493<h5 id="paths-that-can’t-be-resolved-or-that-change">

491 Пути, которые не могут быть разрешены или которые изменяются494 Пути, которые не могут быть разрешены или которые изменяются


499 WebFetch502 WebFetch

500</h3>503</h3>

501 504 

502Правила WebFetch используют префикс `domain:` и соответствуют имени хоста запрашиваемого URL. Сопоставление не чувствительно к регистру, поддерживает подстановки `*` и удаляет конечную `.` из правила и имени хоста, поэтому `example.com.` и `example.com` рассматриваются одинаково.505Правила WebFetch используют префикс `domain:` и соответствуют имени хоста запрошенного URL. Сопоставление не чувствительно к регистру, поддерживает подстановки `*` и удаляет конечную точку из правила и имени хоста, поэтому `example.com.` и `example.com` рассматриваются одинаково.

503 506 

504* `WebFetch(domain:example.com)` соответствует запросам к `example.com`507* `WebFetch(domain:example.com)` соответствует запросам к `example.com`

505* `WebFetch(domain:*.example.com)` соответствует любому поддомену на любой глубине, такому как `api.example.com` или `a.b.example.com`, но не самому `example.com`508* `WebFetch(domain:*.example.com)` соответствует любому поддомену на любой глубине, такому как `api.example.com` или `a.b.example.com`, но не самому `example.com`


513 Разрешить или запретить каждую выборку516 Разрешить или запретить каждую выборку

514</h4>517</h4>

515 518 

516Голое правило `WebFetch` — это имя инструмента без части `domain:`, такое как `"deny": ["WebFetch"]`. Оно и `WebFetch(domain:*)` охватывают каждый URL, но Claude Code применяет их по-разному, и только форма `domain:` также добавляет свой домен в [список разрешённых или запрещённых доменов](/docs/ru/sandboxing#network-isolation) песочницы. Этот раздел перечисляет формы подстановки, которые песочница соблюдает, и версию, которая добавила голый `*`.519Голое правило `WebFetch` — это имя инструмента без части `domain:`, такое как `"deny": ["WebFetch"]`. Оно и `WebFetch(domain:*)` охватывают каждый URL, но Claude Code применяет их по-разному, и только форма `domain:` также добавляет свой домен в [список разрешённых или запрещённых доменов](/docs/ru/sandboxing#network-isolation) песочницы. Этот раздел перечисляет формы подстановки, которые песочница поддерживает, и версию, которая добавила голый `*`.

517 520 

518Каждая строка показывает, что правило делает в списке `allow` и в списке `deny`:521Каждая строка показывает, что правило делает в списке `allow` и в списке `deny`:

519 522 

520| Правило | В `allow` | В `deny` |523| Правило | В `allow` | В `deny` |

521| :- | :- | :- |524| :- | :- | :- |

522| `WebFetch` | Claude выполняет выборку без запроса вас. Не изменяет, какие хосты могут достичь изолированные команды. | Claude Code удаляет инструмент `WebFetch`, поэтому Claude вообще не может выполнять выборку. Не изменяет, какие хосты могут достичь изолированные команды. |525| `WebFetch` | Claude выполняет выборку без запроса вас. Не изменяет, какие хосты могут достичь команды в песочнице. | Claude Code удаляет инструмент `WebFetch`, поэтому Claude вообще не может выполнять выборку. Не изменяет, какие хосты могут достичь команды в песочнице. |

523| `WebFetch(domain:*)` | Claude выполняет выборку без запроса вас, и изолированные команды могут достичь любого хоста. | Claude Code сохраняет инструмент и отказывает каждой выборке, и изолированные команды не могут достичь ни один хост. |526| `WebFetch(domain:*)` | Claude выполняет выборку без запроса вас, и команды в песочнице могут достичь любого хоста. | Claude Code сохраняет инструмент и отказывает в каждой выборке, и команды в песочнице не могут достичь никакого хоста. |

524 527 

525Две формы также отличаются при чтении [артефактов](/docs/ru/artifacts), страниц, которые инструмент Artifact публикует на claude.ai. Голое правило отказа или запроса `WebFetch` не применяется к этим чтениям. Правило `domain:`, охватывающее `claude.ai` или хост содержимого `*.claudeusercontent.com`, такое как `WebFetch(domain:claude.ai)` или `WebFetch(domain:*)`, отказывает каждому чтению или запрашивает перед ним. Правило [`Artifact`](/docs/ru/artifacts#disable-artifacts) делает то же самое.528Две формы также отличаются при чтении [артефактов](/docs/ru/artifacts), страниц, которые инструмент Artifact публикует на claude.ai. Голое правило отказа или запроса `WebFetch` не применяется к этим чтениям. Правило `domain:`, охватывающее `claude.ai` или хост содержимого `*.claudeusercontent.com`, такое как `WebFetch(domain:claude.ai)` или `WebFetch(domain:*)`, отказывает в каждом чтении или запрашивает перед ним. Правило [`Artifact`](/docs/ru/artifacts#disable-artifacts) делает то же самое.

526 529 

527Когда правило блокирует чтение, отказ называет правило. До v2.1.268 голое правило отказа `WebFetch` блокировало каждое чтение артефакта, и голое правило запроса запрашивало перед каждым.530Когда правило блокирует чтение, отказ называет правило. До v2.1.268 голое правило отказа `WebFetch` блокировало каждое чтение артефакта, и голое правило запроса запрашивало перед каждым.

528 531 


536}539}

537```540```

538 541 

539Когда вы просите Claude выполнить выборку страницы, он выполняет её без запроса. Когда вы просите его запустить [изолированный](/docs/ru/sandboxing) `curl` против хоста вне списка разрешений песочницы, Claude Code по-прежнему запрашивает вас для этого хоста, потому что голое правило не добавило хост в список разрешений.542Когда вы просите Claude выполнить выборку страницы, он выполняет её без запроса. Когда вы просите его запустить [изолированный в песочнице](/docs/ru/sandboxing) `curl` против хоста вне списка разрешений песочницы, Claude Code по-прежнему запрашивает вас для этого хоста, потому что голое правило не добавило хост в список разрешений.

540 543 

541В [автоматическом режиме](/docs/ru/permission-modes#eliminate-prompts-with-auto-mode), Claude вместо этого называет хост в [разрешённых доменах для каждой команды](/docs/ru/sandboxing#per-command-allowed-domains-in-auto-mode) команды для проверки классификатором.544В [автоматическом режиме](/docs/ru/permission-modes#eliminate-prompts-with-auto-mode), Claude вместо этого называет хост в [разрешённых доменах для каждой команды](/docs/ru/sandboxing#per-command-allowed-domains-in-auto-mode) классификатора для проверки.

542 545 

543<h3 id="mcp">546<h3 id="mcp">

544 MCP547 MCP

545</h3>548</h3>

546 549 

547Правила MCP используют имя сервера в соответствии с конфигурацией Claude Code, опционально за которым следует имя инструмента с этого сервера.550Правила MCP используют имя сервера в соответствии с конфигурацией Claude Code, опционально за которым следует имя инструмента от этого сервера.

548 551 

549* `mcp__puppeteer` соответствует любому инструменту, предоставленному сервером `puppeteer`552* `mcp__puppeteer` соответствует любому инструменту, предоставленному сервером `puppeteer`

550* `mcp__puppeteer__*` использует синтаксис подстановки и также соответствует всем инструментам с сервера `puppeteer`553* `mcp__puppeteer__*` использует синтаксис подстановки и также соответствует всем инструментам от сервера `puppeteer`

551* `mcp__puppeteer__puppeteer_navigate` соответствует инструменту `puppeteer_navigate`, предоставленному сервером `puppeteer`554* `mcp__puppeteer__puppeteer_navigate` соответствует инструменту `puppeteer_navigate`, предоставленному сервером `puppeteer`

552 555 

553Если ваша организация установила инструмент [коннектора claude.ai](/docs/ru/mcp#organization-controls-on-connector-tools) на `ask` и эта настройка достигает Claude Code в вашем сеансе, правила разрешения для этого инструмента не вступают в силу: Claude Code запрашивает при каждом вызове, даже в режимах `auto` и `bypassPermissions`. В режиме `dontAsk`, который никогда не запрашивает, Claude Code вместо этого отказывает вызову. Инструменты из коннекторов, которые Claude Code выбирает сам, появляются как `mcp__claude_ai_<server>__<tool>`.556Если ваша организация установила инструмент [claude.ai connector](/docs/ru/mcp#organization-controls-on-connector-tools) на `ask` и эта настройка достигает Claude Code в вашем сеансе, правила разрешения для этого инструмента не вступают в силу: Claude Code запрашивает при каждом вызове, даже в режимах `auto` и `bypassPermissions`. В режиме `dontAsk`, который никогда не запрашивает, Claude Code вместо этого отказывает в вызове. Инструменты от коннекторов, которые Claude Code получает сам, появляются как `mcp__claude_ai_<server>__<tool>`.

554 557 

555В сеансе [Cowork](https://claude.com/docs/cowork/overview) в приложении Claude Desktop, Claude запускает команды оболочки через инструмент `mcp__workspace__bash` Cowork вместо встроенного инструмента `Bash`, и Cowork также предоставляет `mcp__workspace__web_fetch` для выборок в сети. Claude Code также применяет правила отказа, которые называют весь инструмент `Bash` или `WebFetch`, к этим инструментам Cowork, поэтому управляемое правило отказа `Bash` останавливает Claude от запуска команд оболочки в Cowork. Когда Claude Code блокирует такой вызов, сообщение называет инструмент Cowork: `Permission to use mcp__workspace__bash has been denied.` Правила разрешения не переносятся: Claude Code никогда не применяет правило разрешения `Bash` к `mcp__workspace__bash`.558В сеансе [Cowork](https://claude.com/docs/cowork/overview) в приложении Claude Desktop, Claude запускает команды оболочки через инструмент `mcp__workspace__bash` Cowork вместо встроенного инструмента `Bash`, и Cowork также предоставляет `mcp__workspace__web_fetch` для выборок в сети. Claude Code также применяет правила отказа, которые называют весь инструмент `Bash` или `WebFetch`, к этим инструментам Cowork, поэтому управляемое правило отказа `Bash` останавливает Claude от запуска команд оболочки в Cowork. Когда Claude Code блокирует такой вызов, сообщение называет инструмент Cowork: `Permission to use mcp__workspace__bash has been denied.` Правила разрешения не переносятся: Claude Code никогда не применяет правило разрешения `Bash` к `mcp__workspace__bash`.

556 559 


558 Agent (подагенты)561 Agent (подагенты)

559</h3>562</h3>

560 563 

561Используйте правила `Agent(AgentName)` для управления тем, какие [подагенты](/docs/ru/sub-agents) может использовать Claude:564Используйте правила `Agent(AgentName)` для управления, какие [подагенты](/docs/ru/sub-agents) может использовать Claude:

562 565 

563* `Agent(Explore)` соответствует подагенту Explore566* `Agent(Explore)` соответствует подагенту Explore

564* `Agent(Plan)` соответствует подагенту Plan567* `Agent(Plan)` соответствует подагенту Plan


578 Cd581 Cd

579</h3>582</h3>

580 583 

581Правила `Cd` управляют тем, в какие каталоги команда [`/cd`](/docs/ru/commands) может переместить сеанс. `Cd` не является инструментом, вызываемым моделью: Claude не может его вызвать, и правила применяются только когда вы сами запускаете `/cd`.584Правила `Cd` управляют, в какие каталоги команда [`/cd`](/docs/ru/commands) может переместить сеанс. `Cd` не является инструментом, вызываемым моделью: Claude не может его вызвать, и правила применяются только когда вы сами запускаете `/cd`.

582 585 

583Голое правило отказа `Cd` полностью отключает `/cd`. Правило отказа `Cd(<path-pattern>)` блокирует соответствующие цели. Правила отказа проверяют каждое написание цели, включая каждый скачок символической ссылки, через который она разрешается, поэтому правило, написанное для одного пути, также блокирует цели, которые разрешаются в него.586Голое правило отказа `Cd` отключает `/cd` полностью. Правило отказа `Cd(<path-pattern>)` блокирует соответствующие цели. Правила отказа проверяют каждое написание цели, включая каждый скачок символической ссылки, на который она разрешается, поэтому правило, написанное для одного пути, также блокирует цели, которые разрешаются в него.

584 587 

585Добавление любого правила разрешения `Cd` переключает `/cd` в режим списка разрешений: разрешённый целевой каталог должен соответствовать одному из ваших правил разрешения, или `/cd` отказывает. Без настроенных правил `Cd`, `/cd` сохраняет своё поведение по умолчанию и запрашивает вас доверять незнакомому каталогу.588Добавление любого правила разрешения `Cd` переключает `/cd` в режим списка разрешений: разрешённый целевой каталог должен соответствовать одному из ваших правил разрешения, или `/cd` отказывает. Без правил `Cd`, настроенных, `/cd` сохраняет своё поведение по умолчанию и запрашивает вас доверять незнакомому каталогу.

586 589 

587Шаблоны путей используют якоря `//`, `~/` и `/` из [правил Read и Edit](#read-and-edit), но сопоставление якорировано к целому пути каталога, а не в стиле gitignore. `*` соответствует ровно одному сегменту пути и `**` соответствует через сегменты. Конечный `/**` также соответствует его названному корню.590Шаблоны путей делят якоря `//`, `~/` и `/` из [правил Read и Edit](#read-and-edit), но сопоставление якорировано к целому пути каталога, а не в стиле gitignore. `*` соответствует ровно одному сегменту пути и `**` соответствует через сегменты. Конечный `/**` также соответствует его названному корню.

588 591 

589| Правило | Соответствует | Не соответствует |592| Правило | Соответствует | Не соответствует |

590| - | - | - |593| - | - | - |

plugin-evals.md +20 −14

Details

55 The no-plugin baseline55 The no-plugin baseline

56</h3>56</h3>

57 57 

58Высокая оценка сама по себе не говорит вам, что plugin помог, потому что Claude может работать так же хорошо без него. Чтобы разделить эти два, запуски каждого case по умолчанию повторяются без загруженного plugin, и вы получаете две оценки, `WITH` и `W/OUT`. Их разница, `Δ`, — это то, что внес plugin. Если case оценивается в 1.0 как с plugin, так и без него, plugin не является тем, что заставило его пройти.58Высокая оценка сама по себе не говорит вам, что plugin помог, потому что Claude может работать так же хорошо без него. Чтобы разделить эти два, запуски каждого case повторяются без загруженного plugin, и вы получаете две оценки, `WITH` и `W/OUT`. Их разница, `Δ`, — это то, что внес plugin. Если case оценивается в 1.0 как с plugin, так и без него, plugin не является тем, что заставило его пройти.

59 59 

60Два набора запусков называются with-arm и without-arm; [Score against the no-plugin baseline](#compare-against-a-no-plugin-baseline) охватывает, как graders оцениваются в обоих arms и как отключить baseline.60Два набора запусков называются with-arm и without-arm; [Score against the no-plugin baseline](#compare-against-a-no-plugin-baseline) охватывает, какие case запускают only with-arm и как graders оцениваются в обоих arms.

61 61 

62<h2 id="create-your-first-eval-suite">62<h2 id="create-your-first-eval-suite">

63 Создайте свой первый eval suite63 Создайте свой первый eval suite


130 Написание и уточнение кейсов130 Написание и уточнение кейсов

131</h2>131</h2>

132 132 

133Кейсы, которые пишет `claude plugin eval init`, — это простые файлы, которые вы можете открыть, изменить и добавить. Кейс — это директория под директорией eval plugin, которая содержит `prompt.md`, `case.yaml` или оба. Чтобы сгруппировать кейсы, вложите их в директорию, которая сама не является кейсом; все, что находится внутри директории кейса, такое как `graders/` и файлы fixtures, принадлежит этому кейсу.133Кейсы, которые пишет `claude plugin eval init`, — это простые файлы, которые вы можете открыть, изменить и добавить. Кейс — это директория под директорией eval plugin, которая содержит `prompt.md`, `case.yaml` или оба. Дайте каждому кейсу хотя бы один grader в виде файла `graders/<name>.md` или записи `graders:` в `case.yaml`, потому что кейс без него не загружается. Чтобы сгруппировать кейсы, вложите их в директорию, которая сама не является кейсом; все, что находится внутри директории кейса, такое как `graders/` и файлы fixtures, принадлежит этому кейсу.

134 134 

135Это макет, который пишет `claude plugin eval init`, и тот, который нужно использовать для новых suites. [eval suite reference](#eval-suite-reference) содержит полное дерево, включая mocks и результаты:135Это макет, который пишет `claude plugin eval init`, и тот, который нужно использовать для новых suites. [eval suite reference](#eval-suite-reference) содержит полное дерево, включая mocks и результаты:

136 136 


242 Оцените в сравнении с базовым вариантом без plugin242 Оцените в сравнении с базовым вариантом без plugin

243</h3>243</h3>

244 244 

245Когда plugin находится под тестом, каждый кейс по умолчанию запускается в двух arms. With-arm — это его запуски с загруженным plugin, а without-arm — это то же количество запусков без plugin вообще. Сводка и отчет показывают обе оценки и `Δ`, оценку with-arm минус оценку without-arm.245Когда plugin находится под тестом, кейс обычно запускается в двух arms. With-arm — это его запуски с загруженным plugin, а without-arm — это то же количество запусков без plugin вообще. Сводка и отчет показывают обе оценки и `Δ`, оценку with-arm минус оценку without-arm.

246 246 

247Передайте `--ablation none`, чтобы запустить только with-arm, что вдвое снижает стоимость, когда вам не нужно сравнение, например при повторении graders.247В этих ситуациях кейс запускает только with-arm, поэтому он не получает оценку `W/OUT` или `Δ`:

248 

249* **Вы передаете `--ablation none`**: каждый кейс запускает один arm, что вдвое снижает стоимость, когда вам не нужно сравнение, например при повторении graders.

250* **Кейс возобновляет транскрипт и целевой объект — это путь**: с [target](#choose-what-to-evaluate) таким как `.` вместо имени установленного plugin, кейс [`context.history_file`](#add-setup-or-history-with-case-yaml) запускает один arm по умолчанию, исходя из предположения, что записанный разговор уже отражает plugin. Запуск выводит уведомление `single-arm (no Δ)` на stderr, называя эти кейсы. Чтобы сравнить возобновленный ход с plugin и без него, передайте `--ablation with-without`.

251* **Для кейса не был найден plugin**: когда целевой объект — это путь, кейс, чей plugin Claude Code не смог найти, также запускает один arm по умолчанию. Смотрите [the baseline arm shows no plugin](#the-baseline-arm-shows-no-plugin-or-delta-is-zero), чтобы исправить это.

248 252 

249В двухarm запуске некоторые graders сообщаются с `scored: false`. Проверка типа "skill был вызван" никогда не может пройти без plugin, поэтому подсчет ее толкнул бы without-arm к нулю и завысил бы `Δ`. Чтобы держать два arms сравнимыми, Claude Code исключает такие graders из оценки в обоих arms и сообщает их в with-arm только как индикаторы pass/fail. Это включает:253В двухarm запуске некоторые graders сообщаются с `scored: false`. Проверка типа "skill был вызван" никогда не может пройти без plugin, поэтому подсчет ее толкнул бы without-arm к нулю и завысил бы `Δ`. Чтобы держать два arms сравнимыми, Claude Code исключает такие graders из оценки в обоих arms и сообщает их в with-arm только как индикаторы pass/fail. Это включает:

250 254 


282Каждый запуск начинается в пустом workspace. Когда кейс нуждается в большем, чем prompt, добавьте `case.yaml` рядом с `prompt.md` с блоком `context`:286Каждый запуск начинается в пустом workspace. Когда кейс нуждается в большем, чем prompt, добавьте `case.yaml` рядом с `prompt.md` с блоком `context`:

283 287 

284* **Файлы fixtures или git репозиторий**: напишите Bash скрипт в директории кейса и назовите его в `context.scaffold_script`. Скрипт запускается как вы, вне sandbox агента, и только когда вы передаете `--scaffold`, поэтому передавайте этот флаг только для suites, которые вы или ваша организация написали.288* **Файлы fixtures или git репозиторий**: напишите Bash скрипт в директории кейса и назовите его в `context.scaffold_script`. Скрипт запускается как вы, вне sandbox агента, и только когда вы передаете `--scaffold`, поэтому передавайте этот флаг только для suites, которые вы или ваша организация написали.

285* **Более ранний разговор для продолжения**: сохраните транскрипт как файл `.jsonl` и назовите его в `context.history_file`, и prompt кейса становится следующим ходом пользователя.289* **Более ранний разговор для продолжения**: сохраните транскрипт как файл `.jsonl` и назовите его в `context.history_file`, и prompt кейса становится следующим ходом пользователя. Когда целевой объект является путем, такой кейс запускается [без baseline arm](#compare-against-a-no-plugin-baseline) по умолчанию.

286* **Директории fixtures, которые Claude может читать во время запуска**: перечислите их в `context.add_dirs`.290* **Директории fixtures, которые Claude может читать во время запуска**: перечислите их в `context.add_dirs`.

287 291 

288`case.yaml` также нуждается в `schema_version: "1.1"` и `name`; справочник [case.yaml fields](#case-yaml-fields) содержит полный список.292`case.yaml` также нуждается в `schema_version: "1.1"` и `name`; справочник [case.yaml fields](#case-yaml-fields) содержит полный список.


298 add_dirs: [resources]302 add_dirs: [resources]

299```303```

300 304 

305Scaffold скрипт начинается в пустом workspace с небольшой фиксированной окружением: `PATH` вашей оболочки, `HOME` установлен на временный домашний каталог запуска, `TMPDIR` и несколько констант, таких как `TERM=dumb`. Ничего больше из вашей оболочки не достигает его, и переменные `EVAL_*` кейса тоже не достигают. Если скрипт завершается с ненулевым кодом или работает дольше 120 секунд, этот запуск получает оценку 0 с ошибкой `scaffold failed`. Используйте скрипт только для файлов и состояния git, так как конфигурация проекта, которую он записывает, [не загружается](#how-runs-are-isolated).

306 

301<h3 id="mock-mcp-servers">307<h3 id="mock-mcp-servers">

302 Mock MCP серверы308 Mock MCP серверы

303</h3>309</h3>


394| `-j`, `--concurrency <n>` | `1` | Запустите до этого количества запусков агента одновременно, от 1 до 8. Они делят лимит скорости вашего аккаунта, поэтому это сокращает wall-clock время, а не повышает пропускную способность за этот лимит. Результаты сохраняют порядок кейса |400| `-j`, `--concurrency <n>` | `1` | Запустите до этого количества запусков агента одновременно, от 1 до 8. Они делят лимит скорости вашего аккаунта, поэтому это сокращает wall-clock время, а не повышает пропускную способность за этот лимит. Результаты сохраняют порядок кейса |

395| `--model <model>` | `model` каждого кейса, иначе `ANTHROPIC_MODEL`, если установлено, иначе default Claude Code | Модель для агента под тестом. Закрепите ее в CI, чтобы rollout модели не был ошибочно принят за регрессию plugin |401| `--model <model>` | `model` каждого кейса, иначе `ANTHROPIC_MODEL`, если установлено, иначе default Claude Code | Модель для агента под тестом. Закрепите ее в CI, чтобы rollout модели не был ошибочно принят за регрессию plugin |

396| `--judge-model <model>` | Небольшая быстрая модель | Модель для `llm` и `baseline` graders |402| `--judge-model <model>` | Небольшая быстрая модель | Модель для `llm` и `baseline` graders |

397| `--ablation <mode>` | `with-without`, когда plugin разрешается, иначе `none` | Запускать ли также каждый кейс без plugin для измерения того, что он добавляет. `none` запускает один arm; `with-without` добавляет базовый вариант без plugin |403| `--ablation <mode>` | Решено для каждого кейса; см. [Score against the no-plugin baseline](#compare-against-a-no-plugin-baseline) | Запускать ли также каждый кейс без plugin для измерения того, что он добавляет. `none` запускает один arm; `with-without` добавляет базовый вариант без plugin |

398| `--threshold <0..1>` | `1.0` | Кейс проходит, когда его оценка with-arm по крайней мере это. Любой кейс ниже него заставляет команду выйти 1 |404| `--threshold <0..1>` | `1.0` | Кейс проходит, когда его оценка with-arm по крайней мере это. Любой кейс ниже него заставляет команду выйти 1 |

399| `--max-cost-usd <usd>` | Нет потолка | Потолок на оценку стоимости по прейскуранту запуска, не на использование плана. Проверяется перед каждым запуском. Один раз потрачено, ничего дальше не начинается; запуски уже в полете завершаются, поэтому расход может пройти потолок этими запусками. Если какой-либо запуск остается незапущенным, команда выходит 2 с частичными результатами |405| `--max-cost-usd <usd>` | Нет потолка | Потолок на оценку стоимости по прейскуранту запуска, не на использование плана. Проверяется перед каждым запуском. Один раз потрачено, ничего дальше не начинается; запуски уже в полете завершаются, поэтому расход может пройти потолок этими запусками. Если какой-либо запуск остается незапущенным, команда выходит 2 с частичными результатами |

400| `--allow-tools <tools...>` | Нет | Предоставьте инструменты за пределами набора только для чтения. См. [Grant tools](#grant-tools) |406| `--allow-tools <tools...>` | Нет | Предоставьте инструменты за пределами набора только для чтения. См. [Grant tools](#grant-tools) |


488| `aggregates.meanDelta` | Среднее `Δ` по кейсам в двухarm режиме |494| `aggregates.meanDelta` | Среднее `Δ` по кейсам в двухarm режиме |

489| `cases[].name` | Имя кейса |495| `cases[].name` | Имя кейса |

490| `cases[].aggregates.score` | Средняя оценка запуска with-arm для кейса |496| `cases[].aggregates.score` | Средняя оценка запуска with-arm для кейса |

491| `cases[].aggregates.delta` | Оценка with-arm минус оценка without-arm. Опущено, когда arms не сравнимы |497| `cases[].aggregates.delta` | Оценка with-arm минус оценка without-arm. Опущено, когда кейс запустил одну arm или arms не сравнимы |

492| `cases[].arms.with[].error` | `null` или почему запуск закончился ненормально, такой как `timed out after 300s`. Запуск, который начался, но закончился плохо, все еще оценивается на том, что он произвел, поэтому non-null ошибка не подразумевает оценку 0 |498| `cases[].arms.with[].error` | `null` или почему запуск закончился ненормально, такой как `timed out after 300s`. Запуск, который начался, но закончился плохо, все еще оценивается на том, что он произвел, поэтому non-null ошибка не подразумевает оценку 0 |

493| `cases[].arms.with[].aborted` | Присутствует, когда [mock](#mock-mcp-servers) `expect:` или `abort_when` остановил запуск, с `server`, `tool` и `reason`. Запуск оценивается в 0 и `error` остается `null` |499| `cases[].arms.with[].aborted` | Присутствует, когда [mock](#mock-mcp-servers) `expect:` или `abort_when` остановил запуск, с `server`, `tool` и `reason`. Запуск оценивается в 0 и `error` остается `null` |

494| `cases[].arms.with[].skippedPaidGraders` | `true`, когда потолок стоимости пропустил judge graders этого запуска, поэтому его оценка не сравнима |500| `cases[].arms.with[].skippedPaidGraders` | `true`, когда потолок стоимости пропустил judge graders этого запуска, поэтому его оценка не сравнима |


506 Доверяйте директории плагина512 Доверяйте директории плагина

507</h3>513</h3>

508 514 

509При первом запуске `claude plugin eval` для директории Claude Code спрашивает `Trust this plugin directory?` перед загрузкой чего-либо из неё, если вы уже не приняли приглашение доверия там в интерактивном сеансе `claude`. Внутри репозитория git ответ «да» доверяет всему репозиторию, также для интерактивных сеансов. Когда stdin или stdout не является терминалом, под `--json`, или когда переменная окружения `CI` установлена на значение true, такое как `true`, запуск не может спросить и отказывается с выходом 1; передайте `--trust-plugin`, чтобы утвердить доверие самостоятельно, только для плагина, который вы бы запустили на своей машине. Цель, которую вы называете, а не даёте как путь, то есть установленный плагин или плагин из директории skills, пропускает приглашение.515При первом запуске `claude plugin eval` для директории Claude Code спрашивает `Trust this plugin directory?` перед загрузкой чего-либо из неё, если вы уже не приняли приглашение доверия там в интерактивном сеансе `claude`. Внутри репозитория git ответ «да» доверяет всему репозиторию, также для интерактивных сеансов. Когда stdin или stdout не является терминалом, или под `--json`, запуск не может спросить и отказывается с выходом 1; передайте `--trust-plugin`, чтобы утвердить доверие самостоятельно, только для плагина, который вы бы запустили на своей машине. Цель, которую вы называете, а не даёте как путь, то есть установленный плагин или плагин из директории skills, пропускает приглашение.

510 516 

511Некоторые части плагина и набора запускаются только при передаче их флага для этого запуска:517Некоторые части плагина и набора запускаются только при передаче их флага для этого запуска:

512 518 


524 530 

525Каждый запуск получает одноразовую домашнюю директорию, рабочую директорию и конфигурацию Claude Code, и тестируемый агент работает там как дочерний процесс `claude -p` с загруженным только вашим плагином. Помните об этих последствиях при написании случаев:531Каждый запуск получает одноразовую домашнюю директорию, рабочую директорию и конфигурацию Claude Code, и тестируемый агент работает там как дочерний процесс `claude -p` с загруженным только вашим плагином. Помните об этих последствиях при написании случаев:

526 532 

527* **Ничего личного или на уровне проекта не загружается.** Ваши пользовательские настройки, hooks, файлы `CLAUDE.md`, MCP серверы, другие установленные плагины, память и skills отсутствуют, и никакой проект-scoped `.claude/` или `.mcp.json` выше sandbox не читается. Большая часть вашей shell среды также скрывается; только [allowlist](#prompt-md-fields) и переменные `EVAL_*` достигают запуска. Если плагину нужна настройка, поставляйте её в плагине, создавайте её в `scaffold_script` или передавайте переменные `EVAL_*`.533* **Ничего личного или на уровне проекта не загружается.** Ваши пользовательские настройки, hooks, файлы `CLAUDE.md`, MCP серверы, другие установленные плагины, память и skills отсутствуют. Конфигурация на уровне проекта не читается нигде: никакая директория `.claude/`, `CLAUDE.md` или `.mcp.json` не загружается выше рабочей области или внутри неё, даже та, которую написал `scaffold_script`, и директории `add_dirs` предоставляют доступ только для чтения. Большая часть вашей shell среды также скрывается; только [allowlist](#prompt-md-fields) и переменные `EVAL_*` достигают запуска. Поставляйте любые skills, agents, hooks или MCP серверы, от которых зависит случай, в плагине под тестом, поскольку [`scaffold_script`](#add-setup-or-history-with-case-yaml) может предоставить только файлы и состояние git.

528* **Управляемая политика всё ещё может ограничить запуск.** Ограничения в [управляемых настройках](/docs/ru/managed-settings), которые администратор развернул на машине, применяются внутри запуска, поэтому результаты на управляемой машине могут отличаться от неуправляемой на эту политику.534* **Управляемая политика всё ещё может ограничить запуск.** Ограничения в [управляемых настройках](/docs/ru/managed-settings), которые администратор развернул на машине, применяются внутри запуска, поэтому результаты на управляемой машине могут отличаться от неуправляемой на эту политику.

529* **Инструмент Artifact отключён.** Skill, который публикует [artifact](/docs/ru/artifacts), может быть оценён только на основе того, что он производит до этого шага.535* **Инструмент Artifact отключён.** Skill, который публикует [artifact](/docs/ru/artifacts), может быть оценён только на основе того, что он производит до этого шага.

530* **Определения случаев скрыты от агента.** Запуск не может читать директорию eval, поэтому Claude не может видеть приглашение случая, его грейдеры или соседние случаи.536* **Определения случаев скрыты от агента.** Запуск не может читать директорию eval, поэтому Claude не может видеть приглашение случая, его грейдеры или соседние случаи.


534 Справочник набора тестов540 Справочник набора тестов

535</h2>541</h2>

536 542 

537Всё, что может содержать набор тестов, находится в директории `evals/` плагина, если вы не [настроили другую](#use-a-different-eval-directory). Это дерево показывает каждый файл, который `claude plugin eval` читает или записывает там; для существования случая требуется только `prompt.md` или `case.yaml`:543Всё, что может содержать набор тестов, находится в директории `evals/` плагина, если вы не [настроили другую](#use-a-different-eval-directory). Директория считается случаем, когда она содержит `prompt.md` или `case.yaml`, и случай без хотя бы одного оценщика не загружается с ошибкой `invalid case.yaml`, которая называет `graders`. Это дерево показывает каждый файл, который `claude plugin eval` читает или записывает в директории eval:

538 544 

539```text theme={null}545```text theme={null}

540evals/546evals/


590 596 

591| Поле | Назначение |597| Поле | Назначение |

592| :- | :- |598| :- | :- |

593| `context.scaffold_script` | Bash-скрипт в директории случая, который запускается в пустом рабочем пространстве перед началом Claude, для создания файлов фиксур или репозитория git. Запускается только при передаче [`--scaffold`](#add-setup-or-history-with-case-yaml) |599| `context.scaffold_script` | Bash-скрипт в директории случая, который запускается в пустом рабочем пространстве перед началом Claude, для создания файлов фиксур или репозитория git. Запускается только при передаче [`--scaffold`](#add-setup-or-history-with-case-yaml), с минимальным окружением и ограничением в 120 секунд, и ненулевой выход приводит к сбою запуска |

594| `context.history_file` | Транскрипт `.jsonl` в директории случая для возобновления. Подсказка случая становится следующим ходом пользователя |600| `context.history_file` | Транскрипт `.jsonl` в директории случая для возобновления. Подсказка случая становится следующим ходом пользователя |

595| `context.add_dirs` | Директории внутри директории случая, которые Claude может читать во время запуска, предоставлены только для чтения |601| `context.add_dirs` | Директории внутри директории случая, которые Claude может читать во время запуска, предоставлены только для чтения |

596| `execution.prompt` | Подсказка, когда вы сохраняете весь случай в `case.yaml` и опускаете `prompt.md` |602| `execution.prompt` | Подсказка, когда вы сохраняете весь случай в `case.yaml` и опускаете `prompt.md` |


679 "is not a trusted plugin directory, and this run cannot stop to ask you about it"685 "is not a trusted plugin directory, and this run cannot stop to ask you about it"

680</h3>686</h3>

681 687 

682Это первый запуск против директории, которой Claude Code еще не доверяет, и он не может спросить, потому что stdin или stdout не является терминалом, вы передали `--json`, или переменная окружения `CI` установлена на значение true, такое как `true`. Запустите `claude plugin eval <dir>` один раз в терминале и ответьте на запрос, или передайте `--trust-plugin`, если вы доверяете коду plugin и suite. См. [What a run can access](#security).688Это первый запуск против директории, которой Claude Code еще не доверяет, и он не может спросить, потому что stdin или stdout не является терминалом, или вы передали `--json`. Запустите `claude plugin eval <dir>` один раз в терминале и ответьте на запрос, или передайте `--trust-plugin`, если вы доверяете коду plugin и suite. См. [What a run can access](#security).

683 689 

684<h3 id="git-is-too-old-for-claude-plugin-eval">690<h3 id="git-is-too-old-for-claude-plugin-eval">

685 "is too old for claude plugin eval"691 "is too old for claude plugin eval"


705 The baseline arm shows no plugin, or delta is zero711 The baseline arm shows no plugin, or delta is zero

706</h3>712</h3>

707 713 

708Если сводка не имеет столбца `W/OUT` или кейс не пройдет с "ablation requested but no plugin resolved", никакой plugin не был найден для кейса. Добавьте `plugins: ["../.."]` к кейсу, давая путь от директории кейса к директории plugin.714Если сводка не имеет столбца `W/OUT`, или кейс не пройдет с "ablation requested but no plugin resolved", обычная причина в том, что никакой plugin не был найден для кейса. Если каждый кейс возобновляет транскрипт через `context.history_file`, отсутствующий столбец ожидается вместо этого, потому что эти кейсы запускаются [одной веткой по умолчанию](#compare-against-a-no-plugin-baseline). В противном случае добавьте `plugins: ["../.."]` к кейсу, давая путь от директории кейса к директории plugin.

709 715 

710Если plugin действительно загружен и `Δ` все еще близко к нулю с неудачным grader `tool_used: Skill`, это обычно реальное открытие, означающее, что `description` skill не запускается на формулировке prompt. Отрегулируйте описание и перезапустите ту же suite.716Если plugin действительно загружен и `Δ` все еще близко к нулю с неудачным grader `tool_used: Skill`, это обычно реальное открытие, означающее, что `description` skill не запускается на формулировке prompt. Отрегулируйте описание и перезапустите ту же suite.

711 717 

Details

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

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

94 94 

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

96 

95Передайте `-y` из вашего собственного терминала, чтобы принять отображаемую команду без запроса. Вот что происходит без TTY и когда Claude запускает команду:97Передайте `-y` из вашего собственного терминала, чтобы принять отображаемую команду без запроса. Вот что происходит без TTY и когда Claude запускает команду:

96 98 

97* **stdin или stdout не является TTY, и вы не передаёте ни `-y`, ни `--accept-command`**: установка отклоняется. Выходные данные говорят, что команда была только отображена, и код выхода — `1`99* **stdin или stdout не является TTY, и вы не передаёте ни `-y`, ни `--accept-command`**: установка отклоняется. Выходные данные говорят, что команда была только отображена, и код выхода — `1`


163 165 

164Claude Code выводит `Successfully uninstalled plugin: formatter (scope: project)`. Когда плагин не установлен в этой области действия, команда выводит строку, которая начинается с `Failed to uninstall plugin "formatter@my-marketplace":` и выходит с кодом `1`.166Claude Code выводит `Successfully uninstalled plugin: formatter (scope: project)`. Когда плагин не установлен в этой области действия, команда выводит строку, которая начинается с `Failed to uninstall plugin "formatter@my-marketplace":` и выходит с кодом `1`.

165 167 

166Если строка ошибки продолжается с `"formatter" was not uninstalled:`, Claude Code не смог подтвердить, что параметры области действия больше не включают плагин, поэтому плагин остаётся установленным со всем, что он сохранил. С `--json` результат содержит `failureCode: "settings_still_on"`. Эта проверка параметров требует Claude Code v2.1.282 или позже.168Если строка ошибки продолжается с `"formatter" was not uninstalled:` и называет файл параметров, Claude Code не смог подтвердить, что параметры области действия больше не включают плагин, поэтому плагин остаётся установленным со всем, что он сохранил. С `--json` результат содержит `failureCode: "settings_still_on"`. Эта проверка параметров требует Claude Code v2.1.282 или позже.

167 169 

168<h4 id="what-an-uninstall-deletes-and-keeps">170<h4 id="what-an-uninstall-deletes-and-keeps">

169 Что удаляет и сохраняет удаление171 Что удаляет и сохраняет удаление


267 269 

268Если вы опустите `--scope`, команда обновляет плагин в наиболее специфичной области действия, в которой он установлен для вашего текущего проекта, проверяя local, project, user, затем managed.270Если вы опустите `--scope`, команда обновляет плагин в наиболее специфичной области действия, в которой он установлен для вашего текущего проекта, проверяя local, project, user, затем managed.

269 271 

270До v2.1.281 команда использовала `user`, когда вы опускали `--scope`, поэтому обновление плагина, установленного только в области действия project или local, не выполнялось с `Plugin "<name>" is not installed at scope user`. На этих версиях передайте `--scope`.272До v2.1.281 команда использовала `user`, когда вы опускали `--scope`, поэтому обновление плагина, установленного только в области действия project или local, не выполняется с `Plugin "<name>" is not installed at scope user`. На этих версиях передайте `--scope`.

271 273 

272`managed` — это единственная область действия, которую вы можете обновить, но не установить. Для плагинов, установленных администратором, см. [Управление плагинами для вашей организации](/docs/ru/plugins/org).274`managed` — это единственная область действия, которую вы можете обновить, но не установить. Для плагинов, установленных администратором, см. [Управление плагинами для вашей организации](/docs/ru/plugins/org).

273 275 


306Когда в любой группе ничего нет, Claude Code выводит ``No plugins installed. Use `claude plugin install` to install a plugin.``308Когда в любой группе ничего нет, Claude Code выводит ``No plugins installed. Use `claude plugin install` to install a plugin.``

307 309 

308<h4 id="json-output">310<h4 id="json-output">

309 Выход JSON311 JSON выход

310</h4>312</h4>

311 313 

312С `--json` Claude Code выводит массив с одним объектом на установку. Каждый объект содержит поля ниже. `id`, `version`, `scope`, `enabled` и `installPath` всегда присутствуют, а остальные появляются только когда они применяются.314С `--json` Claude Code выводит массив с одним объектом на установку. Каждый объект содержит поля ниже. `id`, `version`, `scope`, `enabled` и `installPath` всегда присутствуют, а остальные появляются только когда они применяются.


436| `-j, --concurrency <n>` | Сеансы агента для запуска одновременно, 1 до 8. Они делят ваш лимит скорости | `1` |438| `-j, --concurrency <n>` | Сеансы агента для запуска одновременно, 1 до 8. Они делят ваш лимит скорости | `1` |

437| `--model <model>` | Модель для тестируемого агента | `model` каждого случая, иначе `ANTHROPIC_MODEL`, если установлено, иначе по умолчанию Claude Code |439| `--model <model>` | Модель для тестируемого агента | `model` каждого случая, иначе `ANTHROPIC_MODEL`, если установлено, иначе по умолчанию Claude Code |

438| `--judge-model <model>` | Модель для оценщиков `llm` и `baseline` | Маленькая быстрая модель |440| `--judge-model <model>` | Модель для оценщиков `llm` и `baseline` | Маленькая быстрая модель |

439| `--ablation <mode>` | `none` или `with-without`. См. [Сравнение с базовым уровнем без плагина](/docs/ru/plugin-evals#compare-against-a-no-plugin-baseline) | `with-without`, когда плагин разрешается, иначе `none` |441| `--ablation <mode>` | `none` или `with-without`. См. [Сравнение с базовым уровнем без плагина](/docs/ru/plugin-evals#compare-against-a-no-plugin-baseline) | Решено для каждого случая, как описано в этом разделе |

440| `--threshold <0..1>` | Выход 1, если какой-либо случай оценивается ниже этого | `1.0` |442| `--threshold <0..1>` | Выход 1, если какой-либо случай оценивается ниже этого | `1.0` |

441| `--max-cost-usd <usd>` | Остановитесь перед следующим запуском, когда расходы достигнут этого, выход 2 и сообщите частичные результаты | Без ограничений |443| `--max-cost-usd <usd>` | Остановитесь перед следующим запуском, когда расходы достигнут этого, выход 2 и сообщите частичные результаты | Без ограничений |

442| `--allow-tools <tools...>` | Предоставьте инструменты помимо набора только для чтения, такие как `Bash`, `Write`, `Edit` или `"mcp__plugin_<plugin>_<server>__*"`. См. [Предоставление инструментов](/docs/ru/plugin-evals#grant-tools) | |444| `--allow-tools <tools...>` | Предоставьте инструменты помимо набора только для чтения, такие как `Bash`, `Write`, `Edit` или `"mcp__plugin_<plugin>_<server>__*"`. См. [Предоставление инструментов](/docs/ru/plugin-evals#grant-tools) | |


467claude plugin eval init [name] [options]469claude plugin eval init [name] [options]

468```470```

469 471 

472Запустите команду из корневой папки плагина, каталога, который содержит `.claude-plugin/plugin.json` или `SKILL.md` skill. Чтобы создать каркас набора в другом каталоге специально, передайте `--eval-dir`.

473 

470В терминале команда открывает интерактивный сеанс Claude Code для интервью авторства. В интервью Claude делает следующее:474В терминале команда открывает интерактивный сеанс Claude Code для интервью авторства. В интервью Claude делает следующее:

471 475 

4721. Читает плагин4761. Читает плагин


477 481 

478С `--bare` или без терминала команда записывает пустой шаблон одного случая вместо этого. Когда Claude запускает команду из внутри сеанса Claude Code, команда выводит инструкции интервью для этого сеанса, чтобы следовать, а не записывать шаблон.482С `--bare` или без терминала команда записывает пустой шаблон одного случая вместо этого. Когда Claude запускает команду из внутри сеанса Claude Code, команда выводит инструкции интервью для этого сеанса, чтобы следовать, а не записывать шаблон.

479 483 

480Необязательный `name` — это имя случая. Это требуется с `--bare` или без терминала, потому что команда записывает пустой шаблон для этого случая. Интервью не нуждается в одном.484Необязательный `name` — это имя случая. Это требуется с `--bare` или без терминала, потому что команда записывает пустой шаблон для этого случая. Имя случая начинается с буквы или цифры и содержит только буквы, цифры, `.`, `_` и `-`. На каждой платформе команда также отклоняет имена, которые Windows не может хранить, такие как `con` или имя, заканчивающееся на `.`.

481 485 

482Команда принимает эти опции:486Команда принимает эти опции:

483 487 


634| :- | :- | :- |638| :- | :- | :- |

635| `owner/repo`, `owner/repo#ref` или `owner/repo@ref` | `github` | Клонирует репозиторий GitHub, закреплённый на `ref`, когда дан. Владелец и репо должны следовать правилам именования GitHub |639| `owner/repo`, `owner/repo#ref` или `owner/repo@ref` | `github` | Клонирует репозиторий GitHub, закреплённый на `ref`, когда дан. Владелец и репо должны следовать правилам именования GitHub |

636| `user@host:path[.git][#ref]` | `git` | Клонирует по SSH |640| `user@host:path[.git][#ref]` | `git` | Клонирует по SSH |

637| `https://example.com/repo.git[#ref]` или URL, содержащий `/_git/` | `git` | Клонирует по HTTPS, включая URL Azure DevOps |641| URL `http://` или `https://`, заканчивающийся на `.git[#ref]` или содержащий `/_git/`, такой как `https://example.com/repo.git` | `git` | Клонирует URL, включая URL Azure DevOps |

638| `https://github.com/owner/repo` или `https://gitlab.com/namespace/project` | `git` | Клонирует по HTTPS после добавления `.git` |642| `https://github.com/owner/repo` или `https://gitlab.com/namespace/project`, или то же самое по `http://` | `git` | Клонирует URL после добавления `.git` |

639| Любой другой URL `http://` или `https://`, включая самостоятельно размещённый git хост без `.git` | `url` | Получает URL как `marketplace.json`. Чтобы клонировать репозиторий там вместо этого, добавьте `.git` |643| Любой другой URL `http://` или `https://`, включая самостоятельно размещённый git хост без `.git` | `url` | Получает URL как `marketplace.json`. Чтобы клонировать репозиторий там вместо этого, добавьте `.git` |

640| `./path`, `../path`, `/path` или `~/path` в каталог | `directory` | Читает каталог на месте. На Windows, `.\`, `..\` и `C:\` формы также работают |644| `./path`, `../path`, `/path` или `~/path` в каталог | `directory` | Читает каталог на месте. На Windows, `.\`, `..\` и `C:\` формы также работают |

641| Те же формы пути в файл `.json` | `file` | Читает файл на месте |645| Те же формы пути в файл `.json` | `file` | Читает файл на месте |


707Удалите объявление маркетплейса из ваших параметров. `rm` — это псевдоним для `remove`.711Удалите объявление маркетплейса из ваших параметров. `rm` — это псевдоним для `remove`.

708 712 

709<Warning>713<Warning>

710 Когда вы удаляете маркетплейс из последней области действия, которая его объявляет, Claude Code также удаляет его кэш и удаляет каждый плагин, который вы установили из него. Без `--scope` команда удаляет объявление из каждой области действия. Чтобы обновить маркетплейс без потери его плагинов, запустите `plugin marketplace update` вместо этого.714 Когда вы удаляете маркетплейс из последней области действия, которая его объявляет, Claude Code также удаляет его кэш и удаляет каждый плагин, который вы установили из него. Он также удаляет их сохранённые [параметры и секреты](/docs/ru/plugins/manifest-reference#user-configuration) и [данные](/docs/ru/plugins/components#path-variables-and-persistent-data), где это возможно.

715 

716 Чтобы обновить маркетплейс без потери его плагинов, запустите `plugin marketplace update` вместо этого.

711</Warning>717</Warning>

712 718 

713```bash theme={null}719```bash theme={null}


726claude plugin marketplace remove your-marketplace732claude plugin marketplace remove your-marketplace

727```733```

728 734 

729Claude Code выводит `Successfully removed marketplace: your-marketplace`, добавляя `(from project settings)`, когда вы его ограничили. Если вы ограничиваете файл параметров, который не объявляет маркетплейс, команда не выполняется с `Marketplace 'your-marketplace' is not declared in project settings. Omit --scope to remove it from all scopes.`735Claude Code выводит `Successfully removed marketplace: your-marketplace`. Когда команда удаляет плагины, выходные данные выводят их под строкой, такой как `Also uninstalled 2 plugins from this marketplace:`. Чтобы использовать один из них снова, добавьте маркетплейс обратно и переустановите плагин.

736 

737Если вы ограничиваете файл параметров, который не объявляет маркетплейс, команда не выполняется с `Marketplace 'your-marketplace' is not declared in project settings. Omit --scope to remove it from all scopes.`

730 738 

731<h3 id="plugin-marketplace-update">739<h3 id="plugin-marketplace-update">

732 plugin marketplace update740 plugin marketplace update


769| `/plugin list [--enabled\|--disabled]` | `ls` | Выводит ваши установленные на маркетплейсе плагины встроенно, с версией, областью действия и статусом. Флаг фильтра показывает только это состояние. Плагин, чьё состояние включения ещё не применено, отмечен `— run /reload-plugins to apply`. Требует Claude Code v2.1.163 или позже |777| `/plugin list [--enabled\|--disabled]` | `ls` | Выводит ваши установленные на маркетплейсе плагины встроенно, с версией, областью действия и статусом. Флаг фильтра показывает только это состояние. Плагин, чьё состояние включения ещё не применено, отмечен `— run /reload-plugins to apply`. Требует Claude Code v2.1.163 или позже |

770| `/plugin install` | `i` | Открывает вкладку **Discover** |778| `/plugin install` | `i` | Открывает вкладку **Discover** |

771| `/plugin install <plugin>` | `i` | Открывает детали плагина на вкладке **Discover**. С `name@marketplace` открывает их в списке этого маркетплейса |779| `/plugin install <plugin>` | `i` | Открывает детали плагина на вкладке **Discover**. С `name@marketplace` открывает их в списке этого маркетплейса |

780| `/plugin install <source>` | `i` | Сообщает об ошибке [маркетплейс не найден](/docs/ru/plugins/troubleshooting#marketplace-not-found) и ничего не устанавливает, когда целью является путь, URL или `owner/repo`, даже источник, который вы уже добавили. Чтобы установить из источника, см. [Добавление маркетплейса и установка в одной команде](/docs/ru/plugins/install#add-a-marketplace-and-install-in-one-command) |

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

773| `/plugin manage` | | Открывает вкладку **Installed** |782| `/plugin manage` | | Открывает вкладку **Installed** |

774| `/plugin stats` | | Открывает вкладку **Stats** в сеансах, где [`/skill-doctor`](/docs/ru/skills#find-unused-skills) доступен. Везде ещё открывает панель на вкладке **Discover** |783| `/plugin stats` | | Открывает вкладку **Stats** в сеансах, где [`/skill-doctor`](/docs/ru/skills#find-unused-skills) доступен. Везде ещё открывает панель на вкладке **Discover** |


841| `--plugin-dir <path>` | Загрузите плагин из каталога или архива `.zip` одного. Папка плагинов загружает каждую дочернюю папку, которая содержит `.claude-plugin/plugin.json`. Каждый флаг принимает один путь | `claude --plugin-dir ./my-plugin --plugin-dir ./other.zip` |850| `--plugin-dir <path>` | Загрузите плагин из каталога или архива `.zip` одного. Папка плагинов загружает каждую дочернюю папку, которая содержит `.claude-plugin/plugin.json`. Каждый флаг принимает один путь | `claude --plugin-dir ./my-plugin --plugin-dir ./other.zip` |

842| `--plugin-url <url>` | Получите архив плагина `.zip` из URL. Повторите флаг или передайте несколько URL, разделённых пробелом, в одном цитируемом значении | `claude --plugin-url "https://example.com/a.zip https://example.com/b.zip"` |851| `--plugin-url <url>` | Получите архив плагина `.zip` из URL. Повторите флаг или передайте несколько URL, разделённых пробелом, в одном цитируемом значении | `claude --plugin-url "https://example.com/a.zip https://example.com/b.zip"` |

843 852 

844Плагин, который загружает любой флаг, — это плагин только для сеанса. `claude plugin list` показывает его как `<name>@inline` с областью действия `session`, но только когда тот же флаг предшествует подкоманде. Например, запустите `claude --plugin-dir ./my-plugin plugin list`.853Плагин, который загружает любой флаг, — это плагин только для сеанса. [`claude plugin list`](#plugin-list) показывает его только когда тот же флаг предшествует подкоманде, как в `claude --plugin-dir ./my-plugin plugin list`. Плагин отображается как `<name>@inline` под заголовком, который начинается с `Session-only plugins`, и `--json` сообщает его `scope` как `session`.

845 854 

846Когда плагин только для сеанса имеет одно и то же имя с установленным плагином, Claude Code загружает копию только для сеанса для этого сеанса и пропускает установленную. Установленная копия загружается вместо этого, если вы отключили копию только для сеанса с `claude plugin disable <name>@inline`, или если управляемые параметры блокируют это имя плагина. Для приоритета см. [Справочник загрузки плагинов](/docs/ru/plugins/loading).855Когда плагин только для сеанса имеет одно и то же имя с установленным плагином, Claude Code загружает копию только для сеанса для этого сеанса и пропускает установленную. Установленная копия загружается вместо этого, если вы отключили копию только для сеанса с `claude plugin disable <name>@inline`, или если управляемые параметры блокируют это имя плагина. Для приоритета см. [Справочник загрузки плагинов](/docs/ru/plugins/loading).

847 856 

Details

676 676 

677Чтобы включить инструкции в плагин, напишите их как skill. Claude Code не загружает `CLAUDE.md` в корне плагина, и `claude plugin validate` предупреждает `CLAUDE.md at the plugin root is not loaded as project context`.677Чтобы включить инструкции в плагин, напишите их как skill. Claude Code не загружает `CLAUDE.md` в корне плагина, и `claude plugin validate` предупреждает `CLAUDE.md at the plugin root is not loaded as project context`.

678 678 

679Если правило должно действовать каждый раз, например [блокирование редактирования защищённых файлов](/docs/ru/hooks-guide#block-edits-to-protected-files), добавьте его в плагин как [hook](#hooks) вместо skill. Чтобы выбрать между ними, см. вкладку Hook vs Skill под [Compare similar features](/docs/ru/features-overview#compare-similar-features).

680 

679Для полей frontmatter и вспомогательных файлов см. [Skills](/docs/ru/skills).681Для полей frontmatter и вспомогательных файлов см. [Skills](/docs/ru/skills).

680 682 

681<h3 id="commands">683<h3 id="commands">

Details

126 126 

127Каждый плагин, который вы распространяете, — это один объект в массиве `plugins` файла `marketplace.json`. Чтобы добавить второй плагин, добавьте второй объект. Эти поля охватывают большинство записей:127Каждый плагин, который вы распространяете, — это один объект в массиве `plugins` файла `marketplace.json`. Чтобы добавить второй плагин, добавьте второй объект. Эти поля охватывают большинство записей:

128 128 

129* `name`: идентификатор, который люди вводят перед `@` при установке. Он не может содержать пробелы.129* `name`: идентификатор, который люди вводят перед `@` при установке. [Записи плагинов](/docs/ru/plugins/marketplace-reference#plugin-entries) указывает символы, которые может использовать имя.

130* `source`: откуда Claude Code загружает плагин. Напишите строку относительного пути для плагина внутри каталога marketplace, как в [пошаговом руководстве](#create-a-marketplace), или объект source для плагина вне его. См. [Выбор источника плагина](#choose-a-plugin-source).130* `source`: откуда Claude Code загружает плагин. Напишите строку относительного пути для плагина внутри каталога marketplace, как в [пошаговом руководстве](#create-a-marketplace), или объект source для плагина вне его. См. [Выбор источника плагина](#choose-a-plugin-source).

131* `description`: строка, которую люди видят рядом с плагином при просмотре вашего marketplace в `/plugin`.131* `description`: строка, которую люди видят рядом с плагином при просмотре вашего marketplace в `/plugin`.

132 132 


199 199 

200* Ошибки синтаксиса JSON, как `json: Invalid JSON syntax: <reason>`200* Ошибки синтаксиса JSON, как `json: Invalid JSON syntax: <reason>`

201* Отсутствующие требуемые поля, такие как `owner: Invalid input`201* Отсутствующие требуемые поля, такие как `owner: Invalid input`

202* Имя marketplace с пробелами, символами, отличными от ASCII, или форму, которая имитирует официальный marketplace Anthropic, такой как `claude-official`202* Имя marketplace или плагина, которое нарушает правила именования в [справочнике marketplace](/docs/ru/plugins/marketplace-reference#top-level-fields)

203* Относительный `source`, содержащий `..`203* Относительный `source`, содержащий `..`

204* Неизвестные поля на верхнем уровне или в записи плагина, как предупреждения204* Неизвестные поля на верхнем уровне или в записи плагина, как предупреждения

205* Проблемы в `plugin.json` каждого плагина с относительным путем, как `plugins[N] plugin.json → <field>: <message>`205* Проблемы в `plugin.json` каждого плагина с относительным путем, как `plugins[N] plugin.json → <field>: <message>`

Details

50 50 

51Когда пользователи добавляют ваш marketplace как простой URL `marketplace.json`, Claude Code загружает только этот файл. Запись в вашем массиве `plugins`, чей `source` является относительным путем, таким как `./plugins/formatter`, затем не работает при установке с [`its marketplace entry path does not stay inside the marketplace directory`](/docs/ru/plugins/troubleshooting#plugins-with-relative-paths-fail-in-url-based-marketplaces). Дайте каждой записи источник, который можно получить самостоятельно, такой как репозиторий `github` или URL `archive`, или разместите marketplace в git-репозитории, чтобы Claude Code клонировал все дерево.51Когда пользователи добавляют ваш marketplace как простой URL `marketplace.json`, Claude Code загружает только этот файл. Запись в вашем массиве `plugins`, чей `source` является относительным путем, таким как `./plugins/formatter`, затем не работает при установке с [`its marketplace entry path does not stay inside the marketplace directory`](/docs/ru/plugins/troubleshooting#plugins-with-relative-paths-fail-in-url-based-marketplaces). Дайте каждой записи источник, который можно получить самостоятельно, такой как репозиторий `github` или URL `archive`, или разместите marketplace в git-репозитории, чтобы Claude Code клонировал все дерево.

52 52 

53<h3 id="stay-within-the-download-limits-for-hosted-files">

54 Stay within the download limits for hosted files

55</h3>

56 

57Когда пользователи добавляют ваш marketplace как URL `marketplace.json` или устанавливают запись с источником [`archive`](/docs/ru/plugins/marketplace-reference#archive-plugin-source), Claude Code загружает файл с вашего сервера. Загрузка не удается при превышении лимитов в этой таблице, поэтому размер ваших файлов и настройка вашего сервера должны оставаться в пределах них.

58 

59| Файл | Наибольшая загрузка | Время ответа вашего сервера | Перенаправления |

60| :- | :- | :- | :- |

61| `marketplace.json` из источника marketplace типа `url` | 5 МиБ | 10 секунд | Перенаправление на другой источник должно использовать `https://` и не может указывать на хост loopback, link-local или cloud-metadata, поэтому перенаправление с `https://` на `http://` не удается |

62| Zip из источника плагина типа `archive` | 256 МиБ | 120 секунд | Максимум пять. Каждая цель перенаправления должна использовать `https://` и не может указывать на хост loopback, link-local или cloud-metadata |

63 

64Запрос, который перенаправление отправляет на другой источник, не содержит ни одного из заголовков, которые вы настроили на источнике marketplace или записи плагина.

65 

66После загрузки архива установка не удается, когда zip превышает любой из этих лимитов извлечения:

67 

68* **Записи**: 100 000 файлов и каталогов

69* **Размер файла**: 512 МиБ для любого одного файла, несжатого

70* **Общий размер**: 1 ГиБ несжатого

71* **Коэффициент сжатия**: несжатое содержимое в 50 раз больше размера zip

72 

53<h3 id="edit-plugins-in-place-on-a-shared-directory">73<h3 id="edit-plugins-in-place-on-a-shared-directory">

54 Edit plugins in place on a shared directory74 Edit plugins in place on a shared directory

55</h3>75</h3>

plugins/loading.md +33 −25

Details

47Включённый плагин, который ни один путь не загрузил и у которого нет пригодного для использования каталога кэша, показывает `Plugin "<name>" not cached at <path>` на вкладке `/plugin` **Errors**, и `claude plugin list` добавляет `— run /plugin to refresh` на ту же строку. Для исправления см. [`Plugin "<name>" not cached at <path>`](/docs/ru/plugins/troubleshooting#plugin-not-cached-at).47Включённый плагин, который ни один путь не загрузил и у которого нет пригодного для использования каталога кэша, показывает `Plugin "<name>" not cached at <path>` на вкладке `/plugin` **Errors**, и `claude plugin list` добавляет `— run /plugin to refresh` на ту же строку. Для исправления см. [`Plugin "<name>" not cached at <path>`](/docs/ru/plugins/troubleshooting#plugin-not-cached-at).

48 48 

49<h2 id="find-where-a-plugin-came-from">49<h2 id="find-where-a-plugin-came-from">

50 Найдите, откуда пришёл плагин50 Узнайте, откуда взялся плагин

51</h2>51</h2>

52 52 

53Каждый плагин имеет идентификатор вида `<name>@<origin>`, который вы видите в файлах параметров и в `claude plugin list --json`. Часть после `@` говорит вам, где Claude Code нашёл плагин:53Каждый плагин имеет идентификатор вида `<name>@<origin>`, который вы видите в файлах настроек и в выводе `claude plugin list --json`. Часть после `@` указывает, где Claude Code нашел плагин:

54 54 

55| ID заканчивается на | Как плагин туда попал | Как вы его включаете или отключаете |55| ID заканчивается на | Как плагин попал сюда | Как его включить или отключить |

56| :- | :- | :- |56| :- | :- | :- |

57| `@<marketplace>` | Вы установили его из маркетплейса, который добавили | `"<name>@<marketplace>": true` или `false` под `enabledPlugins` в файле параметров |57| `@<marketplace>` | Вы установили его из маркетплейса, который добавили | `"<name>@<marketplace>": true` или `false` под `enabledPlugins` в файле настроек |

58| `@inline` | Вы запустили Claude Code с `--plugin-dir` или `--plugin-url`, установили [`CLAUDE_CODE_PLUGIN_DIRS`](/docs/ru/env-vars#variables), или приложение Agent SDK передало опцию `plugins`. Он загружается только для этого сеанса | Включен для сеанса, если только манифест не устанавливает `defaultEnabled: false` или файл параметров не устанавливает `"<name>@inline": false` |58| `@inline` | Вы запустили Claude Code с `--plugin-dir` или `--plugin-url`, установили [`CLAUDE_CODE_PLUGIN_DIRS`](/docs/ru/env-vars#variables), или приложение Agent SDK передало опцию `plugins`. Он загружается только для этого сеанса | Включен для сеанса, если только манифест не устанавливает `defaultEnabled: false` или файл настроек не устанавливает `"<name>@inline": false` |

59| `@skills-dir` | Вы сохранили каталог плагина, который имеет `.claude-plugin/plugin.json` в `~/.claude/skills/` или в `.claude/skills/` проекта | `defaultEnabled` манифеста, если только файл параметров не устанавливает `"<name>@skills-dir"` в `true` или `false` |59| `@skills-dir` | Вы сохранили директорию плагина с `.claude-plugin/plugin.json` под `~/.claude/skills/` или `.claude/skills/` проекта | `defaultEnabled` из манифеста, если только файл настроек не устанавливает `"<name>@skills-dir"` в `true` или `false` |

60| `@synced` | Вы или ваша организация включили его для вашей учётной записи claude.ai, и Claude Code [загрузил его](#synced-plugins) | Включен, если только манифест не устанавливает `defaultEnabled: false` или файл параметров не устанавливает `"<name>@synced": false`. Плагин, который ваша организация отмечает как обязательный, загружается в любом случае |60| `@synced` | Вы или ваша организация включили его для вашего аккаунта claude.ai, и Claude Code [загрузил его](#synced-plugins) | Включен, если только манифест не устанавливает `defaultEnabled: false` или файл настроек не устанавливает `"<name>@synced": false`. Плагин, который ваша организация отмечает как обязательный, загружается в любом случае |

61 61 

62Для плагина маркетплейса `<name>` — это имя записи в `marketplace.json`; для `@inline` и `@skills-dir` это `name` в манифесте плагина.62Для плагина маркетплейса `<name>` — это имя записи в `marketplace.json`; для `@inline` и `@skills-dir` это `name` в манифесте плагина.

63 63 


69 69 

70Плагин маркетплейса имеет два имени, и они могут отличаться:70Плагин маркетплейса имеет два имени, и они могут отличаться:

71 71 

72* **Имя записи в `marketplace.json`**: ключ установки и включения. Это то, что вы пишете в `enabledPlugins`, по чему назван каталог кэша, и что показывает `claude plugin list`72* **Имя записи в `marketplace.json`**: ключ установки и включения. Это то, что вы пишете в `enabledPlugins`, по чему названа директория кэша, и что показывает `claude plugin list`

73* **`name` в манифесте**: то, под чем пространства имён компонентов плагина, и что сравнивают [конфликты имён](#name-conflicts)73* **`name` в манифесте**: пространство имен, под которым находятся компоненты плагина, и что сравнивается при [конфликтах имен](#name-conflicts)

74 74 

75<h3 id="plugins-shared-through-a-repository">75<h3 id="plugins-shared-through-a-repository">

76 Плагины, общие через репозиторий76 Плагины, общие через репозиторий

77</h3>77</h3>

78 78 

79Чтобы поделиться плагином через репозиторий, перечислите его под `enabledPlugins` в `.claude/settings.json` или поместите его в `.claude/skills/`. Claude Code не сканирует каталог `.claude/plugins/` проекта.79Чтобы поделиться плагином через репозиторий, перечислите его под `enabledPlugins` в `.claude/settings.json` или поместите его под `.claude/skills/`. Claude Code не сканирует директорию `.claude/plugins/` проекта.

80 80 

81Облачный сеанс не добавляет маркетплейсы, которые репозиторий перечисляет под [`extraKnownMarketplaces`](/docs/ru/settings-reference#extraknownmarketplaces), потому что это требует диалога доверия рабочей области, который облачный сеанс никогда не показывает.81Облачный сеанс не добавляет маркетплейсы, которые репозиторий перечисляет под [`extraKnownMarketplaces`](/docs/ru/settings-reference#extraknownmarketplaces), потому что это требует диалога доверия рабочей области, который облачный сеанс никогда не показывает.

82 82 

83Плагин каталога навыков с областью проекта загружается только из `.claude/skills/` [основного рабочего каталога](/docs/ru/permissions#working-directories) сеанса и только после того, как вы примете [диалог доверия рабочей области](/docs/ru/permissions#what-runs-before-you-trust-a-folder) для этого каталога. Он не [ищет родительские каталоги вверх до корня репозитория](/docs/ru/skills#discovery-from-parent-and-nested-directories) так, как это делают обычные навыки и команды. Если вы запустите из подкаталога, плагин в корне репозитория не загрузится. Запустите из корня репозитория вместо этого, или [переместите сеанс туда с помощью `/cd`](/docs/ru/permissions#move-the-session-to-another-directory) на v2.1.246 или позже.83Плагин skills-directory с областью действия проекта загружается только из `.claude/skills/` [основной рабочей директории](/docs/ru/permissions#working-directories) сеанса и только после того, как вы примете [диалог доверия рабочей области](/docs/ru/permissions#what-runs-before-you-trust-a-folder) для этой папки. Он не [ищет родительские директории вверх до корня репозитория](/docs/ru/skills#discovery-from-parent-and-nested-directories) так, как это делают обычные skills и команды. Если вы запустите из поддиректории, плагин в корне репозитория не загрузится. Вместо этого запустите из корня репозитория или [переместите сеанс туда с помощью `/cd`](/docs/ru/permissions#move-the-session-to-another-directory) на v2.1.246 или позже.

84 84 

85Плагин с областью проекта проверяется в репозиторий и достигает каждого сотрудника, который его клонирует. Поскольку это содержимое поступает из репозитория, а не от вас, оно загружается только после той же проверки доверия, которая применяется к правилам разрешения проекта в `.claude/settings.json`. Доверие к родительской папке или запуск с `-p` недостаточно. Компоненты, которые выполняют код, имеют дополнительные ограничения:85Плагин с областью действия проекта проверяется в репозиторий и доступен каждому сотруднику, который его клонирует. Поскольку это содержимое поступает из репозитория, а не от вас, оно загружается только после той же проверки доверия, которая применяется к правилам разрешения проекта в `.claude/settings.json`. Доверия к родительской папке или запуска с `-p` недостаточно. Компоненты, которые выполняют код, имеют дополнительные ограничения:

86 86 

87* MCP серверы, которые он объявляет, проходят через [то же одобрение для каждого сервера](/docs/ru/mcp), что и проект `.mcp.json`87* MCP серверы, которые он объявляет, проходят через [то же одобрение для каждого сервера](/docs/ru/mcp), что и проект `.mcp.json`

88* MCP серверы, которые он объявляет как [MCP пакет](/docs/ru/plugins/manifest-reference#mcpservers), файл `.mcpb` или `.dxt`, или из файла вне каталога плагина, пропускаются. Объявляйте их встроенными или в `.mcp.json` внутри каталога плагина88* MCP серверы, которые он объявляет как [MCP bundle](/docs/ru/plugins/manifest-reference#mcpservers), файл `.mcpb` или `.dxt`, или из файла вне директории плагина пропускаются. Объявляйте их встроенными или в `.mcp.json` внутри директории плагина

89* [Фоновые мониторы](/docs/ru/plugins/components#monitors) не загружаются89* [Фоновые мониторы](/docs/ru/plugins/components#monitors) не загружаются

90 90 

91Плагины с областью пользователя не имеют этих ограничений.91Плагины с личной областью действия не имеют этих ограничений.

92 92 

93О том, как писать плагины `--plugin-dir` и каталога навыков, см. [Создание плагинов](/docs/ru/plugins/create).93О том, как писать плагины `--plugin-dir` и skills-directory, см. [Создание плагинов](/docs/ru/plugins/create).

94 94 

95<h3 id="synced-plugins">95<h3 id="synced-plugins">

96 Плагины, синхронизированные с claude.ai96 Плагины, синхронизированные с claude.ai

97</h3>97</h3>

98 98 

99Плагин, который вы включаете для своей учётной записи claude.ai, также загружается в Claude Code рядом с плагинами, которые вы устанавливаете из маркетплейсов. Это включает плагины, которые ваша организация включает для своих членов. Каждый из этих плагинов загружается как `<name>@synced`, без маркетплейса и без [записи об установке](#check-which-stage-a-plugin-reached).99Плагин, который вы включаете для своего аккаунта claude.ai, также загружается в Claude Code вместе с плагинами, которые вы устанавливаете из маркетплейсов. Это включает плагины, которые ваша организация включает для своих членов. Каждый из этих плагинов загружается как `<name>@synced`, без маркетплейса и без [записи об установке](#check-which-stage-a-plugin-reached).

100 100 

101В сеансах терминала навыки, агенты, hooks, MCP серверы и LSP серверы синхронизированного плагина все загружаются с тем же доверием, что и плагин маркетплейса, который вы установили.101В сеансах терминала все skills, агенты, hooks, MCP серверы и LSP серверы синхронизированного плагина загружаются с тем же доверием, что и плагин маркетплейса, который вы установили.

102 102 

103О компонентах, которые загружает Cowork, см. [таблицу поддержки компонентов](https://claude.com/docs/plugins/platform-support#compare-component-support-by-app) на claude.com.103О компонентах, которые загружает Cowork, см. [таблицу поддержки компонентов](https://claude.com/docs/plugins/platform-support#compare-component-support-by-app) на claude.com.

104 104 

105Синхронизированные плагины загружаются в сеансах Cowork и в сеансах терминала, где вы входите с помощью своей учётной записи claude.ai:105Синхронизированные плагины загружаются в сеансах Cowork и в сеансах терминала, где вы входите со своим аккаунтом claude.ai:

106 106 

107* **[Cowork](https://claude.com/product/cowork)**: Claude Code загружает их в собственную среду сеанса при запуске сеанса107* **[Cowork](https://claude.com/product/cowork)**: Claude Code загружает их в собственную среду сеанса при запуске сеанса

108* **Сеансы терминала**: каждый раз, когда вы запускаете Claude Code, он синхронизируется один раз в фоновом режиме, загружая новые и обновлённые плагины и удаляя те, которые вы или ваша организация отключили. Синхронизация в сеансах терминала требует Claude Code v2.1.273 или позже108* **Сеансы терминала**: каждый раз, когда вы запускаете Claude Code, он синхронизируется один раз в фоне, загружая новые и обновленные плагины и удаляя те, которые вы или ваша организация отключили. Синхронизация в сеансах терминала требует Claude Code v2.1.273 или позже

109 109 

110<h4 id="sync-timing-in-terminal-sessions">110<h4 id="sync-timing-in-terminal-sessions">

111 Время синхронизации в сеансах терминала111 Время синхронизации в сеансах терминала

112</h4>112</h4>

113 113 

114Поскольку синхронизация терминала выполняется в фоновом режиме, она может завершиться после запуска вашего сеанса. Когда она добавляет, обновляет или удаляет синхронизированный плагин в интерактивном сеансе, вы видите `Plugins changed. Run /reload-plugins to activate.` Запустите `/reload-plugins`, чтобы загрузить изменение в этом сеансе, или оставьте его на следующий раз, когда вы запустите Claude Code.114Поскольку синхронизация терминала выполняется в фоне, она может завершиться после запуска вашего сеанса. Когда она добавляет, обновляет или удаляет синхронизированный плагин в интерактивном сеансе, вы видите `Plugins changed. Run /reload-plugins to activate.` Запустите `/reload-plugins`, чтобы загрузить изменение в этом сеансе, или оставьте его на следующий раз, когда вы запустите Claude Code.

115 115 

116Если вы включите плагин на claude.ai во время работы сеанса, плагин загрузится в следующий раз, когда вы запустите Claude Code.116Если вы включите плагин на claude.ai во время работы сеанса, плагин загрузится в следующий раз, когда вы запустите Claude Code.

117 117 

118<h4 id="sign-in-requirements-for-terminal-sync">118<h4 id="sign-in-requirements-for-terminal-sync">

119 Требования входа для синхронизации терминала119 Требования к входу для синхронизации терминала

120</h4>120</h4>

121 121 

122В вашем терминале плагины синхронизируются только в сеансах, где вы входите с помощью своей учётной записи claude.ai.122В вашем терминале плагины синхронизируются только в сеансах, где вы входите со своим аккаунтом claude.ai.

123 123 

124Если вы вошли в более ранней версии Claude Code, этот вход не охватывает плагины до тех пор, пока Claude Code не обновит его в фоновом режиме. Чтобы получить доступ раньше, запустите `/login` снова. Синхронизация плагинов затем начнётся в следующий раз, когда вы запустите Claude Code.124Claude Code ни загружает, ни загружает синхронизированные плагины в этих сеансах терминала, даже после того, как вы входите с помощью `/login`:

125 

126* Сеанс, где `ANTHROPIC_AUTH_TOKEN`, `CLAUDE_CODE_OAUTH_TOKEN` или скрипт `apiKeyHelper` предоставляет учетные данные вместо этого входа

127* Сеанс, который не [получает флаги функций от Anthropic](/docs/ru/env-vars#features-that-need-feature-flag-fetching), например тот, где вы установили `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`

128* Сеанс в [bare mode](/docs/ru/headless#start-faster-with-bare-mode) или тот, который вы запустили с `--safe-mode`

129* Сеанс, который вы запустили со списком [`--setting-sources`](/docs/ru/cli-reference#cli-flags), который исключает `user`

130 

131Если вы входили на более ранней версии Claude Code, этот вход не охватывает плагины, пока Claude Code не обновит его в фоне. Чтобы получить доступ раньше, запустите `/login` снова. Синхронизация плагинов затем начнется в следующий раз, когда вы запустите Claude Code.

125 132 

126<h4 id="control-which-synced-plugins-load">133<h4 id="control-which-synced-plugins-load">

127 Контролируйте, какие синхронизированные плагины загружаются134 Контролируйте, какие синхронизированные плагины загружаются


129 136 

130Вы можете отключить синхронизированные плагины по одному, кроме плагина, который требует ваша организация, или отключить все синхронизированные плагины на машине:137Вы можете отключить синхронизированные плагины по одному, кроме плагина, который требует ваша организация, или отключить все синхронизированные плагины на машине:

131 138 

132* **Один плагин**: `claude plugin disable <name>@synced` в вашей оболочке и вкладка `/plugin` **Installed** в сеансе оба сохраняют `"<name>@synced": false` в вашем пользовательском уровне [`enabledPlugins`](/docs/ru/settings-reference#enabledplugins). Чтобы держать плагин вне проекта в каждой среде, установите тот же ключ в коммитированный `.claude/settings.json` проекта139* **Один плагин**: `claude plugin disable <name>@synced` в вашей оболочке и вкладка **Installed** в `/plugin` в сеансе оба сохраняют `"<name>@synced": false` в вашем пользовательском уровне [`enabledPlugins`](/docs/ru/settings-reference#enabledplugins). Чтобы исключить плагин из проекта в каждой среде, установите тот же ключ в коммитированный `.claude/settings.json` проекта

133* **Все синхронизированные плагины на машине**: установите [`syncClaudeAiPlugins`](/docs/ru/settings-reference#syncclaudeaiplugins) в `false` в ваших пользовательских параметрах, или ваша организация устанавливает это в [управляемых параметрах](/docs/ru/managed-settings). Claude Code прекращает загрузку, и в следующий раз, когда вы его запустите, он перемещает плагины, которые он уже синхронизировал, в `~/.claude/plugins/.trash/` и больше их не загружает. Если ваша организация отключит Skills на claude.ai, плагины также перестанут синхронизироваться140* **Все синхронизированные плагины на машине**: установите [`syncClaudeAiPlugins`](/docs/ru/settings-reference#syncclaudeaiplugins) в `false` в ваших пользовательских настройках, или ваша организация устанавливает это в [управляемых настройках](/docs/ru/managed-settings). Claude Code прекращает загрузку, и в следующий раз, когда вы его запустите, он перемещает плагины, которые он уже синхронизировал, в `~/.claude/plugins/.trash/` и больше их не загружает. Если ваша организация отключит Skills на claude.ai, плагины также перестанут синхронизироваться

134* **Плагин, который требует ваша организация**: плагин, который ваша организация отмечает как обязательный на claude.ai, загружается даже если вы его отключили ранее. `claude plugin disable` отказывает ему с `Plugin "<name>@synced" is required by your organization and can't be disabled here. Contact your admin to change it.`, и `claude plugin list` отмечает его `required by your org`141* **Плагин, который требует ваша организация**: плагин, который ваша организация отмечает как обязательный на claude.ai, загружается даже если вы его отключили ранее. `claude plugin disable` отказывает ему с `Plugin "<name>@synced" is required by your organization and can't be disabled here. Contact your admin to change it.`, и `claude plugin list` отмечает его `required by your org`

135 142 

136О удалении плагина на claude.ai см. [Управление установленными плагинами](/docs/ru/plugins/install#manage-installed-plugins).143О удалении плагина на claude.ai см. [Управление установленными плагинами](/docs/ru/plugins/install#manage-installed-plugins).


190| `.trash/` | Плагины, которые синхронизация claude.ai удалила, например, после того как вы отключили один на claude.ai или прекратили синхронизацию |197| `.trash/` | Плагины, которые синхронизация claude.ai удалила, например, после того как вы отключили один на claude.ai или прекратили синхронизацию |

191| `installed_plugins.json` и `known_marketplaces.json` | Записи о том, что Claude Code установил и какие маркетплейсы он загрузил, описанные в разделе [Проверьте, на каком этапе находится плагин](#check-which-stage-a-plugin-reached). [Маркетплейс, размещённый на claude.ai](/docs/ru/plugins/install#add-from-claude-ai), записывается в `known_marketplaces_claudeai.json` вместо этого |198| `installed_plugins.json` и `known_marketplaces.json` | Записи о том, что Claude Code установил и какие маркетплейсы он загрузил, описанные в разделе [Проверьте, на каком этапе находится плагин](#check-which-stage-a-plugin-reached). [Маркетплейс, размещённый на claude.ai](/docs/ru/plugins/install#add-from-claude-ai), записывается в `known_marketplaces_claudeai.json` вместо этого |

192| `flagged-plugins.json` | Плагины, которые Claude Code удалил, потому что их маркетплейс их исключил. Они появляются в разделе **Flagged** в `/plugin`; см. [Размещение маркетплейса](/docs/ru/plugins/host-marketplace) |199| `flagged-plugins.json` | Плагины, которые Claude Code удалил, потому что их маркетплейс их исключил. Они появляются в разделе **Flagged** в `/plugin`; см. [Размещение маркетплейса](/docs/ru/plugins/host-marketplace) |

200| `installed_plugins.set-aside.<date>.<hash>.json` и `installed_plugins.unreadable.<date>.<hash>.kept` | Датированные копии, которые Claude Code сохраняет перед тем, как удалить записи установки, которые ни одна версия Claude Code не может использовать, или перестроить нечитаемый `installed_plugins.json`. См. [примечания по восстановлению](/docs/ru/plugins/troubleshooting#installed-plugins-json-could-not-be-read-and-was-rebuilt). Они устаревают по расписанию [`cleanupPeriodDays`](/docs/ru/settings-reference#cleanupperioddays) |

193 201 

194Поскольку `${CLAUDE_PLUGIN_ROOT}` указывает на каталог версии, путь корня плагина изменяется с каждой версией. Сохраняйте постоянные файлы плагина в `${CLAUDE_PLUGIN_DATA}` вместо этого.202Поскольку `${CLAUDE_PLUGIN_ROOT}` указывает на каталог версии, путь корня плагина изменяется с каждой версией. Сохраняйте постоянные файлы плагина в `${CLAUDE_PLUGIN_DATA}` вместо этого.

195 203 

Details

48* **Имена community marketplace**: `claude-community`, `claude-plugins-community` и `healthcare`. Зарезервированы по тому же правилу, что и официальные имена.48* **Имена community marketplace**: `claude-community`, `claude-plugins-community` и `healthcare`. Зарезервированы по тому же правилу, что и официальные имена.

49* **Имена директории плагинов**: `anthropic-plugin-directory` и `claude-plugin-directory`. Зарезервированы по тому же правилу, что и официальные имена.49* **Имена директории плагинов**: `anthropic-plugin-directory` и `claude-plugin-directory`. Зарезервированы по тому же правилу, что и официальные имена.

50* **Имена, выдающие себя за официальный marketplace**: имена такие как `official-claude-plugins` или `claude-plugins-v2`, и любое имя, содержащее символ, отличный от ASCII. Ошибка: `Marketplace name impersonates an official Anthropic/Claude marketplace`. Управляющий символ или символ двунаправленного форматирования в имени также сообщает `Marketplace name cannot contain control or bidirectional-formatting characters`. Marketplace, уже зарегистрированный под таким именем, перестаёт загружаться, вместе с его плагинами.50* **Имена, выдающие себя за официальный marketplace**: имена такие как `official-claude-plugins` или `claude-plugins-v2`, и любое имя, содержащее символ, отличный от ASCII. Ошибка: `Marketplace name impersonates an official Anthropic/Claude marketplace`. Управляющий символ или символ двунаправленного форматирования в имени также сообщает `Marketplace name cannot contain control or bidirectional-formatting characters`. Marketplace, уже зарегистрированный под таким именем, перестаёт загружаться, вместе с его плагинами.

51* <span id="reserved-name-spellings" />**Другое написание зарезервированного имени**: имя, которое отличается от зарезервированного имени только конечной точкой, или символом, отличным от подчёркивания, вместо дефиса, поэтому `claude.code.plugins` считается `claude-code-plugins`. `claude plugin validate` принимает такое имя; добавление marketplace завершается ошибкой [`is another spelling of "<reserved>", a reserved marketplace name`](/docs/ru/errors#marketplace-name-is-another-spelling-of-a-reserved-name), и marketplace, уже зарегистрированный под одним, перестаёт загружаться. Эта проверка требует Claude Code v2.1.280 или позже.51* <span id="reserved-name-spellings" />**Другое написание зарезервированного имени**: имя, которое отличается от зарезервированного имени только конечной точкой, или символом, отличным от подчёркивания, вместо дефиса, поэтому `claude.code.plugins` считается `claude-code-plugins`. Добавление marketplace завершается ошибкой [`is another spelling of "<reserved>", a reserved marketplace name`](/docs/ru/errors#marketplace-name-is-another-spelling-of-a-reserved-name), и marketplace, уже зарегистрированный под одним, перестаёт загружаться. Эта проверка требует Claude Code v2.1.280 или позже.

52* **Имена, которые Claude Code использует для плагинов, которые не поступают из marketplace**: `inline` для плагинов, загруженных с [`--plugin-dir`](/docs/ru/cli-reference), `builtin` для встроенных плагинов, `skills-dir` для плагинов, автоматически загруженных из [`.claude/skills/`](/docs/ru/skills), и `synced` для плагинов, синхронизированных с вашего аккаунта claude.ai. `claude-plugin-test` также зарезервирован. `skills-dir` также появляется как `{"source": "skills-dir"}` в `strictKnownMarketplaces` и `blockedMarketplaces`, описанные в разделе [Source values valid only in policy lists](#source-values-valid-only-in-policy-lists).52* **Имена, которые Claude Code использует для плагинов, которые не поступают из marketplace**: `inline` для плагинов, загруженных с [`--plugin-dir`](/docs/ru/cli-reference), `builtin` для встроенных плагинов, `skills-dir` для плагинов, автоматически загруженных из [`.claude/skills/`](/docs/ru/skills), и `synced` для плагинов, синхронизированных с вашего аккаунта claude.ai. `claude-plugin-test` также зарезервирован. `skills-dir` также появляется как `{"source": "skills-dir"}` в `strictKnownMarketplaces` и `blockedMarketplaces`, описанные в разделе [Source values valid only in policy lists](#source-values-valid-only-in-policy-lists).

53* **`npm`, `pip`, `uv`, `cargo`, `github` и `gh`**: зарезервированы в любом регистре. Эта проверка требует Claude Code v2.1.275 или позже.53* **`npm`, `pip`, `uv`, `cargo`, `github` и `gh`**: зарезервированы в любом регистре. Эта проверка требует Claude Code v2.1.275 или позже.

54* **Имена, начинающиеся с `claudeai-`**: зарезервированы для marketplace, размещённых на claude.ai. `claude plugin marketplace add` отказывает любому другому marketplace, который использует один с `Cannot add marketplace "<name>": names starting with "claudeai-" are reserved for marketplaces hosted on claude.ai`.54* **Имена, начинающиеся с `claudeai-`**: зарезервированы для marketplace, размещённых на claude.ai. `claude plugin marketplace add` отказывает любому другому marketplace, который использует один с `Cannot add marketplace "<name>": names starting with "claudeai-" are reserved for marketplaces hosted on claude.ai`.


63 63 

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

65| :- | :- | :- |65| :- | :- | :- |

66| `name` | string | Идентификатор Marketplace. Без пробелов, управляющих символов или символов двунаправленного форматирования, без `/` или `\`, без `..` и не `.`. См. [Зарезервированные имена](#reserved-names). Пользователи вводят его после `@` при установке плагина |66| `name` | string | Идентификатор Marketplace: буквы, цифры, `.`, `_` и `-`, начинающиеся с буквы или цифры, и без `..`. Он образует часть после `@` каждого [идентификатора плагина](/docs/ru/plugins/loading#find-where-a-plugin-came-from), установленного из marketplace, поэтому `claude plugin validate` отклоняет другие имена. См. [Зарезервированные имена](#reserved-names) |

67| `owner` | object | Информация о разработчике. `name` обязателен; `email` и `url` опциональны |67| `owner` | object | Информация о разработчике. `name` обязателен; `email` и `url` опциональны |

68| `plugins` | array | [Записи плагинов](#plugin-entries). Каждая запись проверяется отдельно, поэтому одна неверная запись не приводит к отказу marketplace |68| `plugins` | array | [Записи плагинов](#plugin-entries). Каждая запись проверяется отдельно, поэтому одна неверная запись не приводит к отказу marketplace |

69| `$schema` | string | URL JSON Schema для автодополнения редактора. Игнорируется при загрузке |69| `$schema` | string | URL JSON Schema для автодополнения редактора. Игнорируется при загрузке |


87 87 

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

89| :- | :- | :- |89| :- | :- | :- |

90| `name` | string | Идентификатор плагина без пробелов, управляющих символов или символов двунаправленного форматирования. Пользователи вводят его перед `@` при установке, даже когда собственный `plugin.json` плагина устанавливает другой `name` |90| `name` | string | Идентификатор плагина: буквы, цифры, `.`, `_` и `-`, начинающиеся с буквы или цифры. `claude plugin validate` не проходит другие имена, которые Claude Code не может установить. Пользователи вводят его перед `@` при установке, даже когда собственный `plugin.json` плагина устанавливает другой `name` |

91| `source` | string or object | Откуда загружать плагин. См. [Источники плагинов](#plugin-sources) |91| `source` | string or object | Откуда загружать плагин. См. [Источники плагинов](#plugin-sources) |

92| `description` | string | Показывается в списках и деталях [`/plugin`](/docs/ru/plugins/install) |92| `description` | string | Показывается в списках и деталях [`/plugin`](/docs/ru/plugins/install) |

93| `version` | string | Строка версии для плагина. Когда `plugin.json` также устанавливает `version`, `plugin.json` имеет приоритет и `claude plugin validate` предупреждает. См. [Справочник загрузки плагинов](/docs/ru/plugins/loading) |93| `version` | string | Строка версии для плагина. Когда `plugin.json` также устанавливает `version`, `plugin.json` имеет приоритет и `claude plugin validate` предупреждает. См. [Справочник загрузки плагинов](/docs/ru/plugins/loading) |


280 Источник плагина archive280 Источник плагина archive

281</h3>281</h3>

282 282 

283`url` должен использовать `https://` и не может указывать на хост обратной связи, локальной связи или облачных метаданных.283`url` должен использовать `https://` и не может указывать на хост обратной связи, локальной связи или облачных метаданных. Для размера, тайм-аута, перенаправления и ограничений на извлечение при загрузке см. [Оставайтесь в пределах ограничений загрузки для размещённых файлов](/docs/ru/plugins/host-marketplace#stay-within-the-download-limits-for-hosted-files).

284 284 

285Корень плагина может быть в верхней части zip или на один каталог ниже.285Корень плагина может быть в верхней части zip или на один каталог ниже.

286 286 


385| :- | :- | :- | :- | :- | :- |385| :- | :- | :- | :- | :- | :- |

386| `url` | `url`, `headers`, `headersHelper` | URL `http://` или `https://`, который не совпадает с формой git | Загружается | Разрешает тот же URL | Блокирует тот же URL |386| `url` | `url`, `headers`, `headersHelper` | URL `http://` или `https://`, который не совпадает с формой git | Загружается | Разрешает тот же URL | Блокирует тот же URL |

387| `github` | `repo`, `ref`, `path`, `sparsePaths` | `owner/repo`, `owner/repo@ref` или `owner/repo#ref` | Загружается | Разрешает тот же `repo`, `ref` и `path`. `repo` может быть `owner/*` | Блокирует то же самое и URL `git` к тому же репозиторию |387| `github` | `repo`, `ref`, `path`, `sparsePaths` | `owner/repo`, `owner/repo@ref` или `owner/repo#ref` | Загружается | Разрешает тот же `repo`, `ref` и `path`. `repo` может быть `owner/*` | Блокирует то же самое и URL `git` к тому же репозиторию |

388| `git` | `url`, `ref`, `path`, `sparsePaths` | URL `user@host:path` или URL `https://`, который заканчивается на `.git`, содержит `/_git/` или называет репозиторий github.com или gitlab.com. `#ref` закрепляет ref | Загружается | Разрешает тот же URL, `ref` и `path` | Блокирует то же самое и другие написания того же репозитория github.com |388| `git` | `url`, `ref`, `path`, `sparsePaths` | URL `user@host:path` или URL `http://` или `https://`, который заканчивается на `.git`, содержит `/_git/` или называет репозиторий github.com или gitlab.com. `#ref` закрепляет ref | Загружается | Разрешает тот же URL, `ref` и `path` | Блокирует то же самое и другие написания того же репозитория github.com |

389| `npm` | `package` | Не производится | Не загружается: `NPM marketplace sources not yet implemented` | Анализирует, но ничего не совпадает, потому что ничего не регистрирует marketplace `npm` | Анализирует, но ничего не совпадает |389| `npm` | `package` | Не производится | Не загружается: `NPM marketplace sources not yet implemented` | Анализирует, но ничего не совпадает, потому что ничего не регистрирует marketplace `npm` | Анализирует, но ничего не совпадает |

390| `file` | `path` | Путь к файлу `.json` | Загружается | Разрешает тот же путь | Блокирует тот же путь |390| `file` | `path` | Путь к файлу `.json` | Загружается | Разрешает тот же путь | Блокирует тот же путь |

391| `directory` | `path` | Путь к каталогу | Загружается | Разрешает тот же путь | Блокирует тот же путь |391| `directory` | `path` | Путь к каталогу | Загружается | Разрешает тот же путь | Блокирует тот же путь |


402 402 

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

404| :- | :- | :- |404| :- | :- | :- |

405| `url` | `url` | Ссылка на файл `marketplace.json`. Claude Code загружает только этот файл, поэтому плагины marketplace не могут использовать [источники с относительными путями](#relative-path-plugin-source) |405| `url` | `url` | Ссылка на файл `marketplace.json`. Claude Code загружает только этот файл, поэтому плагины marketplace не могут использовать [источники с относительными путями](#relative-path-plugin-source). См. [Оставайтесь в пределах лимитов загрузки для размещённых файлов](/docs/ru/plugins/host-marketplace#stay-within-the-download-limits-for-hosted-files) для ограничений размера, тайм-аута и перенаправления |

406| `url` | `git` | Git-репозиторий для клонирования |406| `url` | `git` | Git-репозиторий для клонирования |

407| `headers` | `url` | Карта HTTP-заголовков, которые Claude Code отправляет с загрузкой, для аутентифицированных хостов |407| `headers` | `url` | Карта HTTP-заголовков, которые Claude Code отправляет с загрузкой, для аутентифицированных хостов |

408| `headersHelper` | `url` | Команда, которая выводит заголовки, чьи значения слишком недолговечны, чтобы их перечислять в `headers`. Требует Claude Code v2.1.238 или позже. См. [Аутентификация загрузок архивов](/docs/ru/plugins/host-marketplace#authenticate-archive-downloads) |408| `headersHelper` | `url` | Команда, которая выводит заголовки, чьи значения слишком недолговечны, чтобы их перечислять в `headers`. Требует Claude Code v2.1.238 или позже. См. [Аутентификация загрузок архивов](/docs/ru/plugins/host-marketplace#authenticate-archive-downloads) |


469 469 

470Сообщение с префиксом индекса записи и `plugin.json →`, такое как `plugins[2] plugin.json →`, касается собственных файлов этого плагина. [`claude plugin validate` сообщает об ошибках](/docs/ru/plugins/troubleshooting#claude-plugin-validate-reports-errors) перечисляет эти сообщения с их исправлениями.470Сообщение с префиксом индекса записи и `plugin.json →`, такое как `plugins[2] plugin.json →`, касается собственных файлов этого плагина. [`claude plugin validate` сообщает об ошибках](/docs/ru/plugins/troubleshooting#claude-plugin-validate-reports-errors) перечисляет эти сообщения с их исправлениями.

471 471 

472Предупреждения, которые упоминают имена флагов Claude Desktop, флаги, которые Claude Code принимает, но Claude Desktop отклоняет, потому что правила имён Claude Desktop более строгие.472Предупреждения, которые упоминают имена флагов Claude Desktop, которые Claude Desktop отклоняет.

473 473 

474Таблица сопоставляет сообщения уровня marketplace с полем, которое каждое касается.474Таблица сопоставляет сообщения уровня marketplace с полем, которое каждое касается.

475 475 


484| `Author name cannot be empty` | Ошибка | `owner.name` |484| `Author name cannot be empty` | Ошибка | `owner.name` |

485| `Plugin name cannot contain spaces. Use kebab-case (e.g., "my-plugin")` | Ошибка | `plugins[i].name` |485| `Plugin name cannot contain spaces. Use kebab-case (e.g., "my-plugin")` | Ошибка | `plugins[i].name` |

486| `Plugin name cannot contain control or bidirectional-formatting characters` | Ошибка | `plugins[i].name` |486| `Plugin name cannot contain control or bidirectional-formatting characters` | Ошибка | `plugins[i].name` |

487| `Claude Code cannot install plugins from marketplace "x". Each part of a plugin id (plugin@marketplace) may use only the letters a-z and A-Z, digits, ".", "_" and "-", and must start with a letter or digit. Change the marketplace's "name".` | Ошибка | `name` |

488| `Claude Code cannot install plugin "x". Each part of a plugin id (plugin@marketplace) may use only the letters a-z and A-Z, digits, ".", "_" and "-", and must start with a letter or digit. Change this entry's "name".` | Ошибка | `plugins[i].name` |

487| `Duplicate plugin name "x" found in marketplace` | Ошибка | Две записи совместно используют `name` |489| `Duplicate plugin name "x" found in marketplace` | Ошибка | Две записи совместно используют `name` |

488| `plugins.i.source: Invalid input` | Ошибка | `source` записи не совпадает с типом. См. [Неверный ввод на источнике](#invalid-input-on-a-source) |490| `plugins.i.source: Invalid input` | Ошибка | `source` записи не совпадает с типом. См. [Неверный ввод на источнике](#invalid-input-on-a-source) |

489| `plugins[i].source: Path contains "..": <path>` | Ошибка | Относительный `source`, который выходит за пределы корня marketplace |491| `plugins[i].source: Path contains "..": <path>` | Ошибка | Относительный `source`, который выходит за пределы корня marketplace |

Details

145 `Marketplace "<name>" not found`145 `Marketplace "<name>" not found`

146</h3>146</h3>

147 147 

148Вы запустили `/plugin install <plugin>@<name>` в сеансе, часто из строки установки, которую кто-то вам отправил, и Claude Code сообщил, что у него нет маркетплейса с таким именем.148Вы запустили `/plugin install` в сеансе, и Claude Code сообщил, что у него нет маркетплейса с таким именем. Две формы команды приводят к этому сообщению:

149 

150* **`/plugin install <plugin>@<name>`**: строка установки, часто отправленная вам кем-то, называет маркетплейс, который вы не добавили. Остальная часть этой записи охватывает поиск и добавление его.

151* **`/plugin install <source>` с путём, URL или `owner/repo`**: эта форма сообщает сообщение вместо установки, даже для источника, который вы уже добавили. Чтобы установить из источника в одной команде, см. [Добавить маркетплейс и установить в одной команде](/docs/ru/plugins/install#add-a-marketplace-and-install-in-one-command).

149 152 

150Если имя начинается с `claudeai-`, маркетплейс размещён на claude.ai, и вы добавляете его по имени из вашей оболочки с помощью `claude plugin marketplace add --claudeai <name>`. См. [Добавить маркетплейс с claude.ai](/docs/ru/plugins/install#add-from-claude-ai).153Если имя начинается с `claudeai-`, маркетплейс размещён на claude.ai, и вы добавляете его по имени из вашей оболочки с помощью `claude plugin marketplace add --claudeai <name>`. См. [Добавить маркетплейс с claude.ai](/docs/ru/plugins/install#add-from-claude-ai).

151 154 


646 649 

647Затем запустите `/reload-plugins` в вашем сеансе. Запись на вкладке **Errors** исчезает и плагин вернулся в **Installed**.650Затем запустите `/reload-plugins` в вашем сеансе. Запись на вкладке **Errors** исчезает и плагин вернулся в **Installed**.

648 651 

652<h3 id="installed-plugins-json-holds-a-record-this-version-cannot-read">

653 `installed_plugins.json holds a record under "<id>" that this version of Claude Code cannot read`

654</h3>

655 

656Сообщение появляется в этих формах:

657 

658* **`claude plugin list`**: выводит его как `Note:`

659* **`claude plugin install`, `uninstall` и `update`**: отказывают с `Plugin "<name>" was not installed:`, `Plugin "<name>" was not uninstalled:` или `Plugin "<name>" was not updated:`, за которыми следует тот же текст

660* **`--json` на любой из этих трёх команд**: строка результата содержит то же `message` и `failureCode: "install_records_unreadable"`

661* **Несколько таких записей**: сообщение читается как `holds records under`

662* **Весь файл объявляет формат, который эта версия не знает**: сообщение читается как `installed_plugins.json is in a format (version <N>) that this version of Claude Code does not know` вместо этого

663 

664Названная запись в `installed_plugins.json` является действительным JSON под действительным идентификатором плагина, но его поля не анализируются для этой версии. Скорее всего, другая версия Claude Code написала это, возможно, более новая.

665 

666Пока запись там, эта версия не переписывает файл, поэтому запись не теряется.

667 

668Возьмите варианты сообщения по порядку:

669 

6701. Обновите Claude Code с помощью `claude update`.

6712. Если вы не можете обновить, удалите названный плагин с версией Claude Code, которая написала запись.

6723. Если ничего не помогает, удалите запись из `installed_plugins.json` вручную, затем перезагрузите Claude Code или запустите `/reload-plugins`.

673 

674<h3 id="installed-plugins-json-could-not-be-read-and-was-rebuilt">

675 `installed_plugins.json could not be read and was rebuilt`

676</h3>

677 

678`claude plugin list` выводит эту заметку с путём сохранённого файла с именем `installed_plugins.unreadable.<date>.<hash>.kept`, пока этот файл находится рядом с `installed_plugins.json`.

679 

680`installed_plugins.json`, который не является действительным JSON или не является списком плагинов, не может сказать, что вы установили.

681 

682Откройте файл `.kept`, чтобы увидеть, что записал старый файл, и переустановите плагины, которые вам не хватает. Claude Code никогда не читает файл обратно, и файл стареет по расписанию [`cleanupPeriodDays`](/docs/ru/settings-reference#cleanupperioddays).

683 

684<h3 id="install-records-under-names-that-no-version-can-use">

685 `install records under names that no version of Claude Code can use were removed from installed_plugins.json`

686</h3>

687 

688`claude plugin list` выводит эту заметку с путём копии с именем `installed_plugins.set-aside.<date>.<hash>.json`, пока эта копия находится рядом с `installed_plugins.json`. Заметка заканчивается `Nothing needs doing about these copies.`

689 

690Запись в `installed_plugins.json` находилась под ключом, который не является действительным идентификатором плагина, поэтому ни одна версия Claude Code не может его использовать. Остальная часть файла загружается нормально.

691 

692Claude Code копирует непригодные записи в файл `.set-aside` и удаляет их из списка. Claude Code никогда не читает копии обратно, и копии стареют по расписанию [`cleanupPeriodDays`](/docs/ru/settings-reference#cleanupperioddays).

693 

649<h3 id="a-plugin-you-disabled-still-loads">694<h3 id="a-plugin-you-disabled-still-loads">

650 `Disabled in ~/.claude/settings.json but still loads`695 `Disabled in ~/.claude/settings.json but still loads`

651</h3>696</h3>


981| `Path contains "..": <path>` в `plugins[N].source` | Ошибка | Используйте пути относительно корня маркетплейса без сегментов `..`. |1026| `Path contains "..": <path>` в `plugins[N].source` | Ошибка | Используйте пути относительно корня маркетплейса без сегментов `..`. |

982| `Marketplace name cannot contain control or bidirectional-formatting characters` | Ошибка | Удалите символ из имени, такой как escape или новая строка. |1027| `Marketplace name cannot contain control or bidirectional-formatting characters` | Ошибка | Удалите символ из имени, такой как escape или новая строка. |

983| `Plugin name cannot contain control or bidirectional-formatting characters` | Ошибка | Удалите символ из имени плагина `name`. |1028| `Plugin name cannot contain control or bidirectional-formatting characters` | Ошибка | Удалите символ из имени плагина `name`. |

1029| `Claude Code cannot install plugins from marketplace "<name>". Each part of a plugin id (plugin@marketplace) may use only the letters a-z and A-Z, digits, ".", "_" and "-", and must start with a letter or digit. Change the marketplace's "name".` | Ошибка | Переименуйте маркетплейс в соответствии с правилом, указанным в сообщении. |

1030| `Claude Code cannot install plugin "<name>". Each part of a plugin id (plugin@marketplace) may use only the letters a-z and A-Z, digits, ".", "_" and "-", and must start with a letter or digit. Change this entry's "name".` | Ошибка | Переименуйте запись в соответствии с правилом, указанным в сообщении. |

984| `Marketplace has no plugins defined` | Предупреждение | Добавьте по крайней мере одну запись в `plugins`. |1031| `Marketplace has no plugins defined` | Предупреждение | Добавьте по крайней мере одну запись в `plugins`. |

985| `No marketplace description provided` | Предупреждение | Добавьте описание на уровне верхнего уровня `description`. |1032| `No marketplace description provided` | Предупреждение | Добавьте описание на уровне верхнего уровня `description`. |

986| `Plugin name "<name>" is not kebab-case` в `plugins[N] plugin.json → name` | Предупреждение | Переименуйте в строчные буквы, цифры и дефисы. Claude Code принимает другие формы, но синхронизация маркетплейса claude.ai их отклоняет. |1033| `Plugin name "<name>" is not kebab-case` в `plugins[N] plugin.json → name` | Предупреждение | Переименуйте в строчные буквы, цифры и дефисы; синхронизация маркетплейса claude.ai требует эту форму. |

987| `Entry declares version "<a>" but <path>/plugin.json says "<b>"` | Предупреждение | Обновите запись, чтобы совпадать с `plugin.json`, который является авторитетным во время установки. |1034| `Entry declares version "<a>" but <path>/plugin.json says "<b>"` | Предупреждение | Обновите запись, чтобы совпадать с `plugin.json`, который является авторитетным во время установки. |

988| `Marketplace name "<name>" is reserved in Claude Desktop` | Предупреждение | Переименуйте маркетплейс. Синхронизация управляемого маркетплейса Claude Desktop отклоняет `org`, `org-provisioned` и `unknown` в любом регистре. |1035| `Marketplace name "<name>" is reserved in Claude Desktop` | Предупреждение | Переименуйте маркетплейс. Синхронизация управляемого маркетплейса Claude Desktop отклоняет `org`, `org-provisioned` и `unknown` в любом регистре. |

989| `Marketplace name "<name>" is not accepted by Claude Desktop` или `Plugin name "<name>" is not accepted by Claude Desktop` | Предупреждение | Переименуйте максимум на 128 символов букв, цифр, `.`, `_` и `-`, начиная с буквы или цифры. |1036| `Marketplace name "<name>" is not accepted by Claude Desktop` или `Plugin name "<name>" is not accepted by Claude Desktop` | Предупреждение | Переименуйте максимум на 128 символов букв, цифр, `.`, `_` и `-`, начиная с буквы или цифры. |

Details

412| - | - |412| - | - |

413| `DISABLE_PROMPT_CACHING` | Отключить для всех моделей |413| `DISABLE_PROMPT_CACHING` | Отключить для всех моделей |

414| `DISABLE_PROMPT_CACHING_HAIKU` | Отключить для модели Haiku по умолчанию |414| `DISABLE_PROMPT_CACHING_HAIKU` | Отключить для модели Haiku по умолчанию |

415| `DISABLE_PROMPT_CACHING_SONNET` | Отключить только для Sonnet |415| `DISABLE_PROMPT_CACHING_SONNET` | Отключить для модели Sonnet по умолчанию |

416| `DISABLE_PROMPT_CACHING_OPUS` | Отключить только для Opus |416| `DISABLE_PROMPT_CACHING_OPUS` | Отключить для модели Opus по умолчанию |

417| `DISABLE_PROMPT_CACHING_FABLE` | Отключить только для Fable |417| `DISABLE_PROMPT_CACHING_FABLE` | Отключить только для Fable |

418 418 

419`DISABLE_PROMPT_CACHING_HAIKU` применяется к модели Haiku по умолчанию, модели, на которую разрешается псевдоним `haiku`. Он отключает кеширование везде, где работает эта модель, включая основной диалог, когда это ваша основная модель. Охват основного диалога требует Claude Code версии 2.1.283 или более поздней.419`DISABLE_PROMPT_CACHING_HAIKU` применяется к модели Haiku по умолчанию, модели, на которую разрешается псевдоним `haiku`. Он отключает кеширование везде, где работает эта модель, включая основной диалог, когда это ваша основная модель. Охват основного диалога требует Claude Code версии 2.1.283 или более поздней.


422 422 

423Другая версия Haiku, которую вы закрепляете как вашу основную модель, сохраняет кеширование; установите `DISABLE_PROMPT_CACHING` для отключения кеширования для неё.423Другая версия Haiku, которую вы закрепляете как вашу основную модель, сохраняет кеширование; установите `DISABLE_PROMPT_CACHING` для отключения кеширования для неё.

424 424 

425`DISABLE_PROMPT_CACHING_SONNET` и `DISABLE_PROMPT_CACHING_OPUS` каждый применяется к модели, на которую разрешаются псевдонимы `sonnet` или `opus`. Если вы установите любой другой ID модели Sonnet или Opus как вашу основную модель, эта модель сохраняет кеширование. Например, сеанс на `claude-sonnet-5` сохраняет кеширование, пока `sonnet` разрешается на `claude-sonnet-5-5`. Чтобы отключить кеширование для этой модели, установите `DISABLE_PROMPT_CACHING`.

426 

425Чтобы установить политику кеширования в масштабах организации, поместите любую из этих переменных или [переменные TTL](#cache-lifetime) в блок `env` [управляемых параметров](/docs/ru/managed-settings). Для обычного использования оставьте кеширование включенным.427Чтобы установить политику кеширования в масштабах организации, поместите любую из этих переменных или [переменные TTL](#cache-lifetime) в блок `env` [управляемых параметров](/docs/ru/managed-settings). Для обычного использования оставьте кеширование включенным.

426 428 

427<h2 id="related-resources">429<h2 id="related-resources">

Details

52 52 

53 Процесс продолжает работать в вашем терминале в режиме сервера, ожидая удаленных подключений. Он отображает URL сеанса, который вы можете использовать для [подключения с другого устройства](#connect-from-another-device), и вы можете нажать пробел, чтобы показать QR-код для быстрого доступа с телефона. Пока активен удаленный сеанс, терминал показывает статус подключения и активность инструментов.53 Процесс продолжает работать в вашем терминале в режиме сервера, ожидая удаленных подключений. Он отображает URL сеанса, который вы можете использовать для [подключения с другого устройства](#connect-from-another-device), и вы можете нажать пробел, чтобы показать QR-код для быстрого доступа с телефона. Пока активен удаленный сеанс, терминал показывает статус подключения и активность инструментов.

54 54 

55 Доступные флаги:55 Передавайте любые из этих флагов после `remote-control`:

56 56 

57 | Флаг | Описание |57 | Флаг | Описание |

58 | - | - |58 | - | - |


68 | `-d`, `--debug[=<filter>]` | Включите отладочное логирование для сервера, опционально отфильтрованное по категориям. Передайте фильтр только в форме `=`, например `--debug=api,hooks`. Требуется Claude Code v2.1.282 или позже. |68 | `-d`, `--debug[=<filter>]` | Включите отладочное логирование для сервера, опционально отфильтрованное по категориям. Передайте фильтр только в форме `=`, например `--debug=api,hooks`. Требуется Claude Code v2.1.282 или позже. |

69 | `--debug-file <path>` | Запишите отладочные логи в указанный файл. |69 | `--debug-file <path>` | Запишите отладочные логи в указанный файл. |

70 | `--verbose` | Показывайте подробные логи подключения и сеанса. |70 | `--verbose` | Показывайте подробные логи подключения и сеанса. |

71 | `--sandbox` / `--no-sandbox` | Включите или отключите [изоляцию](/docs/ru/sandboxing) для изоляции файловой системы и сети. По умолчанию отключено. |

72 

73 Передавайте эти флаги после `remote-control`.

74 71 

75 Если вы передадите глобальный флаг `claude` перед `remote-control`, или скрипт-обертка добавит его, Claude Code не переносит флаг в сеансы, которые создает сервер. Claude Code пропускает флаг только когда известно, что его удаление не изменит то, что могут делать эти сеансы, например `--verbose` или `--model`. Для любого другого флага, например `--settings`, Claude Code [отказывается запускаться](/docs/ru/errors#not-carried-over-to-the-sessions-remote-control-starts) и называет флаг для удаления.72 Если вы передадите глобальный флаг `claude` перед `remote-control`, или скрипт-обертка добавит его, Claude Code не переносит флаг в сеансы, которые создает сервер. Claude Code пропускает флаг только когда известно, что его удаление не изменит то, что могут делать эти сеансы, например `--verbose` или `--model`. Для любого другого флага, например `--settings`, Claude Code [отказывается запускаться](/docs/ru/errors#not-carried-over-to-the-sessions-remote-control-starts) и называет флаг для удаления.

76 73 

74 Чтобы изолировать сеансы, которые запускает сервер, включите [изоляцию](/docs/ru/sandboxing) в файле параметров.

75 

77 Claude Code проверяет право на использование Remote Control перед выводом справки, поэтому `claude remote-control --help` возвращает ошибку вместо этого списка флагов, когда вы не вошли с подходящей учетной записью.76 Claude Code проверяет право на использование Remote Control перед выводом справки, поэтому `claude remote-control --help` возвращает ошибку вместо этого списка флагов, когда вы не вошли с подходящей учетной записью.

78 </Tab>77 </Tab>

79 78 


110 109 

111 До тех пор, пока вы не примете одноразовое подтверждение Remote Control, диалог появляется перед подключением `/remote-control`. Выберите **Enable Remote Control**, чтобы принять и подключиться. Если вы выберете **Never mind** или нажмете Esc, Claude Code не подключится и снова спросит при следующем запуске `/remote-control`.110 До тех пор, пока вы не примете одноразовое подтверждение Remote Control, диалог появляется перед подключением `/remote-control`. Выберите **Enable Remote Control**, чтобы принять и подключиться. Если вы выберете **Never mind** или нажмете Esc, Claude Code не подключится и снова спросит при следующем запуске `/remote-control`.

112 111 

113 Флаги `--verbose`, `--sandbox` и `--no-sandbox` недоступны с этой командой.112 Флаг `--verbose` недоступен с этой командой.

114 </Tab>113 </Tab>

115 114 

116 <Tab title="VS Code">115 <Tab title="VS Code">


200 199 

201Тот же переключатель появляется вне CLI:200Тот же переключатель появляется вне CLI:

202 201 

203* **Приложение Desktop**: **Settings > Claude Code > Enable remote control by default**.202* **Приложение Desktop**: **Settings > Claude Code > Connect new sessions to Remote Control**.

204* **Расширение VS Code**: **Enable Remote Control for all sessions** в разделе Settings [меню команд](/docs/ru/vs-code#use-the-prompt-box).203* **Расширение VS Code**: **Enable Remote Control for all sessions** в разделе Settings [меню команд](/docs/ru/vs-code#use-the-prompt-box).

205 204 

206Чтобы вместо этого включить автоподключение из файла параметров, установите [`remoteControlAtStartup`](/docs/ru/settings-reference#remotecontrolatstartup) на `true` в ваш пользовательский файл `~/.claude/settings.json` или в [управляемые параметры](/docs/ru/managed-settings). В параметрах проекта или локальных параметрах (`.claude/settings.json`, `.claude/settings.local.json`), Claude Code соблюдает `false` и отключает автоподключение для этого репозитория, но игнорирует `true`, поэтому проверенный файл не может включить Remote Control для всех, кто открывает репозиторий.205Чтобы вместо этого включить автоподключение из файла параметров, установите [`remoteControlAtStartup`](/docs/ru/settings-reference#remotecontrolatstartup) на `true` в ваш пользовательский файл `~/.claude/settings.json` или в [управляемые параметры](/docs/ru/managed-settings). В параметрах проекта или локальных параметрах (`.claude/settings.json`, `.claude/settings.local.json`), Claude Code соблюдает `false` и отключает автоподключение для этого репозитория, но игнорирует `true`, поэтому проверенный файл не может включить Remote Control для всех, кто открывает репозиторий.

routines.md +69 −59

Details

66 66 

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

68 68 

69Рутины принадлежат вашему индивидуальному аккаунту claude.ai. Они не совместно используются с товарищами по команде и учитываются в дневном лимите запусков вашего аккаунта. Все, что рутина делает через вашу подключенную идентификацию GitHub или коннекторы, отображается как вы: коммиты и pull request несут вашего пользователя GitHub, а сообщения Slack, задачи Linear или другие действия коннектора используют ваши связанные аккаунты для этих сервисов.69Рутины принадлежат вашему индивидуальному аккаунту claude.ai. Они не совместно используются с товарищами по команде и их запуски учитываются в [использовании и лимитах](#usage-and-limits) вашего аккаунта. Все, что рутина делает через вашу подключенную идентификацию GitHub или коннекторы, отображается как вы: коммиты и pull request несут вашего пользователя GitHub, а сообщения Slack, задачи Linear или другие действия коннектора используют ваши связанные аккаунты для этих сервисов.

70 70 

71<h3 id="create-from-the-web">71<h3 id="create-from-the-web">

72 Создание из веб-версии72 Создание из веб-версии


144 Настройка триггеров144 Настройка триггеров

145</h2>145</h2>

146 146 

147Рутина запускается, когда один из ее триггеров совпадает. Вы можете присоединить любую комбинацию триггеров расписания, API и GitHub к одной рутине и добавлять или удалять их в любое время из раздела **Select a trigger** формы редактирования рутины.147Рутина запускается, когда срабатывает один из её триггеров. Вы можете прикрепить любую комбинацию триггеров расписания, API и GitHub к одной и той же рутине и добавлять или удалять их в любое время из раздела **Select a trigger** формы редактирования рутины.

148 148 

149<h3 id="add-a-schedule-trigger">149<h3 id="add-a-schedule-trigger">

150 Добавление триггера расписания150 Добавить триггер расписания

151</h3>151</h3>

152 152 

153Триггер расписания запускает рутину по повторяющемуся расписанию или один раз в определенное будущее время. Выберите предустановленную частоту в разделе **Select a trigger**: ежечасно, ежедневно, по рабочим дням или еженедельно. Времена вводятся в вашем локальном часовом поясе и преобразуются автоматически, поэтому рутина запускается в это время независимо от того, где находится облачная инфраструктура.153Триггер расписания запускает рутину по повторяющемуся графику или один раз в определённое будущее время. Выберите предустановленную частоту в разделе **Select a trigger**: ежечасно, ежедневно, по будням или еженедельно. Время вводится в вашем локальном часовом поясе и автоматически преобразуется, поэтому рутина запускается в это время независимо от того, где находится облачная инфраструктура.

154 154 

155Если вы запланируете запуск ровно в час, например в 9:00, он может начаться на несколько минут позже. Чтобы начать близко к запланированному времени, выберите несколько минут после часа, например 9:07.155Если вы запланируете запуск ровно в час, например в 9:00, он может начаться с опозданием на несколько минут. Чтобы начать близко к запланированному времени, выберите несколько минут после часа, например 9:07.

156 156 

157Для пользовательского интервала, такого как каждые два часа или первое число каждого месяца, выберите ближайшую предустановку в форме, затем запустите `/schedule update` в CLI, чтобы установить конкретное выражение cron. Минимальный интервал — один час; выражения, которые запускаются чаще, отклоняются.157Для пользовательского интервала, такого как каждые два часа или первое число каждого месяца, выберите ближайший предустановленный вариант в форме, затем запустите `/schedule update` в CLI, чтобы установить конкретное выражение cron. Минимальный интервал — один час; выражения, которые выполняются чаще, отклоняются.

158 158 

159<h4 id="schedule-a-one-off-run">159<h4 id="schedule-a-one-off-run">

160 Планирование одноразового запуска160 Запланировать одноразовый запуск

161</h4>161</h4>

162 162 

163Одноразовое расписание запускает рутину один раз в определенный момент времени. Используйте его, чтобы напомнить себе позже на неделе, открыть PR очистки после завершения развертывания или запустить последующую задачу, когда приходит изменение вышестоящего уровня. После запуска рутины она автоматически отключается, и веб-интерфейс отмечает ее как **Ran**. Чтобы запустить ее снова, отредактируйте рутину и установите новое одноразовое время.163Одноразовое расписание запускает рутину один раз в определённый момент времени. Используйте его, чтобы напомнить себе позже на неделе, открыть PR очистки после завершения развёртывания или запустить последующую задачу после поступления изменения из вышестоящего источника. После запуска рутины она автоматически отключается, а веб-интерфейс отмечает её как **Ran**. Чтобы запустить её снова, отредактируйте рутину и установите новое одноразовое время.

164 164 

165Создайте одноразовый запуск из CLI, описав время на естественном языке. Claude разрешает фразу относительно текущего времени и подтверждает абсолютный момент времени перед сохранением.165Создайте одноразовый запуск из CLI, описав время на естественном языке. Claude разрешает фразу относительно текущего времени и подтверждает абсолютную временную метку перед сохранением.

166 166 

167```text theme={null}167```text theme={null}

168/schedule tomorrow at 9am, summarize yesterday's merged PRs168/schedule tomorrow at 9am, summarize yesterday's merged PRs


172/schedule in 2 weeks, open a cleanup PR that removes the feature flag172/schedule in 2 weeks, open a cleanup PR that removes the feature flag

173```173```

174 174 

175То же преобразование локального времени в UTC, что и для повторяющихся расписаний, применяется к одноразовым меткам времени.175То же преобразование из локального времени в UTC, что и для повторяющихся расписаний, применяется к одноразовым временным меткам.

176 176 

177Одноразовые запуски не учитываются в дневном лимите запусков рутины. Смотрите [Usage and limits](#usage-and-limits) для подробностей.177Одноразовые запуски учитываются в том же почасовом лимите, что и другие запланированные запуски. Подробности см. в разделе [Usage and limits](#usage-and-limits).

178 178 

179<h3 id="add-an-api-trigger">179<h3 id="add-an-api-trigger">

180 Добавление триггера API180 Добавить триггер API

181</h3>181</h3>

182 182 

183Триггер API дает рутине выделенную конечную точку HTTP. POST на конечную точку с токеном-носителем рутины запускает новый сеанс и возвращает URL сеанса. Используйте это для подключения Claude Code к системам оповещений, конвейерам развертывания, внутренним инструментам или везде, где вы можете сделать аутентифицированный HTTP запрос.183Триггер API предоставляет рутине выделенную конечную точку HTTP. Отправка POST-запроса на конечную точку с токеном-носителем рутины запускает новый сеанс и возвращает URL сеанса. Используйте это для интеграции Claude Code в системы оповещений, конвейеры развёртывания, внутренние инструменты или в любое место, где вы можете сделать аутентифицированный HTTP-запрос.

184 184 

185Триггеры API добавляются к существующей рутине из веб-версии. CLI в настоящее время не может создавать или отзывать токены.185Триггеры API добавляются к существующей рутине из веб-интерфейса. CLI в настоящее время не может создавать или отзывать токены.

186 186 

187<Steps>187<Steps>

188 <Step title="Откройте рутину для редактирования">188 <Step title="Open the routine for editing">

189 Перейдите на [claude.ai/code/routines](https://claude.ai/code/routines), нажмите рутину, которую вы хотите запустить через API, затем откройте меню рядом с названием рутины и выберите **Edit**.189 Перейдите на [claude.ai/code/routines](https://claude.ai/code/routines), нажмите на рутину, которую вы хотите запустить через API, затем откройте меню рядом с названием рутины и выберите **Edit**.

190 </Step>190 </Step>

191 191 

192 <Step title="Добавьте триггер API">192 <Step title="Add an API trigger">

193 Прокрутите до раздела **Select a trigger** ниже подсказки, нажмите **Add another trigger** и выберите **API**.193 Прокрутите до раздела **Select a trigger** ниже поля **Instructions**, нажмите **Add another trigger** и выберите **API**.

194 </Step>194 </Step>

195 195 

196 <Step title="Скопируйте URL и сгенерируйте токен">196 <Step title="Copy the URL and generate a token">

197 Модальное окно показывает URL для этой рутины вместе с примером команды curl. Скопируйте URL, затем нажмите **Generate token** и сразу же скопируйте токен. Токен показывается один раз и не может быть получен позже, поэтому сохраните его в безопасном месте, таком как хранилище секретов вашего инструмента оповещений.197 Модальное окно показывает URL для этой рутины вместе с примером команды curl. Скопируйте URL, затем нажмите **Generate token** и сразу же скопируйте токен. Токен показывается один раз и не может быть получен позже, поэтому сохраните его в безопасном месте, например в хранилище секретов вашего инструмента оповещений.

198 </Step>198 </Step>

199 199 

200 <Step title="Вызовите конечную точку">200 <Step title="Call the endpoint">

201 Отправьте токен в заголовке `Authorization: Bearer` при POST на URL. Раздел [Trigger a routine](#trigger-a-routine) ниже показывает полный пример.201 Отправьте токен в заголовке `Authorization: Bearer` при отправке POST-запроса на URL. Раздел [Trigger a routine](#trigger-a-routine) ниже показывает полный пример.

202 </Step>202 </Step>

203</Steps>203</Steps>

204 204 

205Каждая рутина имеет свой токен, ограниченный только запуском этой рутины. Чтобы повернуть или отозвать его, вернитесь в то же модальное окно и нажмите **Regenerate** или **Revoke**.205Каждая рутина имеет свой токен, ограниченный только запуском этой рутины. Чтобы ротировать или отозвать его, вернитесь в то же модальное окно и нажмите **Regenerate** или **Revoke**.

206 206 

207<h4 id="trigger-a-routine">207<h4 id="trigger-a-routine">

208 Запуск рутины208 Запустить рутину

209</h4>209</h4>

210 210 

211Отправьте POST запрос на конечную точку `/fire` с токеном-носителем в заголовке `Authorization`. Тело запроса принимает дополнительное поле `text` для контекста, специфичного для запуска, такого как тело оповещения или неудачный журнал, переданное рутине вместе с ее сохраненной подсказкой. Значение — это свободный текст и не анализируется: если вы отправляете JSON или другую структурированную полезную нагрузку, рутина получает ее как буквальную строку.211Отправьте POST-запрос на конечную точку `/fire` с токеном-носителем в заголовке `Authorization`. Тело запроса принимает необязательное поле `text` для контекста, специфичного для запуска, такого как тело оповещения или неудачный журнал, передаваемое рутине вместе с её сохранённым приглашением. Значение — это свободный текст и не анализируется: если вы отправите JSON или другую структурированную полезную нагрузку, рутина получит её как буквальную строку.

212 212 

213Значение `text` не достигает рутину как простое сообщение. Оно приходит завернутым в блок `<routine-fire-payload>`, который помечает его как ненадежные данные и говорит Claude не следовать инструкциям внутри него, если только собственная подсказка рутины не говорит об этом. То же самое обертывание применяется к тексту, предоставленному с помощью **Run now** в веб-интерфейсе.213Значение `text` не достигает рутину как простое сообщение. Оно приходит завёрнутым в блок `<routine-fire-payload>`, который помечает его как недоверенные данные и говорит Claude не следовать инструкциям внутри него, если собственное приглашение рутины не говорит об этом. То же самое завёртывание применяется к тексту, предоставленному с помощью **Run now** в веб-интерфейсе.

214 214 

215Это означает, что сохраненная подсказка рутины должна явно согласиться действовать на текст fire: напишите подсказку, чтобы явно ссылаться на полезную нагрузку, например "Investigate the alert described in the routine-fire-payload block", или рутина будет рассматривать текст как инертный контекст. Любой, кто держит токен-носитель, может отправить `text`, поэтому обертка делает текст fire из утекшего токена помеченным как ненадежные данные, а не как прямые инструкции вашей рутине.215Это означает, что сохранённое приглашение рутины должно явно согласиться на действие с текстом fire: напишите приглашение для ссылки на полезную нагрузку явно, например «Investigate the alert described in the routine-fire-payload block», или рутина будет рассматривать текст как инертный контекст. Любой, кто держит токен-носитель, может отправить `text`, поэтому обёртка делает текст fire из утёкшего токена помеченным как недоверенные данные, а не как прямые инструкции для вашей рутины.

216 216 

217Пример ниже запускает рутину из shell. ID рутины и токен, показанные здесь, являются заполнителями: замените их на URL и токен, которые вы скопировали при [добавлении триггера API](#add-an-api-trigger), или запрос завершится с ошибкой аутентификации `401`:217Пример ниже запускает рутину из оболочки. ID рутины и показанный токен — это заполнители: замените их на URL и токен, которые вы скопировали при [добавлении триггера API](#add-an-api-trigger), или запрос завершится с ошибкой аутентификации `401`:

218 218 

219```bash theme={null}219```bash theme={null}

220curl -X POST https://api.anthropic.com/v1/claude_code/routines/trig_01ABCDEFGHJKLMNOPQRSTUVW/fire \220curl -X POST https://api.anthropic.com/v1/claude_code/routines/trig_01ABCDEFGHJKLMNOPQRSTUVW/fire \


235}235}

236```236```

237 237 

238Откройте URL сеанса в браузере, чтобы наблюдать запуск в реальном времени, проверить изменения или продолжить разговор вручную.238Откройте URL сеанса в браузере, чтобы наблюдать за запуском в реальном времени, просмотреть изменения или продолжить разговор вручную.

239 239 

240<Warning>240<Warning>

241 Конечная точка `/fire` поставляется под заголовком бета-версии `experimental-cc-routine-2026-04-01`. Формы запроса и ответа, ограничения скорости и семантика токенов могут измениться, пока функция находится в исследовательском предпросмотре. Критические изменения поставляются за новыми версиями заголовка бета-версии с датой, и две самые последние предыдущие версии заголовка продолжают работать, чтобы у вызывающих было время для миграции.241 Конечная точка `/fire` поставляется под заголовком бета-версии `experimental-cc-routine-2026-04-01`. Формы запроса и ответа, ограничения скорости и семантика токенов могут измениться, пока функция находится в исследовательском предпросмотре. Критические изменения поставляются за новыми версиями заголовка бета-версии с датой, и две самые последние предыдущие версии заголовка продолжают работать, чтобы у вызывающих было время для миграции.


245 Справочник API245 Справочник API

246</h4>246</h4>

247 247 

248Для полного справочника API, включая все ответы об ошибках, правила валидации и ограничения полей, смотрите [Trigger a routine via API](https://platform.claude.com/docs/en/api/claude-code/routines-fire) в документации Claude Platform.248Для полного справочника API, включая все ответы об ошибках, правила валидации и ограничения полей, см. [Trigger a routine via API](https://platform.claude.com/docs/en/api/claude-code/routines-fire) в документации Claude Platform.

249 249 

250Конечная точка `/fire` доступна только пользователям claude.ai и не является частью поверхности Claude Platform API.250Конечная точка `/fire` доступна только пользователям claude.ai и не является частью поверхности Claude Platform API.

251 251 

252<h3 id="add-a-github-trigger">252<h3 id="add-a-github-trigger">

253 Добавление триггера GitHub253 Добавить триггер GitHub

254</h3>254</h3>

255 255 

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

257 257 

258<Note>258<Note>

259 Во время исследовательского предпросмотра события вебхука GitHub подлежат ограничениям в час для каждой рутины и для каждого аккаунта. События сверх лимита отбрасываются до сброса окна. Смотрите ваши текущие ограничения на [claude.ai/code/routines](https://claude.ai/code/routines).259 События вебхука GitHub подлежат почасовым ограничениям для каждой рутины и для каждого аккаунта. События сверх лимита отбрасываются до сброса окна.

260</Note>260</Note>

261 261 

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

263 263 

264* Настраивайте триггеры GitHub из веб-интерфейса, который предложит вам установить приложение, если оно отсутствует. Следуйте шагам ниже, чтобы настроить его из веб-версии.264* Настраивайте триггеры GitHub из веб-интерфейса, который предложит вам установить приложение, если оно отсутствует. Следуйте приведённым ниже шагам для настройки одного из веб-интерфейса.

265* Из CLI сначала установите приложение со [страницы GitHub App](https://github.com/apps/claude), затем попросите Claude присоединить триггер GitHub к существующей рутине, например `/schedule add a GitHub trigger to my nightly review for pull requests opened in acme/webapp`. Путь CLI требует Claude Code v2.1.225 или позже. Когда Claude добавляет триггер, он отвечает ссылкой на рутину, которую запускает триггер.265* Из CLI установите приложение со [страницы GitHub App](https://github.com/apps/claude) сначала, затем попросите Claude прикрепить триггер GitHub к существующей рутине, например `/schedule add a GitHub trigger to my nightly review for pull requests opened in acme/webapp`. Путь CLI требует Claude Code v2.1.225 или позже. Когда Claude добавляет триггер, он отвечает ссылкой на рутину, которую запускает триггер.

266 266 

267<Steps>267<Steps>

268 <Step title="Откройте рутину для редактирования">268 <Step title="Open the routine for editing">

269 Перейдите на [claude.ai/code/routines](https://claude.ai/code/routines), нажмите рутину, затем откройте меню рядом с названием рутины и выберите **Edit**.269 Перейдите на [claude.ai/code/routines](https://claude.ai/code/routines), нажмите на рутину, затем откройте меню рядом с названием рутины и выберите **Edit**.

270 </Step>270 </Step>

271 271 

272 <Step title="Добавьте триггер события GitHub">272 <Step title="Add a GitHub event trigger">

273 Прокрутите до раздела **Select a trigger**, нажмите **Add another trigger** и выберите **GitHub event**.273 Прокрутите до раздела **Select a trigger**, нажмите **Add another trigger** и выберите **GitHub event**.

274 274 

275 <Note>275 <Note>


277 </Note>277 </Note>

278 </Step>278 </Step>

279 279 

280 <Step title="Настройте триггер">280 <Step title="Configure the trigger">

281 Выберите репозиторий, выберите событие из списка [supported events](#supported-events) и дополнительно добавьте фильтры. Сохраните триггер.281 Выберите репозиторий, выберите событие из списка [supported events](#supported-events) и при необходимости добавьте фильтры. Сохраните триггер.

282 </Step>282 </Step>

283</Steps>283</Steps>

284 284 


288 288 

289Триггеры GitHub могут подписаться на одну из следующих категорий событий. В каждой категории вы можете выбрать конкретное действие, такое как `pull_request.opened`, или реагировать на все действия в категории.289Триггеры GitHub могут подписаться на одну из следующих категорий событий. В каждой категории вы можете выбрать конкретное действие, такое как `pull_request.opened`, или реагировать на все действия в категории.

290 290 

291| Событие | Срабатывает когда |291| Event | Triggers when |

292| :- | :- |292| :- | :- |

293| Pull request | PR открыт, закрыт, назначен, помечен, синхронизирован или иным образом обновлен |293| Pull request | PR открывается, закрывается, назначается, помечается меткой, синхронизируется или иным образом обновляется |

294| Release | Релиз создан, опубликован, отредактирован или удален |294| Release | Выпуск создаётся, публикуется, редактируется или удаляется |

295 295 

296<h4 id="filter-pull-requests">296<h4 id="filter-pull-requests">

297 Фильтрация pull request297 Фильтровать pull requests

298</h4>298</h4>

299 299 

300Используйте фильтры, чтобы сузить, какие pull request запускают новый сеанс. Все условия фильтра должны совпадать, чтобы рутина сработала. Доступные поля фильтра:300Используйте фильтры, чтобы сузить, какие pull requests запускают новый сеанс. Все условия фильтра должны совпадать, чтобы рутина сработала. Доступные поля фильтра:

301 301 

302| Фильтр | Совпадает |302| Filter | Matches |

303| :- | :- |303| :- | :- |

304| Author | Имя пользователя GitHub автора PR |304| Author | Имя пользователя GitHub автора PR |

305| Title | Текст заголовка PR |305| Title | Текст заголовка PR |

306| Body | Текст описания PR |306| Body | Текст описания PR |

307| Base branch | Ветвь, на которую нацелен PR |307| Base branch | Ветка, на которую нацелен PR |

308| Head branch | Ветвь, из которой исходит PR |308| Head branch | Ветка, из которой поступает PR |

309| Labels | Метки, применяемые к PR |309| Labels | Метки, применённые к PR |

310| Is draft | Находится ли PR в черновом состоянии |310| Is draft | Находится ли PR в состоянии черновика |

311| Is merged | Был ли PR объединен |311| Is merged | Был ли PR объединён |

312 312 

313Каждый фильтр сочетает поле с оператором: equals, contains, starts with, is one of, is not one of или matches regex.313Каждый фильтр связывает поле с оператором: equals, contains, starts with, is one of, is not one of или matches regex.

314 314 

315Оператор `matches regex` проверяет все значение поля, а не подстроку в нем. Чтобы совпадать с любым заголовком, содержащим `hotfix`, напишите `.*hotfix.*`. Без окружающих `.*`, фильтр совпадает только с заголовком, который точно `hotfix` без ничего до или после. Для буквального совпадения подстроки без синтаксиса regex используйте оператор `contains` вместо этого.315Оператор `matches regex` проверяет всё значение поля, а не подстроку внутри него. Чтобы совпадать с любым заголовком, содержащим `hotfix`, напишите `.*hotfix.*`. Без окружающего `.*` фильтр совпадает только с заголовком, который точно `hotfix` без чего-либо до или после. Для буквального совпадения подстроки без синтаксиса regex используйте оператор `contains`.

316 316 

317Несколько примеров комбинаций фильтров:317Несколько примеров комбинаций фильтров:

318 318 

319* **Auth module review**: base branch `main`, head branch contains `auth-provider`. Отправляет любой PR, который касается аутентификации, сосредоточенному рецензенту.319* **Auth module review**: base branch `main`, head branch contains `auth-provider`. Отправляет любой PR, который касается аутентификации, сосредоточенному рецензенту.

320* **Ready-for-review only**: is draft is `false`. Пропускает черновики, поэтому рутина запускается только, когда PR готов к проверке.320* **Ready-for-review only**: is draft is `false`. Пропускает черновики, поэтому рутина запускается только, когда PR готов к рецензированию.

321* **Label-gated backport**: labels include `needs-backport`. Запускает рутину портирования в другую ветвь только, когда мейнтейнер помечает PR.321* **Label-gated backport**: labels include `needs-backport`. Запускает рутину port-to-another-branch только, когда мейнтейнер помечает PR.

322 322 

323<h2 id="manage-routines">323<h2 id="manage-routines">

324 Управление рутинами324 Управление рутинами


421 Использование и ограничения421 Использование и ограничения

422</h2>422</h2>

423 423 

424Рутины снижают использование подписки так же, как интерактивные сеансы. В дополнение к стандартным ограничениям подписки, рутины имеют дневной лимит на количество запусков, которые могут начаться на аккаунт. Смотрите ваше текущее потребление и оставшиеся дневные запуски рутин на [claude.ai/code/routines](https://claude.ai/code/routines) или [claude.ai/settings/usage](https://claude.ai/settings/usage).424Рутины снижают использование подписки так же, как интерактивные сеансы. Смотрите ваше текущее потребление на [claude.ai/settings/usage](https://claude.ai/settings/usage).

425 

426Отдельно от использования подписки, каждый способ запуска имеет почасовой лимит:

427 

428| Действие | Лимит | Учитывается для | Превышение лимита |

429| :- | :- | :- | :- |

430| Запланированные запуски, включая одноразовые запуски | 100 в час | Ваш аккаунт | Запуск ждет до сброса лимита |

431| **Run now**, срабатывания API и установка одноразовой рутины на повторный запуск | 30 в час | Каждая рутина, один счетчик, общий для всех трех | Действие не выполняется до сброса лимита |

432| **Run now** и установка одноразовой рутины на повторный запуск | 100 в час | Ваш аккаунт | То же самое |

433| Срабатывания API | 100 в час | Ваш аккаунт, учитывается отдельно от **Run now** | То же самое |

434| События GitHub | Смотрите [Add a GitHub trigger](#add-a-github-trigger) | | |

425 435 

426Когда рутина достигает дневного лимита или лимита использования вашей подписки, организации с включенными кредитами использования могут продолжать запускать рутины на измеренный перерасход. Без кредитов использования дополнительные запуски отклоняются до сброса окна. Включите кредиты использования на [claude.ai/settings/usage](https://claude.ai/settings/usage). На планах Team и Enterprise администратор включает их для организации на [claude.ai/admin-settings/usage](https://claude.ai/admin-settings/usage).436Ни один из этих почасовых лимитов не имеет перерасхода.

427 437 

428Разовые запуски не учитываются в дневном лимите рутин. Они снижают ваше обычное использование подписки как любой другой сеанс.438Когда рутина достигает лимита использования вашей подписки, организации с включенными кредитами использования могут продолжать запускать рутины на измеренный перерасход. Без кредитов использования дополнительные запуски отклоняются до сброса окна использования. Включите кредиты использования на [claude.ai/settings/usage](https://claude.ai/settings/usage). На планах Team и Enterprise администратор включает их для организации на [claude.ai/admin-settings/usage](https://claude.ai/admin-settings/usage).

429 439 

430Пока ваша подписка приостановлена, ваши рутины ставятся на паузу и не запускаются. Как только ваша подписка снова активна, включите их обратно.440Пока ваша подписка приостановлена, ваши рутины ставятся на паузу и не запускаются. Как только ваша подписка снова активна, включите их обратно.

431 441 

Details

138* В корне проекта среда выполнения запрещает `.git/hooks`, запрещает `.git/config`, если вы не установите `filesystem.allowGitConfig: true`, и запрещает `.mcp.json`, `.claude/commands`, `.claude/agents` и файлы запуска оболочки.138* В корне проекта среда выполнения запрещает `.git/hooks`, запрещает `.git/config`, если вы не установите `filesystem.allowGitConfig: true`, и запрещает `.mcp.json`, `.claude/commands`, `.claude/agents` и файлы запуска оболочки.

139* На macOS эти запреты проверяются при выполнении записи, поэтому они также охватывают вложенные файлы и репозитории, созданные во время сеанса.139* На macOS эти запреты проверяются при выполнении записи, поэтому они также охватывают вложенные файлы и репозитории, созданные во время сеанса.

140* На Linux и WSL2 среда выполнения создает список запретов один раз при запуске. Она надежно охватывает корень проекта, выполняет поверхностное сканирование вложенных копий, которые существуют в этот момент, и не охватывает ничего, что сеанс создает позже, например `git init`, `git clone` или scaffolding. Раздел `mandatoryDenySearchDepth` в README описывает точную семантику сканирования.140* На Linux и WSL2 среда выполнения создает список запретов один раз при запуске. Она надежно охватывает корень проекта, выполняет поверхностное сканирование вложенных копий, которые существуют в этот момент, и не охватывает ничего, что сеанс создает позже, например `git init`, `git clone` или scaffolding. Раздел `mandatoryDenySearchDepth` в README описывает точную семантику сканирования.

141* Без действительного `~/.srt-settings.json` среда выполнения все равно запускается, блокирует доступ в сеть и ограничивает запись встроенными путями среды выполнения, такими как `/tmp/claude`, `~/.npm/_logs` и `~/.claude/debug`. Не принимайте чистый старт как доказательство того, что ваши параметры загрузились.141* Если `~/.srt-settings.json` не существует и вы не передаете `--settings`, среда выполнения все равно запускается. Она блокирует доступ в сеть и ограничивает запись встроенными путями среды выполнения, такими как `/tmp/claude`, `~/.npm/_logs` и `~/.claude/debug`. Не принимайте чистый старт как доказательство того, что ваши параметры загрузились.

142* Когда вы передаете `--settings`, среда выполнения отказывается запускаться, если файл не загружается.142* Если файл параметров существует, но пуст, нечитаем или недействителен, среда выполнения отказывается запускаться, независимо от того, это `~/.srt-settings.json` или файл, который вы передаете с `--settings`. Она также отказывается запускаться, если файл `--settings` не существует.

143 143 

144Ваши разрешения на запись по-прежнему включают другие пути, из которых Claude Code загружает конфигурацию, поэтому запретите их с помощью `denyWrite`. Изолированный сеанс, который может их записывать, может сохранять hooks, правила разрешений или серверы MCP, которые запускаются без изоляции при следующем запуске Claude Code.144Ваши разрешения на запись по-прежнему включают другие пути, из которых Claude Code загружает конфигурацию, поэтому запретите их с помощью `denyWrite`. Изолированный сеанс, который может их записывать, может сохранять hooks, правила разрешений или серверы MCP, которые запускаются без изоляции при следующем запуске Claude Code.

145 145 

Details

8 8 

9Запланированные задачи позволяют Claude автоматически повторно запускать подсказку через определённый интервал. Используйте их для опроса развёртывания, контроля pull request, проверки долгоживущей сборки или напоминания себе о чём-то позже в сеансе. Чтобы реагировать на события по мере их возникновения вместо опроса, см. [Channels](/docs/ru/channels): ваш CI может отправить сбой непосредственно в сеанс. Чтобы продолжить работу сеанса от одного хода к другому до выполнения условия, а не через интервал, см. [`/goal`](/docs/ru/goal).9Запланированные задачи позволяют Claude автоматически повторно запускать подсказку через определённый интервал. Используйте их для опроса развёртывания, контроля pull request, проверки долгоживущей сборки или напоминания себе о чём-то позже в сеансе. Чтобы реагировать на события по мере их возникновения вместо опроса, см. [Channels](/docs/ru/channels): ваш CI может отправить сбой непосредственно в сеанс. Чтобы продолжить работу сеанса от одного хода к другому до выполнения условия, а не через интервал, см. [`/goal`](/docs/ru/goal).

10 10 

11Задачи привязаны к сеансу: они существуют в текущем разговоре и останавливаются при запуске нового. Возобновление с помощью `--resume` или `--continue` восстанавливает задачи, которые не [истекли](#seven-day-expiry), за исключением перечисленных в разделе [Limitations](#limitations). Для планирования, которое сохраняется независимо от любого сеанса, используйте [Routines](/docs/ru/routines) для создания процедуры на облаке, установите [Desktop запланированные задачи](/docs/ru/desktop-scheduled-tasks) или используйте [GitHub Actions](/docs/ru/github-actions).11Задачи привязаны к сеансу. При возобновлении с помощью `--resume` или `--continue` Claude Code восстанавливает задачи, которые не [истекли](#seven-day-expiry), за исключением перечисленных в разделе [Limitations](#limitations). Для планирования, которое сохраняется независимо от любого сеанса, используйте [Routines](/docs/ru/routines) для создания процедуры на облаке, установите [Desktop запланированные задачи](/docs/ru/desktop-scheduled-tasks) или используйте [GitHub Actions](/docs/ru/github-actions).

12 12 

13<h2 id="compare-scheduling-options">13<h2 id="compare-scheduling-options">

14 Сравните варианты планирования14 Сравните варианты планирования


237 237 

238* Задачи срабатывают только во время работы Claude Code и в режиме ожидания. Закрытие терминала или выход из сеанса отменяет всё. [Перемещение сеанса в фоновый режим](/docs/ru/agent-view#from-inside-a-session) переносит задачи `/loop` в фоновый сеанс, который продолжает работать без терминала.238* Задачи срабатывают только во время работы Claude Code и в режиме ожидания. Закрытие терминала или выход из сеанса отменяет всё. [Перемещение сеанса в фоновый режим](/docs/ru/agent-view#from-inside-a-session) переносит задачи `/loop` в фоновый сеанс, который продолжает работать без терминала.

239* Нет наверстывания пропущенных срабатываний. Если запланированное время задачи проходит, пока Claude занят долгоживущим запросом, она срабатывает один раз, когда Claude становится свободным, а не один раз за каждый пропущенный интервал.239* Нет наверстывания пропущенных срабатываний. Если запланированное время задачи проходит, пока Claude занят долгоживущим запросом, она срабатывает один раз, когда Claude становится свободным, а не один раз за каждый пропущенный интервал.

240* Запуск нового разговора очищает все задачи, привязанные к сеансу. Возобновление с помощью `claude --resume` или `claude --continue` восстанавливает задачи, запланированные с помощью `CronCreate`, за исключением повторяющихся задач, которые [истекли](#seven-day-expiry), и одноразовых задач, чьё запланированное время уже прошло. Самостоятельный `/loop` [не восстанавливается](#let-claude-choose-the-interval), поэтому запустите `/loop` снова, чтобы перезапустить его. Фоновые задачи Bash и monitor никогда не восстанавливаются при возобновлении.240* Когда вы возобновляете сеанс с помощью `claude --resume` или `claude --continue`, Claude Code восстанавливает задачи, запланированные с помощью `CronCreate`, за исключением повторяющихся задач, которые [истекли](#seven-day-expiry), и одноразовых задач, чьё запланированное время уже прошло. Самостоятельный `/loop` [не восстанавливается](#let-claude-choose-the-interval), поэтому запустите `/loop` снова, чтобы перезапустить его. Фоновые задачи Bash и monitor никогда не восстанавливаются при возобновлении.

241* С [отключённой загрузкой флагов функций](/docs/ru/env-vars#features-that-need-feature-flag-fetching) Claude Code сохраняет задачу, которую вы попросили сохранить между сеансами, в файле `.claude/scheduled_tasks.json` проекта. Когда директория `.claude` или этот файл является символической ссылкой, Claude Code возвращает ошибку вместо планирования задачи. Сохранённая задача запускается только в папке проекта, где вы её создали. Если вы скопируете файл в другую папку, например в новый worktree, сеансы там будут отображать скопированные задачи, но не будут их запускать, поэтому создайте задачу снова в этой папке.241* С [отключённой загрузкой флагов функций](/docs/ru/env-vars#features-that-need-feature-flag-fetching) Claude Code сохраняет задачу, которую вы попросили сохранить между сеансами, в файле `.claude/scheduled_tasks.json` проекта. Когда директория `.claude` или этот файл является символической ссылкой, Claude Code возвращает ошибку вместо планирования задачи. Сохранённая задача запускается только в папке проекта, где вы её создали. Если вы скопируете файл в другую папку, например в новый worktree, сеансы там будут отображать скопированные задачи, но не будут их запускать, поэтому создайте задачу снова в этой папке.

242 242 

243Для автоматизации, управляемой cron, которая должна работать без присмотра:243Для автоматизации, управляемой cron, которая должна работать без присмотра:

Details

48* **Zero Data Retention**: недоступно для организаций с включенным [Zero Data Retention](/docs/ru/zero-data-retention).48* **Zero Data Retention**: недоступно для организаций с включенным [Zero Data Retention](/docs/ru/zero-data-retention).

49* **Model inference**: сеансы используют Anthropic API, и вывод не может быть маршрутизирован через [Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry](/docs/ru/third-party-integrations) или [LLM gateway](/docs/ru/llm-gateway).49* **Model inference**: сеансы используют Anthropic API, и вывод не может быть маршрутизирован через [Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry](/docs/ru/third-party-integrations) или [LLM gateway](/docs/ru/llm-gateway).

50* **Surfaces**: сеансы, запущенные из [claude.ai/code](https://claude.ai/code), мобильных и настольных приложений, [запланированных процедур](/docs/ru/routines) и терминала с [`claude --cloud`](/docs/ru/claude-code-on-the-web#from-terminal-to-cloud) или [`--environment` dispatch](/docs/ru/self-hosted-environments-testing#run-the-test-loop), могут работать в самостоятельно размещаемых окружениях. Сеансы [Claude Tag](https://claude.com/docs/claude-tag/overview) могут работать в них тоже, но Claude не может использовать [Access bundles](https://claude.com/docs/claude-tag/concepts/glossary#access-bundle) в этих сеансах еще. Сеансы [Claude Security](/docs/ru/claude-security) и [Code Review](/docs/ru/code-review) еще не маршрутизируются на них. Поддержка этих двух поверхностей следует отдельно.50* **Surfaces**: сеансы, запущенные из [claude.ai/code](https://claude.ai/code), мобильных и настольных приложений, [запланированных процедур](/docs/ru/routines) и терминала с [`claude --cloud`](/docs/ru/claude-code-on-the-web#from-terminal-to-cloud) или [`--environment` dispatch](/docs/ru/self-hosted-environments-testing#run-the-test-loop), могут работать в самостоятельно размещаемых окружениях. Сеансы [Claude Tag](https://claude.com/docs/claude-tag/overview) могут работать в них тоже, но Claude не может использовать [Access bundles](https://claude.com/docs/claude-tag/concepts/glossary#access-bundle) в этих сеансах еще. Сеансы [Claude Security](/docs/ru/claude-security) и [Code Review](/docs/ru/code-review) еще не маршрутизируются на них. Поддержка этих двух поверхностей следует отдельно.

51* **Repositories**: сеансы проверяют репозитории из GitHub; смотрите [Варианты аутентификации GitHub](/docs/ru/claude-code-on-the-web#github-authentication-options).51* **Repositories**: сеансы проверяют репозитории из GitHub; смотрите [Варианты аутентификации GitHub](/docs/ru/claude-code-on-the-web#github-authentication-options). Для хоста GitHub Enterprise Server смотрите его [требования к сети](/docs/ru/github-enterprise-server#network-requirements).

52* **Billing**: сеансы в самостоятельно размещаемом окружении потребляют использование Claude Code вашей организации так же, как сеансы в окружениях, размещаемых Anthropic.52* **Billing**: сеансы в самостоятельно размещаемом окружении потребляют использование Claude Code вашей организации так же, как сеансы в окружениях, размещаемых Anthropic.

53 53 

54<h2 id="why-self-host">54<h2 id="why-self-host">

Details

170 170 

171Если ваш git-хост отклоняет учетные данные или вы не конфигурировали их, runner повторяет попытку несколько раз, а затем не подготавливает репозиторий, когда репозиторий является тем, в который сеанс отправляет результаты. Для репозитория, из которого сеанс только читает, [Troubleshooting](#troubleshooting) охватывает, когда runner пропускает его вместо этого. Runner не передает эти параметры в окружение сеанса.171Если ваш git-хост отклоняет учетные данные или вы не конфигурировали их, runner повторяет попытку несколько раз, а затем не подготавливает репозиторий, когда репозиторий является тем, в который сеанс отправляет результаты. Для репозитория, из которого сеанс только читает, [Troubleshooting](#troubleshooting) охватывает, когда runner пропускает его вместо этого. Runner не передает эти параметры в окружение сеанса.

172 172 

173Держите любую программу, которую вы называете в `GIT_SSH_COMMAND` или `GIT_ASKPASS`, там, где сеансы не могут писать в нее, так, как [контрольный список усиления безопасности](#harden-your-deployment) просит для каталога hooks и скрипта-обертки. То же самое относится к любому ключу или файлу в командной строке этой программы. Собственный git runner запускает эту программу, когда он клонирует или получает.

174 

173Если каталоги checkout принадлежат другому uid, чем процесс runner, git отказывается работать с ними; добавьте `safe.directory`:175Если каталоги checkout принадлежат другому uid, чем процесс runner, git отказывается работать с ними; добавьте `safe.directory`:

174 176 

175```dockerfile theme={null}177```dockerfile theme={null}


184 186 

185Прокси требует `--capacity 1`, потому что URL прокси зависит от сеанса, и git 2.32 или новее, потому что более старый git игнорирует механизм конфигурации, который прокси использует для изоляции сеансов друг от друга. Runner отказывается запускаться, если какое-либо требование не выполнено. Поскольку прокси получает со стороны Anthropic, ваш git-хост должен быть доступен из инфраструктуры Anthropic, то же требование, что и для сеансов, размещаемых Anthropic; для git-хоста, который маршрутизируется только внутри вашей сети, используйте вместо этого [`checkout` lifecycle hook](/docs/ru/self-hosted-environments-configuration#checkout). Каждый процесс runner обрабатывает один сеанс за раз, поэтому запускайте больше реплик для параллелизма. Когда прокси включен, `--git-host-rewrite` и `--git-ssh-rewrite` не имеют эффекта: URL прокси указывает на `api.anthropic.com`, а не на ваш git-хост.187Прокси требует `--capacity 1`, потому что URL прокси зависит от сеанса, и git 2.32 или новее, потому что более старый git игнорирует механизм конфигурации, который прокси использует для изоляции сеансов друг от друга. Runner отказывается запускаться, если какое-либо требование не выполнено. Поскольку прокси получает со стороны Anthropic, ваш git-хост должен быть доступен из инфраструктуры Anthropic, то же требование, что и для сеансов, размещаемых Anthropic; для git-хоста, который маршрутизируется только внутри вашей сети, используйте вместо этого [`checkout` lifecycle hook](/docs/ru/self-hosted-environments-configuration#checkout). Каждый процесс runner обрабатывает один сеанс за раз, поэтому запускайте больше реплик для параллелизма. Когда прокси включен, `--git-host-rewrite` и `--git-ssh-rewrite` не имеют эффекта: URL прокси указывает на `api.anthropic.com`, а не на ваш git-хост.

186 188 

189<Warning>

190 Рецепты [Kubernetes](#kubernetes) и [Docker Compose](#docker-compose) на этой странице используют `--capacity 4`. Если вы добавите `--use-anthropic-git-proxy` или `CLAUDE_RUNNER_USE_GIT_PROXY=1` к одному из них без изменения capacity на `1`, runner выходит при запуске каждый раз, когда ваш оркестратор его перезапускает. Установите `--capacity 1` и запускайте больше реплик для параллелизма. [When the runner exits](#when-the-runner-exits) показывает строку, которую печатает runner.

191</Warning>

192 

187Runner также сообщает согласие Anthropic при регистрации, печатая `Registering as opted in to Anthropic-managed git (--use-anthropic-git-proxy)` при запуске. Сообщение о согласии требует Claude Code v2.1.267 или позже, и более ранние версии принимают флаг без сообщения об этом или печати этой строки. Каждый сеанс на согласившемся runner затем использует либо управляемый Anthropic git, либо URL прокси для каждого сеанса. Когда сеанс использует URL прокси для каждого сеанса, runner регистрирует одну строку `[runner:warn]`, говорящую об этом.193Runner также сообщает согласие Anthropic при регистрации, печатая `Registering as opted in to Anthropic-managed git (--use-anthropic-git-proxy)` при запуске. Сообщение о согласии требует Claude Code v2.1.267 или позже, и более ранние версии принимают флаг без сообщения об этом или печати этой строки. Каждый сеанс на согласившемся runner затем использует либо управляемый Anthropic git, либо URL прокси для каждого сеанса. Когда сеанс использует URL прокси для каждого сеанса, runner регистрирует одну строку `[runner:warn]`, говорящую об этом.

188 194 

195<h4 id="trust-a-private-certificate-authority-with-anthropic-managed-git">

196 Доверьте приватному центру сертификации с управляемым git Anthropic

197</h4>

198 

199Этот раздел применяется, если вы установили `GIT_SSL_CAINFO` или `GIT_SSL_NO_VERIFY` в окружении runner, чьи сеансы используют управляемый git Anthropic. Обработка, которую он описывает, требует, чтобы runner запускал Claude Code v2.1.283 или позже.

200 

201Когда git на runner должен доверять приватному центру сертификации (CA), такому как тот, который подписывает TLS-инспектирующий прокси, обычные подходы работают следующим образом:

202 

203* **Хранилище системных сертификатов**: установите ваш CA в хранилище системных сертификатов хоста runner, и git доверяет ему без обеих переменных.

204* **`GIT_SSL_CAINFO`**: установите его на PEM-файл ваших CA, например `GIT_SSL_CAINFO=/etc/ssl/corp-ca.pem`.

205* **`GIT_SSL_NO_VERIFY`**: не помогает за переподписывающим прокси. Собственный clone runner через управляемый git Anthropic проверяет сертификаты даже когда переменная установлена, поэтому этот clone не удается, пока git не доверяет вашему CA через один из других двух подходов.

206 

207Для git-соединений, которые несут токен сеанса к управляемому git Anthropic, runner применяет две переменные следующим образом. [`command` hook](/docs/ru/self-hosted-environments-configuration#command) начинается с окружения сеанса, поэтому он получает то, что получает git внутри сеанса:

208 

209* **`GIT_SSL_CAINFO`**: то, что git проверяет управляемый git Anthropic против, зависит от того, где запускается git:

210 * **Собственный clone и fetches runner**: запускаются без переменной и проверяют управляемый git Anthropic против файла сертификата для каждого сеанса, который пишет runner. Этот файл содержит системный CA bundle хоста runner плюс сертификаты из вашего файла.

211 * **Git внутри сеанса**: получает конфигурацию `http.sslCAInfo`, называющую ваш файл вместо переменной, плюс записи `http.<url>.sslCAInfo`, которые проверяют управляемый git Anthropic против файла для каждого сеанса.

212 * **`checkout` и `post-session` hooks**: наследуют переменную без изменений.

213* **`GIT_SSL_NO_VERIFY`**: какие проверки сертификатов остаются отключенными, зависит от того, где запускается git:

214 * **Собственный clone и fetches runner**: запускаются без переменной и проверяют сертификат, который им представлен.

215 * **Git внутри сеанса**: получает конфигурацию `http.sslVerify=false` вместо переменной, поэтому проверки остаются отключенными для других хостов. Он также получает записи `http.<url>.sslVerify=true`, которые держат проверки включенными для управляемого git Anthropic.

216 * **`checkout` и `post-session` hooks**: когда сеанс имеет репозиторий на управляемом git Anthropic, получают конфигурацию `http.sslVerify=false` вместо переменной. Они также получают записи `http.<url>.sslVerify=true`, которые держат проверки включенными для управляемого git Anthropic.

217 

218Файл сертификата для каждого сеанса нуждается в системном CA bundle в `/etc/ssl/certs/ca-certificates.crt` или `/etc/pki/tls/certs/ca-bundle.crt` на хосте runner. Ему также нужен файл `GIT_SSL_CAINFO`, который может читать пользователь runner, который содержит блоки PEM `CERTIFICATE`, и который составляет максимум 1 MiB. Когда runner не может построить файл для каждого сеанса, он регистрирует строку `[runner:warn]`, содержащую `did not build the certificate file` и причину. Git затем использует ваш файл как есть для управляемого git Anthropic. Исправьте то, что называет строка.

219 

220Для каждого сеанса, который использует управляемый git Anthropic, runner также регистрирует строку `[runner:warn]`, которая начинается с `governed git: GIT_SSL_CAINFO is set` или `governed git: GIT_SSL_NO_VERIFY is set`. Строка говорит, что runner сделал с этой переменной для своего собственного git, для git внутри сеанса и для ваших lifecycle hooks. Она заканчивается тем, нужно ли вам что-то менять.

221 

189<h3 id="rewrite-git-urls-for-private-networks">222<h3 id="rewrite-git-urls-for-private-networks">

190 Переписывайте URL git для приватных сетей223 Переписывайте URL git для приватных сетей

191</h3>224</h3>


203 236 

204Anthropic не публикует предварительно построенный образ runner. Постройте свой собственный вокруг бинарного файла `claude`, наслаивая любой набор инструментов, который нужен вашим репозиториям: языковые среды выполнения, компиляторы, менеджеры пакетов и [MCP](/docs/ru/mcp) sidecars.237Anthropic не публикует предварительно построенный образ runner. Постройте свой собственный вокруг бинарного файла `claude`, наслаивая любой набор инструментов, который нужен вашим репозиториям: языковые среды выполнения, компиляторы, менеджеры пакетов и [MCP](/docs/ru/mcp) sidecars.

205 238 

206Рецепты ниже используют `--capacity 4`, поэтому один контейнер обслуживает до четырех одновременных сеансов от одного заблокированного владельца. Это не обеспечивает изоляцию контейнера для каждого сеанса в [разделе усиления безопасности](#harden-your-deployment): перед подключением окружения к production-системам либо запустите рецепты на `--capacity 1` с одним контейнером на сеанс, либо используйте [on-demand runners](/docs/ru/self-hosted-environments-configuration#on-demand-runners), которые также держат секрет окружения вне хостов, запускающих сеансы.239Рецепты ниже используют `--capacity 4`, поэтому один контейнер обслуживает до четырех одновременных сеансов от одного заблокированного владельца. Это не обеспечивает изоляцию контейнера для каждого сеанса в [разделе усиления безопасности](#harden-your-deployment): перед подключением окружения к production-системам либо запустите рецепты на `--capacity 1` с одним контейнером на сеанс, либо используйте [on-demand runners](/docs/ru/self-hosted-environments-configuration#on-demand-runners), которые также держат секрет окружения вне хостов, запускающих сеансы. Если вы добавите [Anthropic git proxy](#use-the-anthropic-git-proxy) к одному из этих рецептов, также измените `--capacity` на `1`.

207 240 

208Этот Dockerfile является минимальной отправной точкой:241Этот Dockerfile является минимальной отправной точкой:

209 242 


338 371 

339Сервис Compose ниже перезапускает runner всякий раз, когда он выходит, что охватывает как сбои, так и нормальный выход после осушения. Политика перезагрузки Docker перезапускает тот же контейнер с его записываемым слоем нетронутым, поэтому runner возвращается на переиспользованной файловой системе, а не на свежей, которую рекомендует [позиция усиления безопасности](#harden-your-deployment); используйте этот рецепт для оценки, и для production либо пересоздайте контейнер за запуск, либо используйте оркестратор, который это делает.372Сервис Compose ниже перезапускает runner всякий раз, когда он выходит, что охватывает как сбои, так и нормальный выход после осушения. Политика перезагрузки Docker перезапускает тот же контейнер с его записываемым слоем нетронутым, поэтому runner возвращается на переиспользованной файловой системе, а не на свежей, которую рекомендует [позиция усиления безопасности](#harden-your-deployment); используйте этот рецепт для оценки, и для production либо пересоздайте контейнер за запуск, либо используйте оркестратор, который это делает.

340 373 

374Docker ждёт дольше перед каждым перезапуском контейнера, который продолжает выходить, вплоть до потолка, поэтому runner, который не может запуститься, не продолжает перезапускаться в плотном цикле под этим рецептом. [Когда runner выходит](#when-the-runner-exits) описывает, что проверить, когда это происходит.

375 

341```yaml theme={null}376```yaml theme={null}

342services:377services:

343 claude-runner:378 claude-runner:


451 486 

452Процесс дочернего Claude Code каждого сеанса запускает собственный бинарный файл runner, и runner отключает auto-update внутри сеансов, которые он порождает, поэтому каждый сеанс запускает версию, которую вы установили на хосте или встроили в образ. Обновление на уровне хоста вступает в силу в следующий раз, когда runner запускается.487Процесс дочернего Claude Code каждого сеанса запускает собственный бинарный файл runner, и runner отключает auto-update внутри сеансов, которые он порождает, поэтому каждый сеанс запускает версию, которую вы установили на хосте или встроили в образ. Обновление на уровне хоста вступает в силу в следующий раз, когда runner запускается.

453 488 

489Модель, которую используют ваши сеансы, может требовать более новую версию Claude Code, чем та, которую они запускают. Сервер затем отклоняет запросы для этой модели с [Claude Code does not support this model](/docs/ru/errors#claude-code-does-not-support-this-model). Перед тем как закрепить версию, проверьте [версии Claude Code, которые требуют модели](/docs/ru/model-config#available-models) для каждой модели, которую используют ваши сеансы.

490 

454* **Чтобы держать флот на одной версии**: постройте образ с закрепленной версией или на голом хосте установите конкретную версию и [отключите auto-updates](/docs/ru/setup#disable-auto-updates)491* **Чтобы держать флот на одной версии**: постройте образ с закрепленной версией или на голом хосте установите конкретную версию и [отключите auto-updates](/docs/ru/setup#disable-auto-updates)

455* **Чтобы обновить**: установите более новую версию или пересоздайте образ, затем перезагрузите runners492* **Чтобы обновить**: установите более новую версию или пересоздайте образ, затем перезагрузите runners

456* **Плагины**: рынки плагинов тоже не auto-update; установите `FORCE_AUTOUPDATE_PLUGINS=1` в окружении runner, чтобы позволить плагинам auto-update, пока бинарный файл остается закрепленным493* **Плагины**: рынки плагинов тоже не auto-update; установите `FORCE_AUTOUPDATE_PLUGINS=1` в окружении runner, чтобы позволить плагинам auto-update, пока бинарный файл остается закрепленным


554 591 

555Каждый процесс дочернего сеанса пишет отдельный отладочный лог. При отказе runner выводит хвост логов рядом с сеансом в claude.ai/code. Если вы не запустили runner с [`--remove-session-state`](/docs/ru/self-hosted-environments-reference#runner-cli-flags), он также сохраняет лог неудачного сеанса на диске и печатает его путь в логе runner.592Каждый процесс дочернего сеанса пишет отдельный отладочный лог. При отказе runner выводит хвост логов рядом с сеансом в claude.ai/code. Если вы не запустили runner с [`--remove-session-state`](/docs/ru/self-hosted-environments-reference#runner-cli-flags), он также сохраняет лог неудачного сеанса на диске и печатает его путь в логе runner.

556 593 

594<h3 id="when-the-runner-exits">

595 Когда runner выходит

596</h3>

597 

598Не перезапускайте [on-demand runner](/docs/ru/self-hosted-environments-configuration#on-demand-runners), потому что его рабочий заказ одноразовый. Runner, который выходит сразу после запуска, требует другой обработки, чем тот, который выходит по любой другой причине.

599 

600* **Нормальный выход**: runner завершил свои сеансы и осушился, достиг времени выхода на пенсию или ему было приказано остановиться. Перезапустите его, чтобы окружение снова имело емкость. [Runner lifecycle](/docs/ru/self-hosted-environments#runner-lifecycle) описывает эти выходы.

601* **Неудачный старт**: runner не может запуститься с конфигурацией или хостом, который ему был дан, поэтому он выходит через несколько секунд после запуска, и он выходит одинаково каждый раз, когда вы его перезапускаете. Перезапуск его быстрее не помогает. Кто-то должен прочитать его вывод и исправить причину.

602 

603Конфигурируйте ваш supervisor, чтобы перезапустить runner всякий раз, когда он выходит, чтобы ждать дольше между перезапусками, когда runner продолжает выходить сразу после запуска, и чтобы сообщить кому-то, когда это продолжает происходить.

604 

605<h4 id="recognize-a-failed-start">

606 Распознайте неудачный старт

607</h4>

608 

609Когда runner не может запуститься, он печатает строку, которая говорит почему, а затем выходит. Для большинства причин строка содержит `[runner:fatal]`. Для некоторых причин строка начинается с `error:` вместо этого, включая когда runner не может разобрать свои флаги, не может прочитать секрет окружения или не может создать или писать в базовый каталог. Следующая строка затем указывает на `--help`.

610 

611Большинство строк логов начинаются с временной метки и `[self-hosted-runner]`, которые образец ниже опускает. Например, runner, запущенный с прокси Anthropic git и емкостью выше одного, печатает строку, подобную этой:

612 

613```text theme={null}

614[runner:fatal] --use-anthropic-git-proxy requires --capacity 1 (the proxy URL is per-session and linked worktrees share origin). Omit --use-anthropic-git-proxy or set --capacity 1.

615```

616 

617Ищите строку в стандартном выводе и стандартной ошибке runner, в логах контейнера вашей платформы или в файле, который вы установили с помощью [`--log-file`](/docs/ru/self-hosted-environments-reference#runner-cli-flags). Runner печатает строку `error:` перед открытием файла логов, поэтому ищите его в терминале или логах контейнера, как отмечает [Troubleshooting](#troubleshooting).

618 

619Это также помогает, когда вы читаете неудачный старт:

620 

621* **Нет строки вообще**: runner, который хост убивает, не печатает ни одну. Если вывод заканчивается без строки `[runner:fatal]` и без строки `error:`, проверьте, остановил ли хост или ваш оркестратор процесс, например, за превышение лимита памяти.

622* **Код выхода**: runner не откладывает код выхода для ошибок, которые повторяются при каждом запуске. Он выходит с тем же кодом для ошибки конфигурации, такой как неподдерживаемая комбинация флагов, и для отказа, который может очиститься сам по себе, такой как API, остающийся недостижимым через собственные повторы runner. Основывайте решение ждать дольше на том, как скоро runner выходит, и прочитайте вывод runner, чтобы узнать почему.

623* **Окружение, которое выглядит здоровым**: некоторые шаги запуска запускаются после того, как runner регистрируется в вашем окружении, такие как [`--configure-git`](#let-the-runner-configure-git) и настройка учетных данных прокси Anthropic git. Если один из этих шагов не удается, окружение может продолжать перечислять этот runner в течение нескольких минут после выхода процесса, и страница **Cloud environments** может читать **Healthy**, пока ни один runner не подхватывает работу. Если сеансы остаются поставленными в очередь в окружении, которое выглядит здоровым, проверьте, перезапускает ли ваш supervisor runner.

624 

625<h4 id="restart-with-a-wait-that-grows">

626 Перезапуск с растущим ожиданием

627</h4>

628 

629Как вы получаете растущее ожидание, зависит от вашего supervisor.

630 

631* **Kubernetes**: [Deployment](#kubernetes) на этой странице не требует изменений. После выхода контейнера kubelet по умолчанию ждет перед перезапуском контейнера, и ожидание растет при каждом перезапуске до потолка. Ожидание начинается заново, как только контейнер работает некоторое время без выхода.

632 

633 Kubelet применяет то же ожидание после нормального выхода, когда контейнер работал только недолго. Runner, который часто осушается, поэтому может также показать статус `CrashLoopBackOff`, поэтому прочитайте вывод перед тем, как вы заключите, что runner не может запуститься. Команда ниже читает вывод последнего запуска из одного pod Deployment:

634 

635 ```bash theme={null}

636 kubectl logs --previous -n claude-runners deploy/claude-runner

637 ```

638 

639 Когда последний запуск был неудачным стартом, строка `[runner:fatal]` или `error:` находится среди последних строк вывода. Чтобы прочитать последний запуск другого pod, назовите этот pod вместо `deploy/claude-runner`.

640* **Docker и Docker Compose**: [Compose recipe](#docker-compose) на этой странице не требует изменений. С `restart: always`, Docker ждет дольше перед каждым перезапуском контейнера, который продолжает выходить, до потолка. Замените `<container>` на имя контейнера в команде ниже, которая читает, сколько раз Docker перезапустил контейнер:

641 

642 ```bash theme={null}

643 docker inspect --format '{{.RestartCount}}' <container>

644 ```

645 

646 Команда печатает число. Число, которое продолжает расти, означает, что Docker продолжает перезапускать runner.

647* **Модуль systemd**: по умолчанию systemd ждет одинаковый `RestartSec` перед каждым перезапуском и не удлиняет его, поэтому модуль с `Restart=always` перезапускает runner, который не может запуститься в этом же интервале каждый раз. Когда старты приходят достаточно быстро, чтобы достичь лимита скорости запуска модуля, пять стартов в 10 секунд по умолчанию, systemd прекращает перезапуск модуля. Модуль остается остановленным, пока кто-то его снова не запустит, что systemd позволяет, как только интервал лимита скорости прошел или после `systemctl reset-failed`. Потому что `RestartSec` применяется к каждому перезапуску, большее значение также задерживает перезапуск после нормального выхода. Выберите значение, которое балансирует два, и предупредите о счетчике перезапусков модуля.

648* **Цикл shell или ваш собственный supervisor**: применяйте то же правило самостоятельно. Начните с ожидания в пять секунд. После каждого запуска, который закончился в течение минуты, удвойте ожидание для следующего перезапуска, до пяти минут. После запуска, который длился минуту или более, вернитесь к пяти секундам.

649 

650<h4 id="check-why-the-runner-keeps-exiting">

651 Проверьте, почему runner продолжает выходить

652</h4>

653 

654Когда runner выходит сразу после запуска несколько раз подряд, остановитесь и проверьте это перед перезапуском снова.

655 

656* **Последняя строка `[runner:fatal]` или `error:`**: она говорит почему runner остановился. [Troubleshooting](#troubleshooting) перечисляет распространенные причины.

657* **Комбинация флагов**: [Anthropic git proxy](#use-the-anthropic-git-proxy) требует `--capacity 1`. Рецепты на этой странице используют более высокую емкость, поэтому понизьте ее, когда вы добавляете прокси к одному из них.

658* **Что может достичь окружение сервиса**: если runner запускается вручную и не удается под вашим supervisor, сравните пользователя, домашний каталог, `PATH` и лимит памяти. `--configure-git` и прокси Anthropic git нужны git на `PATH` и записываемый `~/.gitconfig`.

659* **Секрет окружения**: если вы отозвали секрет или неправильно его напечатали, runner печатает строку, которая содержит `RegisterRunner auth failed`.

660* **Вкладка Activity окружения**: откройте окружение и выберите **Activity**. Если новые runners продолжают появляться там и ни один не подхватывает работу, ваш supervisor перезапускает runner.

661 

662Для управляемой диагностики на хосте runner запустите [подкоманду doctor](#troubleshooting).

663 

557<h2 id="what’s-next">664<h2 id="what’s-next">

558 Что дальше665 Что дальше

559</h2>666</h2>

Details

105 </Step>105 </Step>

106</Steps>106</Steps>

107 107 

108Runner выходит по дизайну после завершения его активных сеансов; см. [Runner lifecycle](/docs/ru/self-hosted-environments#runner-lifecycle). Для production развёртывайте его под оркестратором, который перезапускает его при выходе. См. [Развёртывание в production](/docs/ru/self-hosted-environments-deploy).108Runner выходит по дизайну после завершения его активных сеансов; см. [Runner lifecycle](/docs/ru/self-hosted-environments#runner-lifecycle). Для production развёртывайте его под оркестратором, который перезапускает его при выходе и ждёт дольше между перезапусками, когда runner продолжает выходить сразу после запуска. См. [Deploy to production](/docs/ru/self-hosted-environments-deploy) и [When the runner exits](/docs/ru/self-hosted-environments-deploy#when-the-runner-exits).

109 109 

110<h2 id="send-a-follow-up-message-to-a-running-session">110<h2 id="send-a-follow-up-message-to-a-running-session">

111 Отправьте follow-up сообщение работающему сеансу111 Отправьте follow-up сообщение работающему сеансу

Details

80 Флаги SCM connector80 Флаги SCM connector

81</h3>81</h3>

82 82 

83Orchestrator может держать постоянное подключение WebSocket к плоскости управления Anthropic, чтобы размещенные предсеансовые потоки, такие как средство выбора репозитория и средство разрешения ветви или ссылки, могли достичь хоста GitHub Enterprise Server, который маршрутизируется только изнутри вашей сети. Соединитель остается отключенным, если вы не установите `--scm-connector-host`.83Соединитель SCM недоступен, поэтому оставьте флаги в этом разделе неустановленными. Если вы установите `--scm-connector-host`, соединение не открывается, и orchestrator продолжает его переподключать. Runners по-прежнему запускаются по мере поступления сеансов в очередь.

84 

85Соединитель — это постоянное подключение WebSocket от orchestrator к плоскости управления Anthropic. Он разработан для того, чтобы позволить размещенным предсеансовым потокам, таким как средство выбора репозитория и средство разрешения ветви или ссылки, достичь хоста GitHub Enterprise Server, который маршрутизируется только изнутри вашей сети. См. [Network requirements](/docs/ru/github-enterprise-server#network-requirements) на странице GitHub Enterprise Server для получения информации о том, что требуется этим потокам.

84 86 

85| Флаг | По умолчанию | Описание |87| Флаг | По умолчанию | Описание |

86| :- | :- | :- |88| :- | :- | :- |

87| `--scm-connector-host <host[:port]>` | unset | Имя хоста GitHub Enterprise Server для перенаправления запросов. Порт по умолчанию `443`. Установка этого флага включает соединитель. |89| `--scm-connector-host <host[:port]>` | unset | Имя хоста GitHub Enterprise Server для перенаправления запросов. Порт по умолчанию `443`. |

88| `--scm-connector-id <n>` | required with `--scm-connector-host` | Числовой ID подключения GitHub Enterprise Server вашей организации. Свяжитесь с командой вашего аккаунта Anthropic для значения при включении соединителя. |90| `--scm-connector-id <n>` | required with `--scm-connector-host` | Числовой ID подключения GitHub Enterprise Server вашей организации. |

89| `--scm-connector-provider <slug>` | `ghe` | Сегмент пути, идентифицирующий поставщика, соответствующий `^[a-z0-9-]{1,32}$`. |91| `--scm-connector-provider <slug>` | `ghe` | Сегмент пути, идентифицирующий поставщика, соответствующий `^[a-z0-9-]{1,32}$`. |

90| `--scm-connector-ca-file <path>` | unset | Дополнительный пакет CA в формате PEM для подключений TLS к хосту GitHub Enterprise Server. |92| `--scm-connector-ca-file <path>` | unset | Дополнительный пакет CA в формате PEM для подключений TLS к хосту GitHub Enterprise Server. |

91| `--scm-connector-host-rewrite <from>=<to_host:to_port>` | unset | Только для сквозного тестирования: перенаправляет подключение TCP, сохраняя заголовок Host и TLS SNI как `--scm-connector-host`. |93| `--scm-connector-host-rewrite <from>=<to_host:to_port>` | unset | Только для сквозного тестирования: перенаправляет подключение TCP, сохраняя заголовок Host и TLS SNI как `--scm-connector-host`. |

92 94 

93Соединитель аутентифицируется с существующим секретом среды orchestrator и автоматически переподключается: с экспоненциальной задержкой при разорванном подключении или фиксированной 30-секундной задержкой, когда плоскость управления закрывает подключение, потому что другая реплика orchestrator уже его держит.95При каждой попытке подключения orchestrator отправляет свой существующий секрет окружения, и он автоматически переподключается с экспоненциальной задержкой, ограниченной 30 секундами плюс jitter.

94 96 

95<h2 id="environment-variable-only-settings">97<h2 id="environment-variable-only-settings">

96 Параметры только для переменных окружения98 Параметры только для переменных окружения

Details

310* **Интерактивный сеанс, который не может показать диалог**: Claude Code не применяет доставленные параметры и сохраняет последние одобренные параметры. Диалог появляется в следующем сеансе, который может его показать. Требуется Claude Code v2.1.211 или более поздняя версия.310* **Интерактивный сеанс, который не может показать диалог**: Claude Code не применяет доставленные параметры и сохраняет последние одобренные параметры. Диалог появляется в следующем сеансе, который может его показать. Требуется Claude Code v2.1.211 или более поздняя версия.

311* **`claude install` или `claude update`**: Claude Code не показывает диалог во время любой команды. Команда запускается с последними одобренными параметрами, и диалог появляется в вашем следующем интерактивном сеансе. Если Claude Code ждет выборки параметров при запуске, например с установленным [`forceRemoteSettingsRefresh`](#enforce-fail-closed-startup) или при развертывании [шлюза приложений Claude](/docs/ru/claude-apps-gateway), он показывает диалог во время команды вместо этого, и запуск установки из трубы не удается; см. [`Raw mode is not supported` during install](/docs/ru/troubleshoot-install#raw-mode-is-not-supported-during-install). До v2.1.246 Claude Code пытался показать диалог во время этих команд тоже.311* **`claude install` или `claude update`**: Claude Code не показывает диалог во время любой команды. Команда запускается с последними одобренными параметрами, и диалог появляется в вашем следующем интерактивном сеансе. Если Claude Code ждет выборки параметров при запуске, например с установленным [`forceRemoteSettingsRefresh`](#enforce-fail-closed-startup) или при развертывании [шлюза приложений Claude](/docs/ru/claude-apps-gateway), он показывает диалог во время команды вместо этого, и запуск установки из трубы не удается; см. [`Raw mode is not supported` during install](/docs/ru/troubleshoot-install#raw-mode-is-not-supported-during-install). До v2.1.246 Claude Code пытался показать диалог во время этих команд тоже.

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

313* **Неинтерактивный запуск**, такой как `claude -p` или сеанс Agent SDK: Claude Code не может показать диалог, поэтому когда доставленные параметры требуют одобрения, он применяет их только для этого запуска. Он не записывает их как одобренные и не записывает их в [локальный кэш](#fetch-and-caching-behavior), и следующий интерактивный сеанс показывает диалог. До одобрения пользователем в интерактивном сеансе каждый неинтерактивный запуск выполняет выборку параметров снова при запуске. До v2.1.207 неинтерактивный запуск сохранял параметры как одобренные, поэтому более поздние интерактивные сеансы никогда не показывали диалог для них.313* **Неинтерактивный запуск**, такой как `claude -p`, сеанс Agent SDK или сеанс в панели чата расширения VS Code или на вкладке Code настольного приложения: Claude Code не может показать диалог, поэтому когда доставленные параметры требуют одобрения, он применяет их только для этого запуска. Он не записывает их как одобренные и не записывает их в [локальный кэш](#fetch-and-caching-behavior), и следующий интерактивный сеанс показывает диалог. До одобрения пользователем в интерактивном сеансе каждый неинтерактивный запуск выполняет выборку параметров снова при запуске. До v2.1.207 неинтерактивный запуск сохранял параметры как одобренные, поэтому более поздние интерактивные сеансы никогда не показывали диалог для них.

314 314 

315<h4 id="environment-variables-and-the-approval-dialog">315<h4 id="environment-variables-and-the-approval-dialog">

316 Переменные окружения и диалог одобрения316 Переменные окружения и диалог одобрения

Details

595| [`agent`](#agent) | Начните каждый сеанс как именованный [подагент](/docs/ru/sub-agents) с его подсказкой, инструментами и моделью | Agents, sessions, and worktrees | Any file |595| [`agent`](#agent) | Начните каждый сеанс как именованный [подагент](/docs/ru/sub-agents) с его подсказкой, инструментами и моделью | Agents, sessions, and worktrees | Any file |

596| [`agentPushNotifEnabled`](#agentpushnotifenabled) | Позвольте Claude отправить [push-уведомление на ваш телефон](/docs/ru/remote-control#mobile-push-notifications), когда он решит это сделать | Remote, desktop, and notifications | Any file |596| [`agentPushNotifEnabled`](#agentpushnotifenabled) | Позвольте Claude отправить [push-уведомление на ваш телефон](/docs/ru/remote-control#mobile-push-notifications), когда он решит это сделать | Remote, desktop, and notifications | Any file |

597| [`allowAllClaudeAiMcps`](#allowallclaudeaimcps) | Загружайте [разъёмы claude.ai](/docs/ru/mcp), которые Claude Code получает сам, наряду с развёрнутым [`managed-mcp.json`](/docs/ru/managed-mcp#exclusive-control-with-managed-mcp-json) | MCP | Managed |597| [`allowAllClaudeAiMcps`](#allowallclaudeaimcps) | Загружайте [разъёмы claude.ai](/docs/ru/mcp), которые Claude Code получает сам, наряду с развёрнутым [`managed-mcp.json`](/docs/ru/managed-mcp#exclusive-control-with-managed-mcp-json) | MCP | Managed |

598| [`allowClaudeInChromeWithManagedMcp`](#allowclaudeinchromewithmanagedmcp) | Позвольте встроенному [серверу Claude в Chrome](/docs/ru/chrome) работать наряду с развёрнутым [`managed-mcp.json`](/docs/ru/managed-mcp#exclusive-control-with-managed-mcp-json) | MCP | Managed |

598| [`allowedChannelPlugins`](#allowedchannelplugins) | Замените список разрешений по умолчанию для [плагинов канала](/docs/ru/channels#restrict-which-channel-plugins-can-run), которые могут отправлять сообщения | Plugins and skills | Managed |599| [`allowedChannelPlugins`](#allowedchannelplugins) | Замените список разрешений по умолчанию для [плагинов канала](/docs/ru/channels#restrict-which-channel-plugins-can-run), которые могут отправлять сообщения | Plugins and skills | Managed |

599| [`allowedHttpHookUrls`](#allowedhttphookurls) | Ограничьте, какие URL-адреса могут использовать [HTTP hooks](/docs/ru/hooks) | Hooks and automation | Any file |600| [`allowedHttpHookUrls`](#allowedhttphookurls) | Ограничьте, какие URL-адреса могут использовать [HTTP hooks](/docs/ru/hooks) | Hooks and automation | Any file |

600| [`allowedMcpServers`](#allowedmcpservers) | Создайте список разрешений для [MCP серверов](/docs/ru/mcp), которые могут добавлять пользователи | MCP | Any file |601| [`allowedMcpServers`](#allowedmcpservers) | Создайте список разрешений для [MCP серверов](/docs/ru/mcp), которые могут добавлять пользователи | MCP | Any file |


1744 * `"default"`: Claude Code запускает только чтение без запроса1745 * `"default"`: Claude Code запускает только чтение без запроса

1745 * `"acceptEdits"`: Claude Code также запускает редактирование файлов и общие команды файловой системы, такие как `mkdir` и `mv`, без запроса1746 * `"acceptEdits"`: Claude Code также запускает редактирование файлов и общие команды файловой системы, такие как `mkdir` и `mv`, без запроса

1746 * `"plan"`: Claude Code читает и планирует, но блокирует редактирование до того, как вы одобрите план1747 * `"plan"`: Claude Code читает и планирует, но блокирует редактирование до того, как вы одобрите план

1747 * `"auto"`: Claude Code запускает всё с проверками безопасности в фоне1748 * `"auto"`: Claude Code запускает всё без обычных подсказок; перед действиями, такими как команды оболочки и сетевые запросы, фоновый классификатор проверяет, что они соответствуют вашему запросу

1748 * `"dontAsk"`: Claude Code автоматически отрицает каждый вызов, который в противном случае запрашивал бы; чтение, другие действия, которые не требуют одобрения, и предварительно одобренные инструменты по-прежнему запускаются1749 * `"dontAsk"`: Claude Code автоматически отрицает каждый вызов, который в противном случае запрашивал бы; чтение, другие действия, которые не требуют одобрения, и предварительно одобренные инструменты по-прежнему запускаются

1749 * `"bypassPermissions"`: Claude Code запускает всё без запроса1750 * `"bypassPermissions"`: Claude Code запускает всё без запроса

1750 * `"manual"`: псевдоним для `"default"`, в Claude Code v2.1.200 или позже1751 * `"manual"`: псевдоним для `"default"`, в Claude Code v2.1.200 или позже


3064</h4>3065</h4>

3065 3066 

3066* Значение здесь перезаписывает ту же переменную, экспортированную в вашей оболочке, и когда более одного файла параметров устанавливает переменную, применяется [наиболее приоритетный](/docs/ru/settings#settings-precedence). [Переменные, которые Claude Code игнорирует в `env`](#variables-claude-code-ignores-in-env) перечисляет исключения для параметров проекта и локальных параметров.3067* Значение здесь перезаписывает ту же переменную, экспортированную в вашей оболочке, и когда более одного файла параметров устанавливает переменную, применяется [наиболее приоритетный](/docs/ru/settings#settings-precedence). [Переменные, которые Claude Code игнорирует в `env`](#variables-claude-code-ignores-in-env) перечисляет исключения для параметров проекта и локальных параметров.

3068* Когда приложение Claude Desktop или [самостоятельно размещённая среда](/docs/ru/self-hosted-environments) запускает сессию, среда запуска, которую оно создаёт, имеет приоритет вместо этого: Claude Code игнорирует значение `env` из любого файла параметров для переменной, которую среда запуска уже устанавливает. [Журнал отладки](/docs/ru/debug-your-config) называет каждую игнорируемую переменную.

3067* Чтобы отменить экспорт оболочки, установите переменную на `""`. Claude Code рассматривает пустое значение как не установленное для выбора поставщика, и подпроцессы наследуют пустое значение.3069* Чтобы отменить экспорт оболочки, установите переменную на `""`. Claude Code рассматривает пустое значение как не установленное для выбора поставщика, и подпроцессы наследуют пустое значение.

3068* `NO_COLOR` и `FORCE_COLOR`, установленные здесь, достигают только подпроцессов. Чтобы изменить цвета собственного интерфейса Claude Code, установите их в вашей оболочке перед запуском `claude`.3070* `NO_COLOR` и `FORCE_COLOR`, установленные здесь, достигают только подпроцессов. Чтобы изменить цвета собственного интерфейса Claude Code, установите их в вашей оболочке перед запуском `claude`.

3069* Значения здесь представляют собой простой текст в файле параметров и достигают каждого подпроцесса, который запускает Claude Code. Для токена OTLP, который ротируется, используйте [`otelHeadersHelper`](#otelheadershelper); для учётных данных API используйте [`apiKeyHelper`](#apikeyhelper).3071* Значения здесь представляют собой простой текст в файле параметров и достигают каждого подпроцесса, который запускает Claude Code. Для токена OTLP, который ротируется, используйте [`otelHeadersHelper`](#otelheadershelper); для учётных данных API используйте [`apiKeyHelper`](#apikeyhelper).


5157 5159 

5158[`allowedMcpServers`](#allowedmcpservers) и [`deniedMcpServers`](#deniedmcpservers) по-прежнему применяются к соединителям, которые загружает этот ключ. Соединители, доставленные в [облачный сеанс](/docs/ru/claude-code-on-the-web), хост которого содержит `managed-mcp.json`, например самостоятельно размещённый runner, остаются подавленными. См. [Разрешить соединители claude.ai наряду с управляемым набором](/docs/ru/managed-mcp#allow-claude-ai-connectors-alongside-the-managed-set).5160[`allowedMcpServers`](#allowedmcpservers) и [`deniedMcpServers`](#deniedmcpservers) по-прежнему применяются к соединителям, которые загружает этот ключ. Соединители, доставленные в [облачный сеанс](/docs/ru/claude-code-on-the-web), хост которого содержит `managed-mcp.json`, например самостоятельно размещённый runner, остаются подавленными. См. [Разрешить соединители claude.ai наряду с управляемым набором](/docs/ru/managed-mcp#allow-claude-ai-connectors-alongside-the-managed-set).

5159 5161 

5162<h3 id="allowclaudeinchromewithmanagedmcp">

5163 `allowClaudeInChromeWithManagedMcp`

5164</h3>

5165 

5166Позволяйте встроенному серверу [Claude в Chrome](/docs/ru/chrome) работать наряду с развёрнутым `managed-mcp.json`. Без этого ключа развёрнутый `managed-mcp.json` блокирует Claude в Chrome в сеансах терминала. Требует Claude Code версии 2.1.282 или позже.

5167 

5168* **Scope**: [`Managed`](#scopes), только из собственных управляемых параметров устройства: развёрнутого MDM plist или ключа реестра HKLM, или системного файла `managed-settings.json`. Claude Code игнорирует его в управляемых параметрах сервера, в пользовательском реестре HKCU и в пользовательских или проектных параметрах.

5169* **Type**: Boolean

5170 * `true`: встроенный сервер Claude в Chrome может работать наряду с развёрнутым `managed-mcp.json`

5171 * `false`: развёрнутый `managed-mcp.json` блокирует Claude в Chrome в сеансах терминала

5172* **Default**: `false`, поэтому развёрнутый `managed-mcp.json` блокирует Claude в Chrome в сеансах терминала

5173 

5174```json managed-settings.json theme={null}

5175{

5176 "allowClaudeInChromeWithManagedMcp": true

5177}

5178```

5179 

5180Запись [`deniedMcpServers`](#deniedmcpservers) для `claude-in-chrome` по-прежнему блокирует сервер с этим ключом включённым. См. [Разрешить Claude в Chrome наряду с управляемым набором](/docs/ru/managed-mcp#allow-claude-in-chrome-alongside-the-managed-set).

5181 

5160<h3 id="allowedmcpservers">5182<h3 id="allowedmcpservers">

5161 `allowedMcpServers`5183 `allowedMcpServers`

5162</h3>5184</h3>

5163 5185 

5164Создайте список разрешённых серверов MCP, которые люди могут добавлять. Claude Code блокирует любой сервер, который не соответствует записи, где бы он ни был определён, включая серверы плагинов, серверы, переданные с `--mcp-config`, и серверы из claude.ai.5186Создайте список разрешённых серверов MCP, которые люди могут добавлять. Claude Code блокирует любой сервер, который не соответствует записи, где бы он ни был определён, включая серверы плагинов, серверы, переданные с `--mcp-config`, и серверы из claude.ai.

5165 5187 

5166Встроенные серверы, такие как Claude в Chrome, сервер `ide`, к которому Claude Code подключается в работающей IDE [VS Code](/docs/ru/vs-code#the-built-in-ide-mcp-server) или [JetBrains](/docs/ru/jetbrains#the-built-in-ide-mcp-server), и серверы, которые сам CLI настраивает, освобождены от списка разрешений, и список запретов по-прежнему применяется к ним. Внутрипроцессные серверы `type: "sdk"` освобождены от обоих списков; [приложение, которое запустило сеанс](/docs/ru/mcp#how-connectors-reach-claude-code), регистрирует их.5188Встроенные серверы, такие как Claude в Chrome, сервер `ide`, к которому Claude Code подключается в работающей IDE [VS Code](/docs/ru/vs-code#the-built-in-ide-mcp-server) или [JetBrains](/docs/ru/jetbrains#the-built-in-ide-mcp-server), и серверы, которые сам CLI настраивает, освобождены от списка разрешений, и список запретов по-прежнему применяется к ним. На Claude Code версии 2.1.268 или позже, инструменты Slack сеанса [Claude Tag](/docs/ru/claude-tag) также освобождены от списка разрешений, и список запретов по-прежнему применяется к ним. Внутрипроцессные серверы `type: "sdk"` освобождены от обоих списков; [приложение, которое запустило сеанс](/docs/ru/mcp#how-connectors-reach-claude-code), регистрирует их.

5167 5189 

5168Серверы, которые доставляет ваша организация, также освобождены от списка разрешений, и список запретов по-прежнему применяется к ним. Освобождение охватывает каждую запись [`managedMcpServers`](#managedmcpservers) и любую запись [`managed-mcp.json`](/docs/ru/managed-mcp#exclusive-control-with-managed-mcp-json), значения которой не используют расширение `${VAR}`. См. [Как оценивается сервер](/docs/ru/managed-mcp#how-a-server-is-evaluated) для полного порядка проверки. До версии 2.1.259 серверы из `managed-mcp.json` также должны были совпадать.5190Серверы, которые доставляет ваша организация, также освобождены от списка разрешений, и список запретов по-прежнему применяется к ним. Освобождение охватывает каждую запись [`managedMcpServers`](#managedmcpservers) и любую запись [`managed-mcp.json`](/docs/ru/managed-mcp#exclusive-control-with-managed-mcp-json), значения которой не используют расширение `${VAR}`. См. [Как оценивается сервер](/docs/ru/managed-mcp#how-a-server-is-evaluated) для полного порядка проверки. До версии 2.1.259 серверы из `managed-mcp.json` также должны были совпадать.

5169 5191 


6304 `disableSideloadFlags`6326 `disableSideloadFlags`

6305</h3>6327</h3>

6306 6328 

6307Отклонять флаги CLI `--plugin-dir`, `--plugin-url`, `--agents` и `--mcp-config` при запуске, которые пользователи могут передать для обхода [`strictKnownMarketplaces`](#strictknownmarketplaces) при одном запуске. Claude Code завершает работу с ошибкой, указывающей на отклоненные флаги, и применяет ту же проверку к поверхностям, которые запускают CLI с этими флагами внутри, в настоящее время [Cowork](/docs/ru/desktop) локальные сеансы в приложении для рабочего стола. В [облачных сеансах](/docs/ru/claude-code-on-the-web) Claude Code удаляет MCP серверы, которые сервер доставил через `--mcp-config`, за исключением встроенных записей `type: "sdk"`, и запускает сеанс. Требуется Claude Code v2.1.193 или позже.6329Отклонять флаги CLI `--plugin-dir`, `--plugin-url`, `--agents` и `--mcp-config` при запуске, которые пользователи могут передать для обхода [`strictKnownMarketplaces`](#strictknownmarketplaces) при одном запуске. Claude Code завершает работу с ошибкой, указывающей на отклоненные флаги. В [облачных сеансах](/docs/ru/claude-code-on-the-web) Claude Code вместо этого запускает сеанс и удаляет каждую доставленную сервером запись `--mcp-config`, кроме встроенных записей `type: "sdk"` и инструментов Slack сеанса [Claude Tag](/docs/ru/claude-tag). Требуется Claude Code v2.1.193 или позже.

6308 6330 

6309* **Область**: [`Managed`](#scopes)6331* **Область**: [`Managed`](#scopes)

6310* **Тип**: Boolean6332* **Тип**: Boolean

6311 * `true`: Claude Code отклоняет `--plugin-dir`, `--plugin-url`, `--agents` и `--mcp-config` при запуске и завершает работу с ошибкой, указывающей на них, за исключением облачных сеансов, где он удаляет MCP серверы, которые сервер доставил через `--mcp-config`, за исключением встроенных записей `type: "sdk"`, и запускает сеанс6333 * `true`: Claude Code отклоняет `--plugin-dir`, `--plugin-url`, `--agents` и `--mcp-config` при запуске и завершает работу с ошибкой, указывающей на них. В облачных сеансах вместо этого запускает сеанс и удаляет каждую доставленную сервером запись `--mcp-config`, кроме встроенных записей `type: "sdk"` и инструментов Slack сеанса Claude Tag

6312 * `false`: Claude Code принимает эти флаги6334 * `false`: Claude Code принимает эти флаги

6313* **По умолчанию**: `false`6335* **По умолчанию**: `false`

6314 6336 


6322 6344 

6323Та же проверка охватывает папки плагинов, названные в переменной окружения [`CLAUDE_CODE_PLUGIN_DIRS`](/docs/ru/env-vars#variables), что требует Claude Code v2.1.280 или позже. Когда переменная называет папку, Claude Code завершает работу с той же ошибкой, и ошибка говорит отменить установку переменной.6345Та же проверка охватывает папки плагинов, названные в переменной окружения [`CLAUDE_CODE_PLUGIN_DIRS`](/docs/ru/env-vars#variables), что требует Claude Code v2.1.280 или позже. Когда переменная называет папку, Claude Code завершает работу с той же ошибкой, и ошибка говорит отменить установку переменной.

6324 6346 

6325В облачных сеансах Claude Code также игнорирует обновления MCP, доставленные сервером в середине сеанса, путь позади конфигурации облачного сеанса и SDK `setMcpServers()` вызовов, которые достигают этих сеансов. Встроенные записи `type: "sdk"` остаются исключенными там же. До v2.1.239 доставленный сервером `--mcp-config` блокировал запуск облачного сеанса.6347В облачных сеансах Claude Code также игнорирует обновления MCP, доставленные сервером в середине сеанса, путь позади конфигурации облачного сеанса и SDK `setMcpServers()` вызовов, которые достигают этих сеансов. Встроенные записи `type: "sdk"` и инструменты Slack сеанса Claude Tag остаются исключенными там же. До v2.1.268 как это удаление, так и удаление при запуске также удаляли инструменты Slack сеанса Claude Tag. До v2.1.239 доставленный сервером `--mcp-config` блокировал запуск облачного сеанса.

6348 

6349Приложение для рабочего стола управляет некоторыми плагинами самостоятельно, включая плагины, синхронизированные из claude.ai, и плагины, которые ваша организация развертывает через приложение. Если вы развертываете этот ключ на устройстве через MDM, политику уровня ОС или файл управляемых параметров, приложение для рабочего стола не передает эти плагины следующим сеансам на этом устройстве:

6350 

6351* **[Сеансы Code на машине пользователя](/docs/ru/desktop#environment-configuration)**: они также запускаются без включенных навыков для учетной записи claude.ai пользователя. Плагины, которые Claude Code устанавливает из маркетплейсов в ваших управляемых параметрах, по-прежнему загружаются. В [Claude Desktop на 3P](https://claude.com/docs/third-party/claude-desktop/overview) серверы MCP из плагинов, которые вы развертываете в каталоге `org-plugins` устройства, остаются доступными, потому что приложение для рабочего стола подключается к ним самостоятельно. До Claude Desktop v1.37937.0 эти сеансы не запускались.

6352* **[Сеансы Cowork на машине пользователя](/docs/ru/managed-settings#where-and-when-a-policy-applies)**: навыки внутри этих плагинов и навыки, включенные для учетной записи claude.ai пользователя, остаются доступными. В [Claude Desktop на 3P](https://claude.com/docs/third-party/claude-desktop/overview) серверы MCP из плагинов, которые вы развертываете в каталоге `org-plugins` устройства, остаются доступными, потому что приложение для рабочего стола подключается к ним самостоятельно. До Claude Desktop v1.44121.0 эти сеансы не запускались.

6326 6353 

6327<h3 id="forceremotesettingsrefresh">6354<h3 id="forceremotesettingsrefresh">

6328 `forceRemoteSettingsRefresh`6355 `forceRemoteSettingsRefresh`

skills.md +53 −7

Details

56 56 

57Claude редактирует записанный файл только когда он неправильно направил запуск, например команду, которая не удалась, или отсутствующий шаг, поэтому вы можете зафиксировать файл без различий для каждой сессии. До v2.1.205 встроенный skill говорил Claude складывать все, что запуск узнал, что вызывало частые конфликты слияния.57Claude редактирует записанный файл только когда он неправильно направил запуск, например команду, которая не удалась, или отсутствующий шаг, поэтому вы можете зафиксировать файл без различий для каждой сессии. До v2.1.205 встроенный skill говорил Claude складывать все, что запуск узнал, что вызывало частые конфликты слияния.

58 58 

59<h3 id="work-on-claude-api-projects">

60 Работа с проектами Claude API

61</h3>

62 

63Встроенный skill `/claude-api` загружает справочный материал [Claude API](https://platform.claude.com/docs/en/api/overview) и [Managed Agents](https://platform.claude.com/docs/en/managed-agents/overview) для языка вашего проекта. Claude также активирует его автоматически, когда ваш код импортирует `anthropic` или `@anthropic-ai/sdk`.

64 

65Чтобы запустить один из рабочих процессов skill, введите подкоманду после имени skill в приглашении Claude Code, например `/claude-api migrate`. Таблица перечисляет, что делает каждая подкоманда, и самую раннюю версию Claude Code, которая её включает. `migrate` и `managed-agents-onboard` предшествуют v2.1.221, самой старой версии, которую отслеживает таблица.

66 

67| Подкоманда | Что она делает | Минимальная версия |

68| :- | :- | :- |

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

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

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

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

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

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

75| `hillclimb` | Итеративно улучшить ваше приложение в сравнении с существующим eval | v2.1.259 или позже |

76| `preserved-thinking-migration` | Найти правки, которые ваша интеграция делает в более ранних ходах, её системный промпт или список инструментов, которые делают недействительными блоки [preserved thinking](https://platform.claude.com/docs/en/build-with-claude/preserved-thinking), измерить, сколько рассуждений каждый из них отбрасывает, и предложить исправления по одному за раз, переизмеряя после каждого изменения | v2.1.282 или позже |

77 

59<h2 id="getting-started">78<h2 id="getting-started">

60 Начало работы79 Начало работы

61</h2>80</h2>


576 595 

577[Auto-compact](/docs/ru/how-claude-code-works#when-context-fills-up) переносит вызванные skills в рамках бюджета токенов. Когда разговор суммируется для освобождения контекста, Claude Code повторно прикрепляет самый последний вызов каждого skill после резюме, сохраняя первые 5000 токенов каждого. Повторно прикрепленные skills делят объединенный бюджет 25000 токенов. Claude Code заполняет этот бюджет, начиная с самого недавно вызванного skill, поэтому старые skills могут быть полностью удалены после компактирования, если вы вызвали много в одном сеансе.596[Auto-compact](/docs/ru/how-claude-code-works#when-context-fills-up) переносит вызванные skills в рамках бюджета токенов. Когда разговор суммируется для освобождения контекста, Claude Code повторно прикрепляет самый последний вызов каждого skill после резюме, сохраняя первые 5000 токенов каждого. Повторно прикрепленные skills делят объединенный бюджет 25000 токенов. Claude Code заполняет этот бюджет, начиная с самого недавно вызванного skill, поэтому старые skills могут быть полностью удалены после компактирования, если вы вызвали много в одном сеансе.

578 597 

579Если skill кажется перестает влиять на поведение после первого ответа, содержимое обычно все еще присутствует, и модель выбирает другие tools или подходы. Усильте `description` skill и инструкции, чтобы модель продолжала его предпочитать, или используйте [hooks](/docs/ru/hooks), чтобы детерминированно обеспечить поведение. Если skill большой или вы вызвали несколько других после него, повторно вызовите его после компактирования, чтобы восстановить полное содержимое.598Если Claude перестает следовать skill на полпути через сеанс, см. [Claude перестает следовать skill](#claude-stops-following-a-skill).

580 599 

581<h3 id="pre-approve-tools-for-a-skill">600<h3 id="pre-approve-tools-for-a-skill">

582 Предварительное одобрение tools для skill601 Предварительное одобрение tools для skill


843Skill(deploy *)862Skill(deploy *)

844```863```

845 864 

846Синтаксис разрешений: `Skill(name)` для точного совпадения, `Skill(name *)` для совпадения префикса с любыми аргументами. В правиле `allow` префикс вне [пространства имен, зарезервированного для синхронизированных навыков](#names-reserved-for-synced-skills), не совпадает с именами внутри него: `Skill(anthropic *)` не охватывает `anthropic-skills:pdf`.865Синтаксис разрешений: `Skill(name)` для точного совпадения, `Skill(name *)` для совпадения префикса с любыми аргументами.

847 866 

848Если ваше правило `deny` называет псевдоним или неквалифицированное имя, а не собственное имя навыка, Claude Code все равно блокирует навык: с `Skill(review)` он блокирует встроенный `/code-review` через его псевдоним `/review`, и с `Skill(deploy)` он блокирует [вложенный навык](#where-skills-live), указанный как `apps/web:deploy` через его неквалифицированное имя. До v2.1.260 Claude Code не блокировал вложенный навык, указанный под его квалифицированным именем, когда правило deny называло только неквалифицированное имя.867В таблице показано, что правило `deny` блокирует помимо имени, которое вы пишете, в зависимости от вида имени в правиле.

868 

869| Ваши имена в правиле `deny` | Пример правила | Claude Code также блокирует |

870| :- | :- | :- |

871| Псевдоним | `Skill(review)` | Встроенный `/code-review` через его псевдоним `/review` |

872| Неквалифицированное имя | `Skill(deploy)` | [Вложенный навык](#where-skills-live), указанный как `apps/web:deploy` |

873| [Навык, синхронизированный с claude.ai](#how-synced-skills-behave) | `Skill(anthropic-skills:deploy)` | Этот навык, когда Claude Desktop доставляет его в сеанс как плагин |

874| Форма плагина синхронизированного навыка | `Skill(deploy:deploy)` | Синхронизированный навык |

875| Навык в [форме параметра](/docs/ru/permissions#match-by-input-parameter) | `Skill(skill:deploy)` | Навык, какое бы из его имен Claude не вызывал, включая его псевдоним и отображаемое имя |

849 876 

850Claude Code совпадает с правилом `allow` только с собственным именем навыка и именем в вызове Claude.877До v2.1.260 Claude Code не блокировал вложенный навык, указанный под его квалифицированным именем, когда правило deny называло только неквалифицированное имя.

851 878 

852Чтобы одобрить [синхронизированный навык](#how-synced-skills-behave) без подсказки, назовите его внутри его [зарезервированного пространства имен](#names-reserved-for-synced-skills): `Skill(anthropic-skills:pdf)` одобряет синхронизированный навык `pdf`, и `Skill(anthropic-skills *)` одобряет каждый синхронизированный навык.879Claude Code совпадает с правилом `allow` только с собственным именем навыка и именем в вызове Claude. Чтобы одобрить [синхронизированный навык](#how-synced-skills-behave) без подсказки, назовите его внутри его [зарезервированного пространства имен](#names-reserved-for-synced-skills):

880 

881* `Skill(anthropic-skills:pdf)` одобряет синхронизированный навык `pdf`

882* `Skill(anthropic-skills *)` одобряет каждый синхронизированный навык

883* `Skill(anthropic *)` не охватывает `anthropic-skills:pdf`, потому что префикс вне пространства имен не совпадает с именами внутри него

853 884 

854**Скрыть отдельные навыки** добавив `disable-model-invocation: true` в их frontmatter. Это полностью удаляет навык из контекста Claude.885**Скрыть отдельные навыки** добавив `disable-model-invocation: true` в их frontmatter. Это полностью удаляет навык из контекста Claude.

855 886 


909 940 

910Видение срабатывания навыка говорит вам, что Claude его нашел, но не то, что он сделал то, что вы намеревались. Чтобы узнать, работает ли навык, измерьте две вещи отдельно: вызывает ли Claude его на подсказках, которые он должен, и соответствует ли результат тому, что вы ожидаете, когда он это делает.941Видение срабатывания навыка говорит вам, что Claude его нашел, но не то, что он сделал то, что вы намеревались. Чтобы узнать, работает ли навык, измерьте две вещи отдельно: вызывает ли Claude его на подсказках, которые он должен, и соответствует ли результат тому, что вы ожидаете, когда он это делает.

911 942 

912Проверка обоих — это сравнение базовых показателей. Соберите несколько реалистичных подсказок, запустите каждую в свежем сеансе с доступным навыком и снова с ним [отключенным](#override-skill-visibility-from-settings), и сравните результаты. Свежий сеанс важен, потому что оставшийся контекст от создания навыка скроет пробелы в написанных инструкциях.943Проверка обоих — это сравнение базовых показателей. Соберите несколько реалистичных подсказок, запустите каждую в свежем сеансе с доступным навыком и снова с ним отключенным, и сравните результаты. Свежий сеанс важен, потому что оставшийся контекст от создания навыка скроет пробелы в написанных инструкциях.

944 

945Способ отключения навыка для второго запуска зависит от того, откуда он поступает:

913 946 

914Два инструмента автоматизируют это сравнение. Для навыка, который поставляется в [плагине](/docs/ru/plugins/overview), [`claude plugin eval`](/docs/ru/plugin-evals) запускает каждую подсказку в изолированном сеансе с плагином и без него, оценивает его с помощью оценщиков, которые вы определяете или которые он пишет для вас, и выходит с ненулевым кодом ниже порога, чтобы вы могли заблокировать CI на нем. Для итерации над одним навыком внутри разговора Claude Code плагин skill-creator ниже запускает аналогичный цикл с собственным форматом `evals/evals.json`. Эти два формата не взаимозаменяемы.947* **Личный или проектный навык**: установите его на `"off"` в [`skillOverrides`](#override-skill-visibility-from-settings).

948* **Навык, который предоставляет плагин**: `skillOverrides` не применяется к навыкам плагина. Используйте [`claude plugin eval`](/docs/ru/plugin-evals#the-no-plugin-baseline) вместо этого, который повторяет каждый запуск без загруженного плагина.

949 

950Два инструмента автоматизируют сравнение базовых показателей. Для навыка, который поставляется в [плагине](/docs/ru/plugins/overview), [`claude plugin eval`](/docs/ru/plugin-evals) запускает каждую подсказку в изолированном сеансе с плагином и без него, оценивает его с помощью оценщиков, которые вы определяете или которые он пишет для вас, и выходит с ненулевым кодом ниже порога, чтобы вы могли заблокировать CI на нем. Для итерации над одним навыком внутри разговора Claude Code плагин skill-creator ниже запускает аналогичный цикл с собственным форматом `evals/evals.json`. Эти два формата не взаимозаменяемы.

915 951 

916<h3 id="run-evals-with-skill-creator">952<h3 id="run-evals-with-skill-creator">

917 Запуск оценок с skill-creator953 Запуск оценок с skill-creator


11731. Сделайте описание более специфичным12091. Сделайте описание более специфичным

11742. Добавьте `disable-model-invocation: true`, если вы хотите только ручной вызов12102. Добавьте `disable-model-invocation: true`, если вы хотите только ручной вызов

1175 1211 

1212<h3 id="claude-stops-following-a-skill">

1213 Claude stops following a skill

1214</h3>

1215 

1216Если Claude следует skill в своем первом ответе и перестает следовать ему позже, начните с того случая, который соответствует вашей ситуации:

1217 

1218* **Claude пропустил правило, которое должно соблюдаться каждый раз**: переместите правило в [hook](/docs/ru/hooks-guide). Claude Code запускает hook каждый раз, когда происходит его событие, например перед каждым редактированием файла, независимо от того, следует ли Claude skill или нет. Чтобы сохранить правило вместе со skill, определите hook в [`hooks` frontmatter](/docs/ru/hooks#hooks-in-skills-and-agents) skill. Этот hook применяется с момента вызова skill до конца сеанса.

1219* **Claude пропустил руководство, которое он должен применять с суждением**: сформулируйте руководство так, чтобы оно применялось ко всей задаче, например "Запустите тесты после каждого редактирования" вместо "Запустите тесты". Claude Code добавляет содержимое skill в разговор при вызове skill и [не перечитывает файл](#skill-content-lifecycle) на более поздних ходах.

1220* **Разговор был сжат**: вызовите skill снова, чтобы восстановить его полное содержимое. После [сжатия](/docs/ru/how-claude-code-works#when-context-fills-up), Claude Code [может сохранить только начало вызванного skill](#skill-content-lifecycle), поэтому поместите наиболее важные инструкции в начало `SKILL.md`.

1221 

1176<h3 id="skill-descriptions-are-cut-short">1222<h3 id="skill-descriptions-are-cut-short">

1177 Skill descriptions are cut short1223 Skill descriptions are cut short

1178</h3>1224</h3>

statusline.md +1 −1

Details

1178**Процент контекста показывает неожиданные значения**1178**Процент контекста показывает неожиданные значения**

1179 1179 

1180* Используйте `used_percentage` для простейшего точного состояния контекста1180* Используйте `used_percentage` для простейшего точного состояния контекста

1181* Процент контекста может отличаться от вывода `/context` из-за времени расчёта каждого1181* Строка состояния сообщает количества из последнего ответа API, в то время как `/context` добавляет оценку для сообщений, добавленных с момента этого ответа, поэтому `/context` может показывать более высокие значения до следующего ответа

1182 1182 

1183**Ссылки OSC 8 не кликабельны**1183**Ссылки OSC 8 не кликабельны**

1184 1184 

sub-agents.md +1 −3

Details

802 - matcher: "Bash"802 - matcher: "Bash"

803 hooks:803 hooks:

804 - type: command804 - type: command

805 command: "./scripts/validate-command.sh $TOOL_INPUT"805 command: "./scripts/validate-command.sh"

806 PostToolUse:806 PostToolUse:

807 - matcher: "Edit|Write"807 - matcher: "Edit|Write"

808 hooks:808 hooks:


850}850}

851```851```

852 852 

853Matcher с дефисом, такой как `db-agent`, точно совпадает на Claude Code v2.1.195 или позже. На более ранних версиях он оценивается как unanchored regular expression и также срабатывает для любого типа агента, который его содержит, такого как `prod-db-agent`; закрепите его как `^db-agent$` на этих версиях.

854 

855См. [Hooks](/docs/ru/hooks) для полного формата конфигурации hook.853См. [Hooks](/docs/ru/hooks) для полного формата конфигурации hook.

856 854 

857<h2 id="work-with-subagents">855<h2 id="work-with-subagents">

Details

122 122 

123 <tr>123 <tr>

124 <td>Выставление счетов</td>124 <td>Выставление счетов</td>

125 <td><strong>Teams:</strong> \$150/место (Premium) с доступной оплатой по мере использования<br /><strong>Enterprise:</strong> <a href="https://claude.com/contact-sales?utm_source=claude_code&utm_medium=docs&utm_content=third_party_enterprise">Свяжитесь с отделом продаж</a></td>125 <td><strong>Teams:</strong> подписка за место с доступной оплатой по мере использования, см. <a href="https://claude.com/pricing?utm_source=claude_code&utm_medium=docs&utm_content=third_party_pricing#team-&-enterprise">цены</a><br /><strong>Enterprise:</strong> <a href="https://claude.com/contact-sales?utm_source=claude_code&utm_medium=docs&utm_content=third_party_enterprise">Свяжитесь с отделом продаж</a></td>

126 <td>Оплата по мере использования</td>126 <td>Оплата по мере использования</td>

127 <td>Оплата по мере использования через AWS</td>127 <td>Оплата по мере использования через AWS</td>

128 <td>Оплата по мере использования через AWS Marketplace</td>128 <td>Оплата по мере использования через AWS Marketplace</td>

tools-reference.md +45 −31

Details

154 Что сохраняется между командами154 Что сохраняется между командами

155</h3>155</h3>

156 156 

157* Когда Claude запускает `cd` в основной сессии, новый рабочий каталог переносится на последующие команды Bash, пока он остаётся внутри каталога проекта или [дополнительного рабочего каталога](/docs/ru/permissions#working-directories), который вы добавили с помощью `--add-dir`, `/add-dir` или `additionalDirectories` в параметрах. Это включает команды, которые Claude запускает в ответ на ваши последующие сообщения.157* Когда Claude выполняет `cd` в основной сессии, новый рабочий каталог переносится на последующие команды Bash, пока он остаётся внутри каталога проекта или [дополнительного рабочего каталога](/docs/ru/permissions#working-directories), который вы добавили с помощью `--add-dir`, `/add-dir` или `additionalDirectories` в параметрах. Это включает команды, которые Claude выполняет в ответ на ваши последующие сообщения.

158 * Сессии подагентов никогда не переносят изменения рабочего каталога.158 * Сессии подагентов никогда не переносят изменения рабочего каталога.

159 * Если `cd` приводит за пределы этих каталогов, Claude Code сбрасывает на каталог проекта и добавляет `Shell cwd was reset to <dir>` к результату инструмента.159 * Если `cd` приводит за пределы этих каталогов, Claude Code сбрасывает на каталог проекта и добавляет `Shell cwd was reset to <dir>` к результату инструмента.

160 * Чтобы отключить этот перенос, чтобы каждая команда Bash начиналась в каталоге проекта, установите `CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR=1`.160 * Чтобы отключить этот перенос, чтобы каждая команда Bash начиналась в каталоге проекта, установите `CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR=1`.


164Активируйте виртуальное окружение или окружение conda перед запуском Claude Code. Чтобы переменные окружения сохранялись между командами Bash, установите [`CLAUDE_ENV_FILE`](/docs/ru/env-vars) на скрипт оболочки перед запуском Claude Code или используйте [hook SessionStart](/docs/ru/hooks#persist-environment-variables) для его динамического заполнения.164Активируйте виртуальное окружение или окружение conda перед запуском Claude Code. Чтобы переменные окружения сохранялись между командами Bash, установите [`CLAUDE_ENV_FILE`](/docs/ru/env-vars) на скрипт оболочки перед запуском Claude Code или используйте [hook SessionStart](/docs/ru/hooks#persist-environment-variables) для его динамического заполнения.

165 165 

166<h3 id="timeout-and-output-limits">166<h3 id="timeout-and-output-limits">

167 Ограничения по времени ожидания и выводу167 Ограничения по времени и выводу

168</h3>168</h3>

169 169 

170Каждая команда выполняется с ограничением по времени, и Claude управляет им: когда ему требуется больше времени, чем по умолчанию для команды, он передаёт параметр `timeout` с этим вызовом — вы никогда не устанавливаете ограничение по времени для отдельной команды. Две [переменные окружения](/docs/ru/env-vars) ограничивают то, что получает Claude:170Каждая команда выполняется с ограничением по времени, которым управляет Claude: когда ему требуется больше времени, чем по умолчанию для команды, он передаёт параметр `timeout` с этим вызовом. Вы никогда не устанавливаете ограничение по времени для отдельной команды.

171 171 

172* `BASH_DEFAULT_TIMEOUT_MS` — значение по умолчанию, когда Claude не передаёт ограничение по времени; две минуты из коробки172Две [переменные окружения](/docs/ru/env-vars) контролируют, что Claude получает для команды, которая выполняется на переднем плане:

173* `BASH_MAX_TIMEOUT_MS` — с значением по умолчанию устанавливает потолок, который ограничивает всё, что запрашивает Claude: эффективный потолок — это больший из двух, десять минут из коробки173 

174* `BASH_DEFAULT_TIMEOUT_MS` — значение по умолчанию, когда Claude не передаёт timeout; две минуты из коробки

175* `BASH_MAX_TIMEOUT_MS` — по умолчанию устанавливает потолок, который ограничивает всё, что запрашивает Claude: эффективный потолок — это больший из двух, десять минут из коробки

176 

177Для команды, которую Claude запускает в фоне, `timeout` вместо этого устанавливает, как долго команда может работать там, с отдельным значением по умолчанию и максимумом, описанным в разделе [Фоновые команды](#background-commands). [Инструмент PowerShell](#powershell-tool) следует тем же правилам timeout и читает те же две переменные.

174 178 

175<h4 id="output-limits">179<h4 id="output-limits">

176 Ограничения по выводу180 Ограничения по выводу

177</h4>181</h4>

178 182 

179Claude Code передаёт вывод команды в рабочий файл по мере выполнения команды; команда, выход которой превышает 5 ГБ, прерывается. Когда команда завершается, Claude Code читает вывод обратно из этого файла, вплоть до окна чтения, описанного ниже. Сколько вывода достигает Claude встроенным образом, зависит от того, рассматривает ли Claude Code результат как ошибку:183Claude Code передаёт вывод команды в рабочий файл по мере выполнения команды; команда, вывод которой превышает 5 ГБ, прерывается. Когда команда завершается, Claude Code читает вывод обратно из этого файла, вплоть до окна обратного чтения, описанного ниже. Сколько вывода достигает Claude встроенно, зависит от того, рассматривает ли Claude Code результат как ошибку:

180 184 

181| Результат | Что получает Claude |185| Результат | Что получает Claude |

182| :- | :- |186| :- | :- |

183| Действительный | Встроенный до примерно 30 000 символов по умолчанию; сверх этого, путь файла, сохранённого в каталог сессии и усечённого сверх 64 МиБ, плюс предпросмотр до 2 000 первых символов, и Claude читает или ищет файл, когда ему нужен остаток |187| Успешный | Встроенно до примерно 30 000 символов по умолчанию; сверх этого, путь файла, сохранённого в каталог сессии и усечённого сверх 64 МиБ, плюс предпросмотр до первых 2 000 символов, и Claude читает или ищет файл, когда ему нужен остаток |

184| Ошибка | Встроенный до примерно 10 000 символов; сверх этого, выдержка начала и конца этого размера, вырезанная из окна чтения, без пути файла |188| Ошибка | Встроенно до примерно 10 000 символов; сверх этого, выдержка начала и конца этого размера, вырезанная из окна обратного чтения, без пути файла |

185 189 

186Команда, которая выходит с кодом 1, считается действительным результатом для инструмента Bash только когда Claude Code распознаёт код выхода 1 как благоприятный результат для этой команды: `grep`, `rg`, `egrep`, `fgrep`, `find`, `diff`, `test` и `[`, плюс `git diff` и `git grep`. Каждая другая команда, которая выходит с кодом 1, считается ошибкой, даже когда код выхода 1 — это благоприятный информационный результат: нет совпадений для `pgrep` и `jq -e`, файлы, которые отличаются для `cmp`.190Команда, которая выходит с кодом 1, считается успешным результатом для инструмента Bash только когда Claude Code распознаёт код выхода 1 как благоприятный результат для этой команды: `grep`, `rg`, `egrep`, `fgrep`, `find`, `diff`, `test` и `[`, плюс `git diff` и `git grep`. Каждая другая команда, которая выходит с кодом 1, считается ошибкой, даже когда код выхода 1 — это благоприятный информационный результат: нет совпадений для `pgrep` и `jq -e`, файлы, которые отличаются для `cmp`.

187 191 

188[`BASH_MAX_OUTPUT_LENGTH`](/docs/ru/env-vars) устанавливает, сколько символов вывода Claude Code читает обратно из рабочего файла в результат команды: 30 000 по умолчанию, вплоть до жёсткого потолка в 150 000. Увеличьте его, когда ваши команды регулярно переполняют это окно, например, подробная сборка или полный журнал набора тестов. Увеличение его расширяет окно чтения, которое также является окном, из которого вырезается выдержка команды с ошибкой. Оно не повышает встроенные потолки: действительный результат сверх встроенного потолка поступает как путь файла плюс предпросмотр независимо от этой переменной.192[`BASH_MAX_OUTPUT_LENGTH`](/docs/ru/env-vars) устанавливает, сколько символов вывода Claude Code читает обратно из рабочего файла в результат команды: 30 000 по умолчанию, вплоть до жёсткого потолка в 150 000. Увеличьте его, когда ваши команды регулярно переполняют это окно, например подробная сборка или полный журнал набора тестов. Увеличение его расширяет окно обратного чтения, которое также является окном, из которого вырезается выдержка команды с ошибкой. Оно не повышает встроенные потолки: успешный результат сверх встроенного потолка поступает как путь файла плюс предпросмотр независимо от этой переменной.

189 193 

190Чтобы изменить, сколько действительного результата Claude получает встроенным образом, установите параметр [`bashOutputMaxChars`](/docs/ru/settings-reference#bashoutputmaxchars) вместо этого, вплоть до 128 000 символов. Он определяет встроенный потолок и окно чтения вместе, и Claude Code затем игнорирует `BASH_MAX_OUTPUT_LENGTH`. Требуется Claude Code v2.1.261 или позже.194Чтобы изменить, сколько успешного результата Claude получает встроенно, установите параметр [`bashOutputMaxChars`](/docs/ru/settings-reference#bashoutputmaxchars) вместо этого, вплоть до 128 000 символов. Он размеры встроенный потолок и окно обратного чтения вместе, и Claude Code затем игнорирует `BASH_MAX_OUTPUT_LENGTH`. Требует Claude Code v2.1.261 или позже.

191 195 

192<h3 id="background-commands">196<h3 id="background-commands">

193 Фоновые команды197 Фоновые команды

194</h3>198</h3>

195 199 

196Для долгоживущих процессов, таких как серверы разработки или сборки с отслеживанием, Claude может установить `run_in_background: true` для запуска команды как фоновой задачи и продолжения работы во время её выполнения. Перечислите и остановите фоновые задачи с помощью `/tasks`. После того как вы остановите одну там или из подключённого клиента, такого как настольное приложение, Claude переходит дальше вместо ожидания. Если подагент запустил команду, это подагент, который переходит дальше.200Для долгоживущих процессов, таких как серверы разработки или сборки с отслеживанием, Claude может установить `run_in_background: true` для запуска команды как фоновой задачи и продолжения работы во время её выполнения. Перечислите и остановите фоновые задачи с помощью `/tasks`. После того как вы остановите одну там или из подключённого клиента, такого как приложение для рабочего стола, Claude продолжает работу вместо ожидания. Если подагент запустил команду, это подагент, который продолжает работу.

201 

202Команда, которую [подагент переднего плана](/docs/ru/sub-agents#run-subagents-in-foreground-or-background) запустил, останавливается, когда запуск этого подагента заканчивается, независимо от того, завершился ли он, произошла ошибка или был прерван. Команда, которую основной разговор или фоновый подагент запустил, продолжает работать после окончательного ответа, пока она не выйдет, не будет остановлена или не достигнет своего временного ограничения. В неинтерактивном режиме с флагом `-p` [фоновые команды заканчиваются вскоре после окончательного результата запуска](/docs/ru/headless#background-tasks-at-exit).

203 

204Фоновые команды Bash и PowerShell имеют временное ограничение, отсчитываемое с момента входа команды в фон:

205 

206* Команда, которую Claude запускает в фоне, получает 30 минут или `timeout`, который Claude передаёт с `run_in_background`, вплоть до максимума в 2 часа

207* Команда, которая начинается на переднем плане и затем переходит в фон, например с помощью `Ctrl+B` или при её timeout, получает 30 минут с момента перехода

208 

209Две [переменные окружения](/docs/ru/env-vars) повышают эти ограничения для команд Bash и PowerShell одинаково. Обе принимают миллисекунды, и ни одна не может сократить ограничение: более низкое значение оставляет 30-минутное значение по умолчанию и 2-часовой максимум на месте.

197 210 

198Команда, которую запустил [подагент переднего плана](/docs/ru/sub-agents#run-subagents-in-foreground-or-background), останавливается, когда этот подагент даёт свой окончательный ответ. Команда, которую запустила основная беседа или фоновый подагент, продолжает работать после окончательного ответа. В неинтерактивном режиме с флагом `-p` [фоновые команды заканчиваются вскоре после окончательного результата запуска](/docs/ru/headless#background-tasks-at-exit).211* Установите `BASH_DEFAULT_TIMEOUT_MS` выше `1800000`, чтобы заменить 30-минутное значение по умолчанию этим значением, как для команд, которые Claude запускает без `timeout`, так и для перемещённых команд

212* Установите `BASH_MAX_TIMEOUT_MS` выше `7200000`, чтобы повысить 2-часовой максимум до этого значения. Установка `BASH_DEFAULT_TIMEOUT_MS` выше `7200000` повышает максимум таким же образом

199 213 

200Когда команда достигает своего ограничения по времени без завершения, Claude Code перемещает её в фон вместо остановки, если только команда не начинается с `sleep`. Claude продолжает работать, пока команда продолжает выполняться. Claude Code применяет те же правила жизненного цикла к перемещённой команде, как и к любой другой фоновой команде, поэтому она всё ещё заканчивает команду подагента переднего плана при окончательном ответе этого подагента. Установка [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS=1`](/docs/ru/env-vars#variables) отключает автоматическое перемещение в фон вместе с остальной функциональностью фоновых задач.214Когда фоновая команда достигает своего временного ограничения, Claude Code останавливает её и сообщает Claude, почему, и Claude может запустить команду снова с более длительным `timeout`, если работа всё ещё нужна. Уведомление об остановке гласит `Background command "<description>" was stopped after reaching its background time limit`.

215 

216Когда команда переднего плана достигает своего timeout без завершения, Claude Code перемещает её в фон вместо остановки, если только команда не начинается с `sleep`. Временное ограничение перемещённой команды отсчитывается с момента перемещения, и перемещённая команда подагента переднего плана всё ещё останавливается, когда запуск этого подагента заканчивается.

217 

218Установка [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS=1`](/docs/ru/env-vars#variables) отключает автоматическое перемещение в фон вместе с остальной функциональностью фоновых задач.

201 219 

202Результат команды, перемещённой в фон, указывает, что произошло:220Результат команды, перемещённой в фон, указывает, что произошло:

203 221 

204* Когда ограничение по времени запускает перемещение, результат сообщает об этом явно: `Command did not complete within its 120s timeout and was moved to the background`, с секундами, соответствующими применённому ограничению по времени, за которым следует ID задачи и путь файла, в который записывается вывод.222* Когда timeout запускает перемещение, результат сообщает об этом явно: `Command did not complete within its 120s timeout and was moved to the background`, с секундами, соответствующими применённому timeout, за которым следует ID задачи и путь файла, в который записывается вывод.

205* `cd`, `pushd`, `popd` или `chdir` внутри команды, которая перемещается в фон, никогда не переносятся: результат указывает `Session cwd remains <dir>; directory changes made by the backgrounded command do not apply to subsequent commands.`, поэтому Claude не действует на изменение каталога, которое не произошло.223* `cd`, `pushd`, `popd` или `chdir` внутри команды, которая перемещается в фон, никогда не переносится: результат гласит `Session cwd remains <dir>; directory changes made by the backgrounded command do not apply to subsequent commands.`, поэтому Claude не действует на изменение каталога, которое не произошло.

206 224 

207<h3 id="memory-limit-on-linux-and-wsl">225<h3 id="memory-limit-on-linux-and-wsl">

208 Ограничение памяти на Linux и WSL226 Ограничение памяти на Linux и WSL

209</h3>227</h3>

210 228 

211На Linux и WSL установите [`CLAUDE_CODE_TOOL_MEMORY_LIMIT`](/docs/ru/env-vars#variables) на размер, такой как `4G`, чтобы ограничить память, которую могут использовать команды Bash, PowerShell и инструмента [Monitor](#monitor-tool), чтобы одна неконтролируемая сборка не отняла память, которая нужна остальной сессии. Требуется Claude Code v2.1.233 или позже. До v2.1.246 команды инструмента Monitor выполнялись вне ограничения.229На Linux и WSL установите [`CLAUDE_CODE_TOOL_MEMORY_LIMIT`](/docs/ru/env-vars#variables) на размер, такой как `4G`, чтобы ограничить память, которую могут использовать команды Bash, PowerShell и [Monitor](#monitor-tool), чтобы одна неконтролируемая сборка не заняла память, которая нужна остальной сессии. Требует Claude Code v2.1.233 или позже. До v2.1.246 команды Monitor работали вне ограничения.

212 230 

213* Напишите размер как количество байтов или с суффиксом `K`, `M`, `G` или `T`. Установите `0`, `off`, `false`, `no` или `none`, чтобы отключить ограничение. Claude Code игнорирует любое другое значение, которое он не может прочитать как размер, например `4e9`.231* Напишите размер как количество байтов или с суффиксом `K`, `M`, `G` или `T`. Установите `0`, `off`, `false`, `no` или `none`, чтобы отключить ограничение. Claude Code игнорирует любое другое значение, которое не может прочитать как размер, например `4e9`.

214* Claude Code считает все команды Bash, PowerShell и Monitor сессии в одно ограничение, а не каждую команду отдельно.232* Claude Code считает все команды Bash, PowerShell и Monitor сессии по одному ограничению, а не каждую команду отдельно.

215* Claude Code применяет ограничение с помощью cgroup памяти. Когда он не может установить cgroup, команды выполняются без ограничения, и журнал отладки из `claude --debug` указывает почему.233* Claude Code применяет ограничение с помощью cgroup памяти. Когда он не может установить cgroup, команды выполняются без ограничения, и журнал отладки из `claude --debug` говорит, почему.

216* После того как первый процесс, который Claude Code запустил, включил ограничение или отключил его из-за значения off или неудачной установки cgroup, Claude Code удерживает этот результат до перезапуска. Чтобы применить изменённое или удалённое значение или исправленную установку, запустите `claude` снова.234* После того как первый процесс, который Claude Code запускает, включил ограничение или отключил его из-за значения off или неудачной установки cgroup, Claude Code удерживает этот результат, пока вы не перезапустите. Чтобы применить изменённое или удалённое значение или исправленную установку, запустите `claude` снова.

217* Когда команды не могут оставаться в пределах ограничения, ядро убивает команду, и ничто в её результате не называет ограничение.235* Когда команды не могут оставаться под ограничением, ядро убивает команду, и ничто в её результате не называет ограничение.

218 236 

219Claude Code также может считать другие виды процессов, которые он запускает, в одно и то же ограничение. Установите [`CLAUDE_CODE_TOOL_MEMORY_CGROUP_EXCLUDE`](/docs/ru/env-vars#variables) на список, разделённый запятыми, видов, которые нужно исключить из ограничения; Claude Code применяет ограничение к каждому виду, который не в вашем списке. Установите его на `none`, чтобы ограничить каждый вид, или на `all-new`, чтобы ограничить только команды Bash, PowerShell и Monitor tool. Требуется Claude Code v2.1.246 или позже. Виды, которые вы можете назвать:237Claude Code также может считать другие виды процессов, которые он запускает, по тому же ограничению. Установите [`CLAUDE_CODE_TOOL_MEMORY_CGROUP_EXCLUDE`](/docs/ru/env-vars#variables) на список видов, разделённый запятыми, которые нужно исключить из ограничения; Claude Code применяет ограничение к каждому виду, который не в вашем списке. Установите его на `none`, чтобы ограничить каждый вид, или на `all-new`, чтобы ограничить только команды Bash, PowerShell и Monitor. Требует Claude Code v2.1.246 или позже. Виды, которые вы можете назвать:

220 238 

221* `mcp`: локальные [серверы MCP](/docs/ru/mcp)239* `mcp`: локальные [серверы MCP](/docs/ru/mcp)

222* `lsp`: [языковые серверы](#lsp-tool-behavior)240* `lsp`: [языковые серверы](#lsp-tool-behavior)


227 245 

228Что бы вы ни указали, применяются эти правила:246Что бы вы ни указали, применяются эти правила:

229 247 

230* **Неизвестные имена**: Claude Code игнорирует имена, которые он не распознаёт248* **Неизвестные имена**: Claude Code игнорирует имена, которые не распознаёт

231* **Bash, PowerShell и Monitor**: Claude Code держит команды Bash, PowerShell и Monitor tool под ограничением, что бы вы ни указали249* **Bash, PowerShell и Monitor**: Claude Code держит команды Bash, PowerShell и Monitor под ограничением, что бы вы ни указали

232* **Переменная не установлена**: Claude Code берёт набор других ограниченных видов из конфигурации, которую Anthropic доставляет с сервера, и этот набор может меняться со временем, поэтому установите переменную, когда вам нужен набор, который не меняется250* **Переменная не установлена**: Claude Code берёт набор других видов с ограничением из конфигурации, которую Anthropic доставляет с сервера, и этот набор может меняться со временем, поэтому установите переменную, когда вам нужен набор, который не меняется

233* **Hooks с контролем разрешений**: даже со всеми видами под ограничением, Claude Code исключает из ограничения hook, который может заблокировать или изменить результат действия, и любой сервер MCP, который такой hook вызывает, поэтому ядро, убивающее hook с контролем разрешений, не может разрешить действие, которое он блокировал251* **Hooks с ограничением разрешений**: даже со всеми видами с ограничением, Claude Code исключает из ограничения hook, который может заблокировать или изменить результат действия, и любой сервер MCP, который такой hook вызывает, поэтому ядро, убивающее hook с ограничением разрешений, не может разрешить действие, которое он блокировал

234 252 

235<h2 id="edit-tool-behavior">253<h2 id="edit-tool-behavior">

236 Поведение инструмента Edit254 Поведение инструмента Edit


382 WebSocket source400 WebSocket source

383</h3>401</h3>

384 402 

385<Note>

386 Источник WebSocket требует Claude Code v2.1.195 или более поздней версии.

387</Note>

388 

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

390 404 

391* **Текстовые сообщения**: каждое становится одним событием, даже если сообщение занимает несколько строк.405* **Текстовые сообщения**: каждое становится одним событием, даже если сообщение занимает несколько строк.

Details

445 TLS or SSL connection errors445 TLS or SSL connection errors

446</h3>446</h3>

447 447 

448Ошибки вроде `curl: (35) TLS connect error`, `schannel: next InitializeSecurityContext failed` или PowerShell's `Could not establish trust relationship for the SSL/TLS secure channel` указывают на сбои TLS handshake.448Ошибки такие как эти означают, что TLS handshake не удался:

449 

450* `curl: (35) TLS connect error`

451* `schannel: next InitializeSecurityContext failed`

452* PowerShell's `Could not create SSL/TLS secure channel`

453* PowerShell's `Could not establish trust relationship for the SSL/TLS secure channel`

449 454 

450**Решения:**455**Решения:**

451 456 


1017 403 Forbidden after login1022 403 Forbidden after login

1018</h3>1023</h3>

1019 1024 

1020Если вы видите `API Error: 403 {"error":{"type":"forbidden","message":"Request not allowed"}}` после входа:1025Если вы видите `API Error: 403 Request not allowed` после входа:

1021 1026 

1022* **Пользователи Claude Pro/Max**: проверьте, что ваша подписка активна на [claude.ai/settings](https://claude.ai/settings)1027* **Пользователи Claude Pro/Max**: проверьте, что ваша подписка активна на [claude.ai/settings](https://claude.ai/settings)

1023* **Пользователи Anthropic Console**: подтвердите, что ваша учётная запись имеет роль "Claude Code" или "Developer". Администраторы назначают это в Anthropic Console под Settings → Members.1028* **Пользователи Anthropic Console**: подтвердите, что ваша учётная запись имеет роль "Claude Code" или "Developer". Администраторы назначают это в Anthropic Console под Settings → Members.

Details

52 Файл `.heapsnapshot` содержит каждую строку в процессе, включая вашу полную беседу и учётные данные. Не прикрепляйте его к публичной проблеме и не делитесь им.52 Файл `.heapsnapshot` содержит каждую строку в процессе, включая вашу полную беседу и учётные данные. Не прикрепляйте его к публичной проблеме и не делитесь им.

53</Warning>53</Warning>

54 54 

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

56 56 

57Сделайте одно из двух с выводом:57Сделайте одно из двух с выводом:

58 58 

workflows.md +1 −1

Details

91 Смотреть запуск91 Смотреть запуск

92</h3>92</h3>

93 93 

94Workflows работают в фоне, поэтому сессия остаётся отзывчивой, пока агенты работают. Запустите `/workflows` в любое время для списка работающих и завершённых workflows, затем выберите один для открытия его представления прогресса.94Workflows работают в фоне, поэтому сессия остаётся отзывчивой, пока агенты работают. Запустите `/workflows` в любое время для списка работающих и завершённых workflows, затем выберите один для открытия его представления прогресса. Чтобы остановить работающий workflow без его открытия, выберите его в списке и нажмите `x`.

95 95 

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

97 97