SpyBara
Go Premium

Documentation 2026-11-13 23:02 UTC to 2026-11-14 03:01 UTC

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

14 14 

15## Как работает checkpointing15## Как работает checkpointing

16 16 

17Когда вы включаете file checkpointing, SDK создаёт резервные копии файлов перед их изменением через инструменты Write, Edit или NotebookEdit. Пользовательские сообщения в потоке ответов включают UUID checkpoint, который вы можете использовать как точку восстановления.17Когда вы включаете file checkpointing, SDK создаёт резервные копии файлов перед их изменением через инструменты Write, Edit или NotebookEdit. Каждый промпт, с которого начинается ход, является checkpoint, а UUID его пользовательского сообщения служит точкой восстановления.

18 18 

19> [!NOTE]19> [!NOTE]

20>20>


147 147 

148**2. Захват UUID checkpoint и ID сеанса**148**2. Захват UUID checkpoint и ID сеанса**

149 149 

150С установленным параметром `replay-user-messages`, каждое пользовательское сообщение в потоке ответов имеет UUID, который служит checkpoint.150При установленном параметре `replay-user-messages` пользовательское сообщение для каждого промпта, начинающего ход, имеет UUID, который служит чекпоинтом. Пользовательские сообщения, содержащие результаты инструментов, тоже имеют UUID, но он не является чекпоинтом.

151 151 

152Для большинства случаев использования захватите UUID первого пользовательского сообщения (`message.uuid`); отмотка к нему восстанавливает отслеживаемые файлы в их исходное состояние. Чтобы сохранить несколько checkpoint и отмотать к промежуточным состояниям, см. [Несколько точек восстановления](#multiple-restore-points).152Для большинства случаев использования захватите UUID первого пользовательского сообщения (`message.uuid`); отмотка к нему восстанавливает отслеживаемые файлы в их исходное состояние. Чтобы сохранить несколько checkpoint и отмотать к промежуточным состояниям, см. [Несколько точек восстановления](#multiple-restore-points).

153 153 


171 171 

172### Checkpoint перед рискованными операциями172### Checkpoint перед рискованными операциями

173 173 

174Этот паттерн сохраняет только самый последний UUID checkpoint, обновляя его перед каждым ходом агента. Если что-то пойдёт не так во время обработки, вы можете немедленно отмотать к последнему безопасному состоянию и выйти из цикла.174Этот паттерн сохраняет только самый последний UUID чекпоинта и обновляет его при каждом промпте, который начинает ход. Если что-то пойдёт не так во время обработки, вы можете немедленно отмотать к последнему безопасному состоянию и выйти из цикла.

175 175 

176Перед запуском этого примера замените `your_revert_condition` (Python) или `yourRevertCondition` (TypeScript) на вашу собственную проверку, такую как обнаружение ошибок или сбой валидации; заполнитель не определён в примере.176Перед запуском этого примера замените `your_revert_condition` (Python) или `yourRevertCondition` (TypeScript) на вашу собственную проверку, такую как обнаружение ошибок или сбой валидации; заполнитель не определён в примере.

177 177 


193 await client.query("Refactor the authentication module")193 await client.query("Refactor the authentication module")

194 194 

195 async for message in client.receive_response():195 async for message in client.receive_response():

196 # Update checkpoint before each agent turn starts196 # Update checkpoint at each prompt you send; a tool result isn't one

197 # This overwrites the previous checkpoint. Only keep the latest197 # This overwrites the previous checkpoint. Only keep the latest

198 if isinstance(message, UserMessage) and message.uuid:198 if (

199 isinstance(message, UserMessage)

200 and message.uuid

201 and message.tool_use_result is None

202 and message.parent_tool_use_id is None

203 ):

199 safe_checkpoint = message.uuid204 safe_checkpoint = message.uuid

200 205 

201 # Decide when to revert based on your own logic206 # Decide when to revert based on your own logic


225 let safeCheckpoint: string | undefined;230 let safeCheckpoint: string | undefined;

226 231 

227 for await (const message of response) {232 for await (const message of response) {

228 // Update checkpoint before each agent turn starts233 // Update checkpoint at each prompt you send; a tool result isn't one

229 // This overwrites the previous checkpoint. Only keep the latest234 // This overwrites the previous checkpoint. Only keep the latest

230 if (message.type === "user" && message.uuid) {235 if (message.type === "user" && "isReplay" in message && message.isReplay && message.uuid) {

231 safeCheckpoint = message.uuid;236 safeCheckpoint = message.uuid;

232 }237 }

233 238 


246 251 

247### Несколько точек восстановления252### Несколько точек восстановления

248 253 

249Если Claude вносит изменения в несколько ходов, вы можете захотеть отмотать к определённой точке, а не полностью назад. Например, если Claude рефакторит файл в ход один и добавляет тесты в ход два, вы можете захотеть сохранить рефакторинг, но отменить тесты.254Если Claude вносит изменения на протяжении нескольких промптов, вы можете захотеть отмотать к определённой точке, а не полностью назад. Например, если ваш первый промпт рефакторит файл, а второй добавляет тесты, отмотайте к чекпоинту второго промпта, чтобы сохранить рефакторинг и отменить тесты.

250 255 

251Этот паттерн сохраняет все UUID checkpoint в массиве с метаданными. После завершения сеанса вы можете отмотать к любому предыдущему checkpoint:256Этот паттерн сохраняет UUID каждого чекпоинта в массиве с метаданными. После завершения сессии вы можете отмотать к любому предыдущему чекпоинту:

252 257 

253```python Python theme={null}258```python Python theme={null}

254import asyncio259import asyncio


284 await client.query("Refactor the authentication module")289 await client.query("Refactor the authentication module")

285 290 

286 async for message in client.receive_response():291 async for message in client.receive_response():

287 if isinstance(message, UserMessage) and message.uuid:292 if (

293 isinstance(message, UserMessage)

294 and message.uuid

295 and message.tool_use_result is None

296 and message.parent_tool_use_id is None

297 ):

288 checkpoints.append(298 checkpoints.append(

289 Checkpoint(299 Checkpoint(

290 id=message.uuid,300 id=message.uuid,


338 348 

339 try {349 try {

340 for await (const message of response) {350 for await (const message of response) {

341 if (message.type === "user" && message.uuid) {351 if (message.type === "user" && "isReplay" in message && message.isReplay && message.uuid) {

342 checkpoints.push({352 checkpoints.push({

343 id: message.uuid,353 id: message.uuid,

344 description: `After turn ${checkpoints.length + 1}`,354 description: `After turn ${checkpoints.length + 1}`,


638 648 

639* File checkpointing не был включён в исходном сеансе (`enable_file_checkpointing` или `enableFileCheckpointing` не был установлен на `true`)649* File checkpointing не был включён в исходном сеансе (`enable_file_checkpointing` или `enableFileCheckpointing` не был установлен на `true`)

640* Сеанс не был должным образом завершён перед попыткой возобновления и отмотки650* Сеанс не был должным образом завершён перед попыткой возобновления и отмотки

651* UUID взят из пользовательского сообщения, содержащего результат инструмента, которое не является чекпоинтом

641 652 

642**Решение**: Убедитесь, что `enable_file_checkpointing=True` (Python) или `enableFileCheckpointing: true` (TypeScript) был установлен в исходном сеансе, затем используйте паттерн, показанный в примерах: захватите UUID первого пользовательского сообщения, полностью завершите сеанс, затем возобновите с пустым приглашением и вызовите `rewindFiles()` один раз.653**Решение**: Убедитесь, что `enable_file_checkpointing=True` (Python) или `enableFileCheckpointing: true` (TypeScript) был установлен в исходном сеансе, затем используйте паттерн, показанный в примерах: захватите UUID первого пользовательского сообщения, полностью завершите сеанс, затем возобновите с пустым приглашением и вызовите `rewindFiles()` один раз.

643 654 

Details

496| **Постоянство** | Файл для каждого проекта | Сохранено как файлы | Только сеанс | Только сеанс |496| **Постоянство** | Файл для каждого проекта | Сохранено как файлы | Только сеанс | Только сеанс |

497| **Переиспользуемость** | Для каждого проекта | Между проектами | Дублирование кода | Дублирование кода |497| **Переиспользуемость** | Для каждого проекта | Между проектами | Дублирование кода | Дублирование кода |

498| **Управление** | На файловой системе | CLI + файлы | В коде | В коде |498| **Управление** | На файловой системе | CLI + файлы | В коде | В коде |

499| **Инструменты по умолчанию** | Сохранены | Сохранены | Сохранены | Потеряны (если не включены) |499| **Указания по инструментам** | Сохранены | Сохранены | Сохранены | Потеряны (если не включены) |

500| **Встроенная безопасность** | Поддерживается | Поддерживается | Поддерживается | Должна быть добавлена |500| **Встроенная безопасность** | Поддерживается | Поддерживается | Поддерживается | Должна быть добавлена |

501| **Уровень настройки** | Только добавления | Добавления; можно исключить инструкции по написанию кода | Только добавления | Полный контроль |501| **Уровень настройки** | Только добавления | Добавления; можно исключить инструкции по написанию кода | Только добавления | Полный контроль |

502| **Контроль версий** | С проектом | Да | С кодом | С кодом |502| **Контроль версий** | С проектом | Да | С кодом | С кодом |

Details

875| `allowed_tools` | `list[str]` | `[]` | Инструменты для автоматического одобрения без запроса разрешения, за исключением чтения по [сетевым путям](https://code.claude.com/docs/ru/permissions.md#network-paths). Это не ограничивает Claude только этими инструментами. Если вы укажете здесь один из [инструментов отслеживания задач](https://code.claude.com/docs/ru/agent-sdk/todo-tracking.md#model-availability), Claude Code также включает их для сессии. Остальные неуказанные инструменты передаются на обработку `permission_mode` и `can_use_tool`. Используйте `disallowed_tools` для блокировки инструментов. См. [Разрешения](https://code.claude.com/docs/ru/agent-sdk/permissions.md#allow-and-deny-rules) |875| `allowed_tools` | `list[str]` | `[]` | Инструменты для автоматического одобрения без запроса разрешения, за исключением чтения по [сетевым путям](https://code.claude.com/docs/ru/permissions.md#network-paths). Это не ограничивает Claude только этими инструментами. Если вы укажете здесь один из [инструментов отслеживания задач](https://code.claude.com/docs/ru/agent-sdk/todo-tracking.md#model-availability), Claude Code также включает их для сессии. Остальные неуказанные инструменты передаются на обработку `permission_mode` и `can_use_tool`. Используйте `disallowed_tools` для блокировки инструментов. См. [Разрешения](https://code.claude.com/docs/ru/agent-sdk/permissions.md#allow-and-deny-rules) |

876| `system_prompt` | `str \| SystemPromptPreset \| SystemPromptCustom \| SystemPromptFile \| None` | `None` | Конфигурация системного промпта. Передайте строку для пользовательского промпта, `{"type": "preset", "preset": "claude_code"}` для системного промпта Claude Code с необязательным `"append"`, `{"type": "custom", "prompt": "..."}` для пользовательского промпта, который также может задать `"snapshot"`, или `{"type": "file", "path": "..."}` для загрузки большого промпта с диска. См. [`SystemPromptPreset`](#systempromptpreset), [`SystemPromptCustom`](#systempromptcustom) и [`SystemPromptFile`](#systempromptfile) |876| `system_prompt` | `str \| SystemPromptPreset \| SystemPromptCustom \| SystemPromptFile \| None` | `None` | Конфигурация системного промпта. Передайте строку для пользовательского промпта, `{"type": "preset", "preset": "claude_code"}` для системного промпта Claude Code с необязательным `"append"`, `{"type": "custom", "prompt": "..."}` для пользовательского промпта, который также может задать `"snapshot"`, или `{"type": "file", "path": "..."}` для загрузки большого промпта с диска. См. [`SystemPromptPreset`](#systempromptpreset), [`SystemPromptCustom`](#systempromptcustom) и [`SystemPromptFile`](#systempromptfile) |

877| `mcp_servers` | `dict[str, McpServerConfig] \| str \| Path` | `{}` | Конфигурации MCP-серверов или путь к файлу конфигурации |877| `mcp_servers` | `dict[str, McpServerConfig] \| str \| Path` | `{}` | Конфигурации MCP-серверов или путь к файлу конфигурации |

878| `strict_mcp_config` | `bool` | `False` | Когда `True`, используются только серверы, переданные в `mcp_servers`, а `.mcp.json` проекта, пользовательские настройки, MCP-серверы, предоставленные плагинами, и [коннекторы claude.ai](https://code.claude.com/docs/ru/mcp.md#use-mcp-servers-from-claude-ai) игнорируются. Соответствует флагу CLI `--strict-mcp-config` |878| `strict_mcp_config` | `bool` | `False` | При значении `True` используются серверы, переданные в `mcp_servers`, а файл `.mcp.json` проекта, пользовательские настройки, MCP-серверы, предоставляемые плагинами, и [коннекторы claude.ai](https://code.claude.com/docs/ru/mcp.md#use-mcp-servers-from-claude-ai) игнорируются. Соответствует флагу CLI `--strict-mcp-config` |

879| `permission_mode` | `PermissionMode \| None` | `None` | Режим разрешений для использования инструментов |879| `permission_mode` | `PermissionMode \| None` | `None` | Режим разрешений для использования инструментов |

880| `continue_conversation` | `bool` | `False` | Продолжить самый последний диалог |880| `continue_conversation` | `bool` | `False` | Продолжить самый последний диалог |

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

Details

340| `Read`, `Edit`, `Glob` | Анализ и изменение кода |340| `Read`, `Edit`, `Glob` | Анализ и изменение кода |

341| `Read`, `Edit`, `Bash`, `Glob`, `Grep` | Полная автоматизация |341| `Read`, `Edit`, `Bash`, `Glob`, `Grep` | Полная автоматизация |

342 342 

343Чтобы ограничить встроенные инструменты агента одним из этих наборов, передайте его как `tools`. Если вместо этого вы укажете набор в `allowedTools`, вы [заранее одобрите эти инструменты](https://code.claude.com/docs/ru/agent-sdk/custom-tools.md#configure-allowed-tools), и агент по-прежнему сможет вызывать остальные в соответствии с вашим режимом разрешений.

344 

343**Режимы разрешений** контролируют, сколько человеческого надзора вы хотите. SDK оценивает активный режим вместе с вашими правилами разрешения и запрета в фиксированном порядке, описанном в [Как оцениваются разрешения](https://code.claude.com/docs/ru/agent-sdk/permissions.md#how-permissions-are-evaluated). Для полного списка режимов, их поведения и когда использовать каждый, см. [Режим разрешений в Как работает цикл агента](https://code.claude.com/docs/ru/agent-sdk/agent-loop.md#permission-mode).345**Режимы разрешений** контролируют, сколько человеческого надзора вы хотите. SDK оценивает активный режим вместе с вашими правилами разрешения и запрета в фиксированном порядке, описанном в [Как оцениваются разрешения](https://code.claude.com/docs/ru/agent-sdk/permissions.md#how-permissions-are-evaluated). Для полного списка режимов, их поведения и когда использовать каждый, см. [Режим разрешений в Как работает цикл агента](https://code.claude.com/docs/ru/agent-sdk/agent-loop.md#permission-mode).

344 346 

345## Следующие шаги347## Следующие шаги

Details

146| `prompt` | `string` | Да | Системный запрос агента, определяющий его роль и поведение |146| `prompt` | `string` | Да | Системный запрос агента, определяющий его роль и поведение |

147| `tools` | `string[]` | Нет | Массив разрешенных имен инструментов. Если опущено, наследует каждый [инструмент, доступный подагентам](https://code.claude.com/docs/ru/sub-agents.md#available-tools) |147| `tools` | `string[]` | Нет | Массив разрешенных имен инструментов. Если опущено, наследует каждый [инструмент, доступный подагентам](https://code.claude.com/docs/ru/sub-agents.md#available-tools) |

148| `disallowedTools` | `string[]` | Нет | Массив имен инструментов для удаления из набора инструментов агента. Также принимаются шаблоны уровня сервера MCP: `mcp__server` или `mcp__server__*` удаляет каждый инструмент с этого сервера, а `mcp__*` удаляет каждый инструмент MCP с любого сервера |148| `disallowedTools` | `string[]` | Нет | Массив имен инструментов для удаления из набора инструментов агента. Также принимаются шаблоны уровня сервера MCP: `mcp__server` или `mcp__server__*` удаляет каждый инструмент с этого сервера, а `mcp__*` удаляет каждый инструмент MCP с любого сервера |

149| `model` | `string` | Нет | Переопределение модели для этого агента. Принимает псевдоним, такой как `'fable'`, `'opus'`, `'sonnet'`, `'haiku'`, `'inherit'`, или полный ID модели. `'inherit'` использует основную модель. Если вы его опустите, Claude Code выбирает модель в [порядке моделей подагентов](https://code.claude.com/docs/ru/sub-agents.md#choose-a-model) |149| `model` | `string` | Нет | Переопределение модели для этого агента. Принимает псевдоним, такой как `'fable'`, `'opus'`, `'sonnet'`, `'haiku'`, `'inherit'`, или полный ID модели. `'inherit'` использует модель агента, который породил этого агента. Если вы опустите `model`, Claude Code выбирает модель в [порядке моделей субагентов](https://code.claude.com/docs/ru/sub-agents.md#choose-a-model) |

150| `skills` | `string[]` | Нет | Список имен скиллов для предварительной загрузки в контекст агента при запуске. Предварительно загружаются не более [первых 32 различных имен](https://code.claude.com/docs/ru/sub-agents.md#preload-skills-into-subagents) из списка. Неуказанные скиллы остаются вызываемыми через инструмент Skill |150| `skills` | `string[]` | Нет | Список имен скиллов для предварительной загрузки в контекст агента при запуске. Предварительно загружаются не более [первых 32 различных имен](https://code.claude.com/docs/ru/sub-agents.md#preload-skills-into-subagents) из списка. Неуказанные скиллы остаются вызываемыми через инструмент Skill |

151| `memory` | `'user' \| 'project' \| 'local'` | Нет | Источник памяти для этого агента |151| `memory` | `'user' \| 'project' \| 'local'` | Нет | Источник памяти для этого агента |

152| `mcpServers` | `(string \| object)[]` | Нет | Серверы MCP, доступные этому агенту, по имени или встроенной конфигурации |152| `mcpServers` | `(string \| object)[]` | Нет | Серверы MCP, доступные этому агенту, по имени или встроенной конфигурации |

Details

589| `skills` | `string[] \| 'all'` | `undefined` | Скиллы, доступные в сессии. Передайте `'all'`, чтобы включить все обнаруженные скиллы, или список имён скиллов. Передавайте только точные имена. В Agent SDK v0.3.221 или новее SDK отклоняет некорректные имена и имена с подстановочными символами с ошибкой ещё до запуска процесса Claude Code. Если параметр задан, SDK автоматически добавляет инструмент Skill в `allowedTools`. Если вы также передаёте `tools`, включите `'Skill'` в этот список. См. [Скиллы](https://code.claude.com/docs/ru/agent-sdk/skills.md) |589| `skills` | `string[] \| 'all'` | `undefined` | Скиллы, доступные в сессии. Передайте `'all'`, чтобы включить все обнаруженные скиллы, или список имён скиллов. Передавайте только точные имена. В Agent SDK v0.3.221 или новее SDK отклоняет некорректные имена и имена с подстановочными символами с ошибкой ещё до запуска процесса Claude Code. Если параметр задан, SDK автоматически добавляет инструмент Skill в `allowedTools`. Если вы также передаёте `tools`, включите `'Skill'` в этот список. См. [Скиллы](https://code.claude.com/docs/ru/agent-sdk/skills.md) |

590| `spawnClaudeCodeProcess` | `(options: SpawnOptions) => SpawnedProcess` | `undefined` | Пользовательская функция для запуска процесса Claude Code. Используйте её, чтобы запускать Claude Code в виртуальных машинах, контейнерах или удалённых средах |590| `spawnClaudeCodeProcess` | `(options: SpawnOptions) => SpawnedProcess` | `undefined` | Пользовательская функция для запуска процесса Claude Code. Используйте её, чтобы запускать Claude Code в виртуальных машинах, контейнерах или удалённых средах |

591| `stderr` | `(data: string) => void` | `undefined` | Колбэк для вывода stderr |591| `stderr` | `(data: string) => void` | `undefined` | Колбэк для вывода stderr |

592| `strictMcpConfig` | `boolean` | `false` | Использовать только серверы, переданные в `mcpServers`, и игнорировать `.mcp.json` проекта, пользовательские настройки, MCP-серверы из плагинов и [коннекторы claude.ai](https://code.claude.com/docs/ru/mcp.md#use-mcp-servers-from-claude-ai) |592| `strictMcpConfig` | `boolean` | `false` | Использовать серверы, переданные в `mcpServers`, и игнорировать `.mcp.json` проекта, пользовательские настройки, MCP-серверы из плагинов и [коннекторы claude.ai](https://code.claude.com/docs/ru/mcp.md#use-mcp-servers-from-claude-ai) |

593| `systemPrompt` | `string \| string[] \| { type: 'custom'; prompt: string \| string[]; snapshot?: boolean } \| { type: 'preset'; preset: 'claude_code'; append?: string; excludeDynamicSections?: boolean; snapshot?: boolean }` | `undefined` (минимальный промпт) | Конфигурация системного промпта. Передайте строку для пользовательского промпта или `{ type: 'preset', preset: 'claude_code' }`, чтобы использовать системный промпт Claude Code. Передайте массив строк с экспортируемой константой `SYSTEM_PROMPT_DYNAMIC_BOUNDARY` между статической частью и частью, зависящей от запроса, чтобы [кэшировать статическую часть пользовательского промпта](https://code.claude.com/docs/ru/agent-sdk/modifying-system-prompts.md#cache-the-static-part-of-a-custom-prompt). При использовании объектной формы пресета добавьте `append`, чтобы дополнить его инструкциями, и задайте `excludeDynamicSections: true`, чтобы перенести контекст, зависящий от сессии, в первое сообщение пользователя для [лучшего повторного использования кэша промптов на разных машинах](https://code.claude.com/docs/ru/agent-sdk/modifying-system-prompts.md#improve-prompt-caching-across-users-and-machines). Задайте `snapshot: false`, чтобы пересобирать промпт при каждом запросе вместо [повторного использования промпта, записанного сессией при первом запросе](https://code.claude.com/docs/ru/agent-sdk/modifying-system-prompts.md#change-the-prompt-of-an-existing-session). Чтобы задать `snapshot` для пользовательского промпта, используйте форму `{ type: 'custom', prompt }`. Форма `{ type: 'custom' }` и поле `snapshot` требуют TypeScript Agent SDK v0.3.257 или новее |593| `systemPrompt` | `string \| string[] \| { type: 'custom'; prompt: string \| string[]; snapshot?: boolean } \| { type: 'preset'; preset: 'claude_code'; append?: string; excludeDynamicSections?: boolean; snapshot?: boolean }` | `undefined` (минимальный промпт) | Конфигурация системного промпта. Передайте строку для пользовательского промпта или `{ type: 'preset', preset: 'claude_code' }`, чтобы использовать системный промпт Claude Code. Передайте массив строк с экспортируемой константой `SYSTEM_PROMPT_DYNAMIC_BOUNDARY` между статической частью и частью, зависящей от запроса, чтобы [кэшировать статическую часть пользовательского промпта](https://code.claude.com/docs/ru/agent-sdk/modifying-system-prompts.md#cache-the-static-part-of-a-custom-prompt). При использовании объектной формы пресета добавьте `append`, чтобы дополнить его инструкциями, и задайте `excludeDynamicSections: true`, чтобы перенести контекст, зависящий от сессии, в первое сообщение пользователя для [лучшего повторного использования кэша промптов на разных машинах](https://code.claude.com/docs/ru/agent-sdk/modifying-system-prompts.md#improve-prompt-caching-across-users-and-machines). Задайте `snapshot: false`, чтобы пересобирать промпт при каждом запросе вместо [повторного использования промпта, записанного сессией при первом запросе](https://code.claude.com/docs/ru/agent-sdk/modifying-system-prompts.md#change-the-prompt-of-an-existing-session). Чтобы задать `snapshot` для пользовательского промпта, используйте форму `{ type: 'custom', prompt }`. Форма `{ type: 'custom' }` и поле `snapshot` требуют TypeScript Agent SDK v0.3.257 или новее |

594| `taskBudget` | `{ total: number }` | `undefined` | *Альфа.* Бюджет задачи в токенах на стороне API. Если он задан, модели сообщается оставшийся бюджет токенов, чтобы она могла распределять использование инструментов и завершить работу до достижения лимита |594| `taskBudget` | `{ total: number }` | `undefined` | *Альфа.* Бюджет задачи в токенах на стороне API. Если он задан, модели сообщается оставшийся бюджет токенов, чтобы она могла распределять использование инструментов и завершить работу до достижения лимита |

595| `thinking` | [`ThinkingConfig`](#thinkingconfig) | `{ type: 'adaptive' }` для поддерживаемых моделей | Управляет поведением мышления/рассуждений Claude. Доступные варианты см. в [`ThinkingConfig`](#thinkingconfig) |595| `thinking` | [`ThinkingConfig`](#thinkingconfig) | `{ type: 'adaptive' }` для поддерживаемых моделей | Управляет поведением мышления/рассуждений Claude. Доступные варианты см. в [`ThinkingConfig`](#thinkingconfig) |


1285| `tools` | Нет | Массив имён разрешённых инструментов. Если не указан, наследуются все [инструменты, доступные субагентам](https://code.claude.com/docs/ru/sub-agents.md#available-tools). Чтобы предварительно загрузить скиллы в контекст агента, используйте поле `skills`, а не указывайте здесь `'Skill'` |1285| `tools` | Нет | Массив имён разрешённых инструментов. Если не указан, наследуются все [инструменты, доступные субагентам](https://code.claude.com/docs/ru/sub-agents.md#available-tools). Чтобы предварительно загрузить скиллы в контекст агента, используйте поле `skills`, а не указывайте здесь `'Skill'` |

1286| `disallowedTools` | Нет | Массив имён инструментов, явно запрещённых для этого агента. Также принимаются шаблоны уровня MCP-сервера: `mcp__server` или `mcp__server__*` удаляет все инструменты этого сервера, а `mcp__*` удаляет все MCP-инструменты любого сервера |1286| `disallowedTools` | Нет | Массив имён инструментов, явно запрещённых для этого агента. Также принимаются шаблоны уровня MCP-сервера: `mcp__server` или `mcp__server__*` удаляет все инструменты этого сервера, а `mcp__*` удаляет все MCP-инструменты любого сервера |

1287| `prompt` | Да | Системный промпт агента |1287| `prompt` | Да | Системный промпт агента |

1288| `model` | Нет | Переопределение модели для этого агента. Принимает псевдоним, например `'fable'`, `'opus'`, `'sonnet'`, `'haiku'`, `'inherit'`, или полный ID модели. `'inherit'` использует основную модель. Если поле не указано, Claude Code выбирает модель в [порядке выбора модели субагента](https://code.claude.com/docs/ru/sub-agents.md#choose-a-model) |1288| `model` | Нет | Переопределение модели для этого агента. Принимает псевдоним, например `'fable'`, `'opus'`, `'sonnet'`, `'haiku'`, `'inherit'`, или полный ID модели. `'inherit'` использует модель агента, который запустил этого агента. Если вы опускаете `model`, Claude Code выбирает модель в соответствии с [порядком выбора модели субагента](https://code.claude.com/docs/ru/sub-agents.md#choose-a-model) |

1289| `mcpServers` | Нет | Спецификации MCP-серверов для этого агента |1289| `mcpServers` | Нет | Спецификации MCP-серверов для этого агента |

1290| `skills` | Нет | Массив имён скиллов для предварительной загрузки в контекст агента |1290| `skills` | Нет | Массив имён скиллов для предварительной загрузки в контекст агента |

1291| `initialPrompt` | Нет | Автоматически отправляется как первый ход пользователя, когда этот агент работает в качестве агента основного потока |1291| `initialPrompt` | Нет | Автоматически отправляется как первый ход пользователя, когда этот агент работает в качестве агента основного потока |

agent-teams.md +26 −9

Details

102>102>

103> `tmux` имеет известные ограничения на некоторых операционных системах и традиционно работает лучше всего на macOS. Использование `tmux -CC` в iTerm2 — это рекомендуемая точка входа в `tmux`.103> `tmux` имеет известные ограничения на некоторых операционных системах и традиционно работает лучше всего на macOS. Использование `tmux -CC` в iTerm2 — это рекомендуемая точка входа в `tmux`.

104 104 

105По умолчанию используется `"in-process"`. Установите `"auto"` для включения разделенных панелей, когда вы уже работаете внутри сеанса tmux, или когда ваш терминал — это iTerm2 с установленным CLI `it2`, в противном случае используется in-process. Параметр `"tmux"` включает режим разделенных панелей и автоматически определяет, использовать ли tmux или iTerm2 на основе вашего терминала.105Когда команды агентов [включены](#enable-agent-teams), выполните следующие шаги, чтобы дать каждому товарищу по команде собственную панель:

106 106 

107Установите `"iterm2"` для явного использования встроенных разделенных панелей iTerm2. Этот режим требует [`it2` CLI](https://github.com/mkusaka/it2) и показывает ошибку с командой установки, если `it2` отсутствует. Подсказка настройки, которая предлагает установить `it2` или переключиться на tmux, появляется при `"auto"` или `"tmux"`, когда ваш терминал — это iTerm2 и tmux доступен как резервный вариант.107**1. Установите tmux или настройте iTerm2**

108 108 

109Чтобы переопределить значение по умолчанию, установите [`teammateMode`](https://code.claude.com/docs/ru/settings-reference#teammatemode) в `~/.claude/settings.json`:109Режим разделённых панелей требует либо [tmux](https://github.com/tmux/tmux/wiki), либо iTerm2 с [`it2` CLI](https://github.com/mkusaka/it2). Настройте тот, в котором вы будете запускать Claude Code:

110 

111* **tmux**: установите через менеджер пакетов вашей системы. См. [tmux wiki](https://github.com/tmux/tmux/wiki/Installing) для инструкций, специфичных для платформы.

112* **iTerm2**: установите [`it2` CLI](https://github.com/mkusaka/it2), затем включите Python API в **iTerm2 > Settings > General > Magic > Enable Python API**.

113 

114**2. Включите разделённые панели**

115 

116Товарищи по команде работают в режиме in-process, пока вы не измените настройку [`teammateMode`](https://code.claude.com/docs/ru/settings-reference#teammatemode).

117 

118Установите для неё значение `"auto"` в `~/.claude/settings.json`:

110 119 

111```json theme={null}120```json theme={null}

112{121{


114}123}

115```124```

116 125 

126При значении `"auto"` товарищи по команде открываются в разделённых панелях, когда вы запускаете Claude Code внутри tmux или iTerm2, а в других терминалах работают в режиме in-process.

127 

128**3. Запустите Claude Code и породите товарищей по команде**

129 

130Запустите `claude` внутри tmux или в iTerm2, затем попросите Claude породить товарищей по команде.

131 

132Если в iTerm2 появится запрос на настройку `it2`, выберите **Install it2 now**, чтобы панели открылись в вашем окне iTerm2.

133 

134Если вы запускаете Claude Code вне tmux и iTerm2 или панели не открываются в вашем окне iTerm2, снова измените `teammateMode`:

135 

136* **Вне tmux и iTerm2**: если tmux установлен, задайте для `teammateMode` значение `"tmux"`. Панели открываются в отдельной сессии tmux. Чтобы наблюдать за ними, скопируйте команду из строки `View teammates` в промпте Claude Code и выполните эту команду во втором терминале.

137* **Панели не открываются в вашем окне iTerm2**: задайте для `teammateMode` значение `"iterm2"`, чтобы использовать собственные панели iTerm2. В этом случае товарищи по команде запускаются, только когда вы запускаете Claude Code в iTerm2 с настроенным `it2`.

138 

117Чтобы установить режим для одного сеанса, передайте его как флаг:139Чтобы установить режим для одного сеанса, передайте его как флаг:

118 140 

119```bash theme={null}141```bash theme={null}


122 144 

123Флаг `--teammate-mode` является экспериментальным и не отображается в `claude --help`.145Флаг `--teammate-mode` является экспериментальным и не отображается в `claude --help`.

124 146 

125Режим разделенных панелей требует либо [tmux](https://github.com/tmux/tmux/wiki), либо iTerm2 с [`it2` CLI](https://github.com/mkusaka/it2). Для установки вручную:

126 

127* **tmux**: установите через менеджер пакетов вашей системы. См. [tmux wiki](https://github.com/tmux/tmux/wiki/Installing) для инструкций, специфичных для платформы.

128* **iTerm2**: установите [`it2` CLI](https://github.com/mkusaka/it2), затем включите Python API в **iTerm2 → Settings → General → Magic → Enable Python API**.

129 

130### Укажите товарищей по команде и модели147### Укажите товарищей по команде и модели

131 148 

132Claude решает количество товарищей по команде для порождения на основе вашей задачи, или вы можете указать ровно то, что вы хотите:149Claude решает количество товарищей по команде для порождения на основе вашей задачи, или вы можете указать ровно то, что вы хотите:


497* **Нет фоновых субагентов от участников команды in-process**: собственные субагенты участника команды in-process работают на переднем плане, потому что фоновая работа участника команды не может пережить процесс лидера. Claude Code возвращает ошибку, когда участник команды порождает субагента, чье определение устанавливает `background: true`. Запрос участника команды `run_in_background: true` также не удается, либо с ошибкой, либо путем молчаливого запуска на переднем плане. Субагенты, запущенные из основного диалога, следуют [фоновому значению по умолчанию](https://code.claude.com/docs/ru/sub-agents.md#run-subagents-in-foreground-or-background).514* **Нет фоновых субагентов от участников команды in-process**: собственные субагенты участника команды in-process работают на переднем плане, потому что фоновая работа участника команды не может пережить процесс лидера. Claude Code возвращает ошибку, когда участник команды порождает субагента, чье определение устанавливает `background: true`. Запрос участника команды `run_in_background: true` также не удается, либо с ошибкой, либо путем молчаливого запуска на переднем плане. Субагенты, запущенные из основного диалога, следуют [фоновому значению по умолчанию](https://code.claude.com/docs/ru/sub-agents.md#run-subagents-in-foreground-or-background).

498* **Лидер фиксирован**: основной сеанс является лидером на протяжении всей его жизни. Вы не можете повысить товарища по команде до лидера или передать лидерство.515* **Лидер фиксирован**: основной сеанс является лидером на протяжении всей его жизни. Вы не можете повысить товарища по команде до лидера или передать лидерство.

499* **Нельзя задать режим разрешений для отдельного участника команды при создании**: участники команды начинают с режима разрешений, описанного в разделе [Разрешения](#permissions).516* **Нельзя задать режим разрешений для отдельного участника команды при создании**: участники команды начинают с режима разрешений, описанного в разделе [Разрешения](#permissions).

500* **Разделенные панели требуют tmux или iTerm2**: режим in-process по умолчанию работает в любом терминале. Режим разделенных панелей не поддерживается в интегрированном терминале VS Code, Windows Terminal или Ghostty.517* **Разделенные панели требуют tmux или iTerm2**: режим in-process по умолчанию работает в любом терминале.

501 518 

502## Следующие шаги519## Следующие шаги

503 520 

agent-view.md +30 −39

Details

144| Форма | Что это означает |144| Форма | Что это означает |

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

146| `✻` или анимированный `✽` | Процесс сессии работает или сессии нужен ваш ввод |146| `✻` или анимированный `✽` | Процесс сессии работает или сессии нужен ваш ввод |

147| `∙` | Процесс завершился. Вы всё ещё можете просмотреть строку, а когда вы ответите или подключитесь, Claude перезапустит его из сохранённого диалога |147| `∙` | Процесс завершился. Вы всё ещё можете просмотреть строку, а когда вы ответите или нажмёте `Enter`, Claude перезапустит его из сохранённого диалога |

148| `✢` | Сессия [`/loop`](https://code.claude.com/docs/ru/scheduled-tasks), ожидающая между итерациями. Строка показывает количество запусков и обратный отсчёт |148| `✢` | Сессия [`/loop`](https://code.claude.com/docs/ru/scheduled-tasks), ожидающая между итерациями. Строка показывает количество запусков и обратный отсчёт |

149 149 

150Метка `#N` или `!N`, которая может появиться у правого края строки, — это ссылка на [pull request или merge request](#pull-request-status) сессии, а не часть значка состояния.150Метка `#N` или `!N`, которая может появиться у правого края строки, — это ссылка на [pull request или merge request](#pull-request-status) сессии, а не часть значка состояния.


316* Нажмите `Enter` на заголовке группы, чтобы свернуть её, кроме случаев, когда активен [фильтр](#filter-sessions): тогда все группы остаются развёрнутыми316* Нажмите `Enter` на заголовке группы, чтобы свернуть её, кроме случаев, когда активен [фильтр](#filter-sessions): тогда все группы остаются развёрнутыми

317* Нажмите `Ctrl+X`, чтобы остановить сессию, и ещё раз `Ctrl+X` в течение двух секунд, чтобы удалить её из списка, или `Esc`, чтобы закрыть подтверждение без удаления. Второе нажатие удаляет сессию, даже если попытка остановки не удалась, например потому что [фоновая служба не отвечает](#agent-view-says-the-background-service-did-not-respond). В этом случае подтверждение остаётся активным ещё две секунды, и удаление само завершает процесс сессии317* Нажмите `Ctrl+X`, чтобы остановить сессию, и ещё раз `Ctrl+X` в течение двух секунд, чтобы удалить её из списка, или `Esc`, чтобы закрыть подтверждение без удаления. Второе нажатие удаляет сессию, даже если попытка остановки не удалась, например потому что [фоновая служба не отвечает](#agent-view-says-the-background-service-did-not-respond). В этом случае подтверждение остаётся активным ещё две секунды, и удаление само завершает процесс сессии

318 318 

319Нажатие `Ctrl+X` на заголовке группы после подтверждения удаляет все сессии в этой группе. За исключением случаев сохранения, описанных в [What deleting a session removes](#what-deleting-a-session-removes), удаление убирает сессию из списка. Worktree, созданный для неё Claude, удаляется, сохраняется или остаётся на месте в зависимости от способа удаления и содержимого worktree. Транскрипт диалога остаётся на вашем локальном компьютере и доступен через `claude --resume`.319Нажмите `Ctrl+X` на заголовке группы, чтобы после подтверждения удалить все сессии в этой группе, кроме тех, которые Claude Code [отказывается удалять](#delete-a-session-after-claude-code-refuses). О том, что происходит с worktree каждой сессии, см. [What deleting a session removes](#what-deleting-a-session-removes). Транскрипт диалога остаётся на вашем локальном компьютере и доступен через `claude --resume`.

320 320 

321Завершённые сессии, которые не помещаются на экране, сворачиваются в строку `… N more`. Группа `Completed` занимает вертикальное пространство, оставшееся после активных групп. В невысоком терминале заголовок сжимается до одной сводной строки, чтобы сессии, которые работают или которым нужен ввод, оставались видимыми.321Завершённые сессии, которые не помещаются на экране, сворачиваются в строку `… N more`. Группа `Completed` занимает вертикальное пространство, оставшееся после активных групп. В невысоком терминале заголовок сжимается до одной сводной строки, чтобы сессии, которые работают или которым нужен ввод, оставались видимыми.

322 322 


622 622 

623#### Что удаляется при удалении сессии623#### Что удаляется при удалении сессии

624 624 

625Удалите сессию двойным нажатием `Ctrl+X` в [agent view](#organize-the-list) или с помощью [`claude rm`](#manage-sessions-from-the-shell). За исключением описанных ниже случаев, когда она сохраняется, сессия исчезает из списка. Её транскрипт остаётся на вашем компьютере и доступен через `claude --resume`, а удаление сохраняется после перезапусков супервизора.625Удалите сессию двойным нажатием `Ctrl+X` в [agent view](#organize-the-list) или с помощью [`claude rm`](#manage-sessions-from-the-shell). Сессия исчезает из списка, если только Claude Code не [откажется её удалять](#delete-a-session-after-claude-code-refuses). Её транскрипт остаётся на вашем компьютере и доступен через `claude --resume`.

626 626 

627Что происходит с worktree, который Claude создал для сессии:627Что происходит с worktree, который Claude создал для сессии:

628 628 

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

630* `claude rm` сохраняет его вместе со строкой сессии, если в нём есть незафиксированные изменения.630* `claude rm` сохраняет его вместе со строкой сессии, если в нём есть незафиксированные изменения.

631* Ни agent view, ни `claude rm` не удаляют worktree, который использует или заблокировала другая работающая сессия, и повторное удаление этого не меняет. Claude Code сохраняет worktree и сессию и называет сохранённый каталог и причину; в agent view в строке сессии отображается `not removed`. Закройте другую сессию, затем удалите снова.

632* Если вы удаляете сессию, в worktree которой есть коммиты, о которых Claude Code не может подтвердить, что они сохранены где-то ещё, Claude Code сохраняет worktree и сессию, а в сообщении указываются ветка worktree и количество коммитов без push. Сообщение также предлагает два варианта дальнейших действий: выполнить push коммитов или удалить снова, чтобы отбросить их.

633 631 

634 Коммиты в удалённом репозитории не блокируют удаление. Не блокируют его и коммиты в локальной копии ветки по умолчанию вашего удалённого репозитория `origin`, если эта ветка извлечена в основной рабочей копии, то есть в самом каталоге репозитория, а не в worktree.632Одна из причин, по которой Claude Code отказывается удалять сессию, — это [коммиты без push в её worktree](https://code.claude.com/docs/ru/errors.md#worktree-has-commits-that-are-not-pushed-anywhere). Чтобы сохранить эти коммиты, выполните их push перед удалением сессии.

635 633 

636 После такого отказа вы выбираете:634Некоторые worktree остаются на диске независимо от того, используете ли вы agent view или `claude rm`:

637 635 

638 * Чтобы сохранить коммиты, выполните их push или слейте их в эту ветку по умолчанию, затем снова удалите сессию.636* Если вы сами создали worktree и запустили сессию внутри него, worktree остаётся на диске, чтобы вы сами решили, сохранить его или удалить.

639 * Чтобы отбросить их, снова удалите сессию без push: дважды нажмите `Ctrl+X` на её строке в agent view или выполните команду `claude rm <id> --discard-unpushed`, выведенную в сообщении об отказе. Это удаляет сессию и worktree вместе с его веткой, отбрасывая коммиты без push и все незафиксированные изменения.637* Если в каталоге worktree, который Claude создал внутри вашего репозитория, больше нет файла `.git`, каталог остаётся на диске, чтобы вы удалили его сами. Ветка worktree остаётся в репозитории, поэтому коммиты в этой ветке сохраняются.

640 638 

641 При повторном удалении Claude Code отбрасывает только то, что было показано в сообщении об отказе: если с тех пор в worktree появился новый коммит, Claude Code снова сохраняет его и показывает обновлённое состояние.639##### Удаление сессии после отказа Claude Code

642 640 

643 Если этот worktree упоминается и в записях другой завершённой сессии, он остаётся при повторном удалении; выполните push коммитов, затем удалите снова.641Когда Claude Code отказывается удалять сессию из-за её worktree, следуйте показанному сообщению. Если в сообщении указаны коммиты без push, см. раздел [Worktree has commits that are not pushed anywhere](https://code.claude.com/docs/ru/errors.md#worktree-has-commits-that-are-not-pushed-anywhere).

644* Worktree, который Git больше не распознаёт, например после `git worktree prune`, не блокирует удаление. Claude Code удаляет сессию и оставляет каталог на диске.

645* Если Git или ваш [хук `WorktreeRemove`](https://code.claude.com/docs/ru/hooks#worktreeremove) не может удалить worktree, Claude Code сохраняет worktree и сессию, а в сообщении указывается причина. Для хука сообщение указывает, как он завершился, например `exited 1`, и приводит начало его stderr. Сообщение также подсказывает, что из этого сделать дальше:

646 642 

647 * Снова удалите сессию, чтобы всё равно удалить каталог: дважды нажмите `Ctrl+X` на её строке в agent view или выполните команду `claude rm <id> --force-remove-worktree <worktree-id>`, выведенную в сообщении об отказе `claude rm`. Ветка worktree остаётся в репозитории.643##### Устранение сообщения `Worktree not removed`

648 644 

649 Claude Code предлагает это, только если может подтвердить всё следующее:645Сообщение `Worktree not removed` означает, что Claude Code или ваш [хук `WorktreeRemove`](https://code.claude.com/docs/ru/hooks#worktreeremove) не завершил удаление worktree сессии. Выполните push всех коммитов и скопируйте все файлы, которые хотите сохранить, затем следуйте сообщению.

650 646 

651 * Каталог является одним из связанных worktree репозитория в `.claude/worktrees/`647##### Устранение сообщения `files that weren't checked against a repository`

652 * Ни в worktree, ни в извлечённом подмодуле нет незафиксированных изменений отслеживаемых файлов

653 * Каталог не упоминается в записях никакой другой сессии

654 648 

655 Если Claude Code не может проверить состояние извлечённого подмодуля, например заменённого отдельным Git-репозиторием, он этот вариант тоже не предлагает.649Это сообщение от `claude rm` означает, что в каталоге worktree остаются файлы, а сам каталог не находится ни в одном Git-репозитории или управляется [хуком `WorktreeCreate`](https://code.claude.com/docs/ru/hooks#worktreecreate). Скопируйте все файлы, которые хотите сохранить, затем выполните действие для вашего случая:

656 * Устраните препятствие, например сделайте коммит незафиксированных изменений или уберите их в stash, перенесите отдельный Git-репозиторий из worktree, закройте то, что использует каталог, или исправьте хук, затем снова удалите сессию.

657 * Удалите каталог самостоятельно, затем снова удалите сессию.

658 650 

659Worktree, который вы создали сами и внутри которого запустили сессию, в любом случае остаётся на месте.651| Ваш случай | Что делать |

660 652| :- | :- |

661Сессию, каталог worktree которой не принадлежит ни одному Git-репозиторию — потому что репозиторий был удалён или [хук `WorktreeCreate`](https://code.claude.com/docs/ru/hooks#worktreecreate) создал каталог в другом месте, — всё равно можно удалить. Пока в каталоге остаются файлы:653| Каталогом не управляет ни один хук `WorktreeCreate` | Чтобы отбросить файлы, дважды нажмите `Ctrl+X` на строке сессии в agent view. Или удалите каталог самостоятельно, затем снова выполните `claude rm <id>` |

662 654| Каталогом управляет хук `WorktreeCreate`, и у вас есть [хук `WorktreeRemove`](https://code.claude.com/docs/ru/hooks#worktreeremove) | Чтобы попытаться удалить каталог с помощью вашего хука, дважды нажмите `Ctrl+X` на строке сессии в agent view. Или удалите каталог самостоятельно, затем снова выполните `claude rm <id>` |

663* Agent view запрашивает то же двойное нажатие `Ctrl+X`, прежде чем отбросить их. Для каталога, созданного хуком, вместо этого запускается ваш [хук `WorktreeRemove`](https://code.claude.com/docs/ru/hooks#worktreeremove), а если его нет, удаление отклоняется и сессия сохраняется.655| Каталогом управляет хук `WorktreeCreate`, и у вас нет хука `WorktreeRemove` | Удалите каталог самостоятельно, затем снова выполните `claude rm <id>` |

664* `claude rm` сохраняет сессию и worktree и называет причину.

665 

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

667 656 

668### Выбор модели, уровня effort и быстрого режима657### Выбор модели, уровня effort и быстрого режима

669 658 


774| [`--add-dir <path>`](https://code.claude.com/docs/ru/permissions#additional-directories-grant-file-access-not-configuration) | Предоставляет доступ к файлам в дополнительном каталоге |763| [`--add-dir <path>`](https://code.claude.com/docs/ru/permissions#additional-directories-grant-file-access-not-configuration) | Предоставляет доступ к файлам в дополнительном каталоге |

775| [`--plugin-dir <path>`](https://code.claude.com/docs/ru/plugins/create#load-a-directory-or-archive-for-one-session) | Загружает плагин из локального каталога |764| [`--plugin-dir <path>`](https://code.claude.com/docs/ru/plugins/create#load-a-directory-or-archive-for-one-session) | Загружает плагин из локального каталога |

776| [`--mcp-config <file-or-json>`](https://code.claude.com/docs/ru/mcp) | Загружает MCP-серверы из файла конфигурации или строки JSON |765| [`--mcp-config <file-or-json>`](https://code.claude.com/docs/ru/mcp) | Загружает MCP-серверы из файла конфигурации или строки JSON |

777| `--strict-mcp-config` | Использует только MCP-серверы из `--mcp-config`, игнорируя остальную конфигурацию MCP. О том, как действует этот флаг при наличии управляемого файла MCP, см. в разделе [Исключительный контроль с помощью managed-mcp.json](https://code.claude.com/docs/ru/managed-mcp.md#exclusive-control-with-managed-mcp-json) |766| `--strict-mcp-config` | Пропускает MCP-серверы, настроенные в таких местах, как `.mcp.json`, и загружает те, которые вы передаёте с помощью `--mcp-config`. О том, как действует этот флаг при наличии управляемого файла MCP, см. в разделе [Исключительный контроль с помощью managed-mcp.json](https://code.claude.com/docs/ru/managed-mcp.md#exclusive-control-with-managed-mcp-json) |

778 767 

779Повторяйте `--add-dir`, `--plugin-dir` или `--mcp-config` для каждого значения. `claude agents` не поддерживает форму со значениями через пробел, например `--add-dir a b c`.768Повторяйте `--add-dir`, `--plugin-dir` или `--mcp-config` для каждого значения. `claude agents` не поддерживает форму со значениями через пробел, например `--add-dir a b c`.

780 769 


802| `claude stop <id>` | Остановить сессию. Также принимает `claude kill` |791| `claude stop <id>` | Остановить сессию. Также принимает `claude kill` |

803| `claude respawn <id>` | Перезапустить сессию, работающую или остановленную, например, чтобы подхватить обновленный бинарный файл Claude Code. Сессия, у которой есть сохраненный диалог, возобновляет его |792| `claude respawn <id>` | Перезапустить сессию, работающую или остановленную, например, чтобы подхватить обновленный бинарный файл Claude Code. Сессия, у которой есть сохраненный диалог, возобновляет его |

804| `claude respawn --all` | Перезапустить каждую работающую сессию, например, чтобы перевести все сессии на обновленный бинарный файл Claude Code одновременно |793| `claude respawn --all` | Перезапустить каждую работающую сессию, например, чтобы перевести все сессии на обновленный бинарный файл Claude Code одновременно |

805| `claude rm <id>` | Удалить сессию из списка вместе с worktree, созданным Claude для неё, когда его безопасно удалить; см. [Что удаляет удаление сессии](#what-deleting-a-session-removes). Транскрипт диалога остается на вашем локальном компьютере и остается доступным через `claude --resume` |794| `claude rm <id>` | Удалить сессию из списка вместе с worktree, созданным Claude для неё, когда его безопасно удалить. Если Claude Code отказывается удалять сессию из-за её worktree, см. [Удаление сессии после отказа Claude Code](#delete-a-session-after-claude-code-refuses). Транскрипт диалога остается на вашем локальном компьютере и остается доступным через `claude --resume` |

806| `claude rm <id> --discard-unpushed <commit>@<worktree-id>` | Удалить сессию, удаление которой было отклонено из-за неотправленных коммитов, отбросив worktree вместе с его веткой и коммитами. Передайте точное значение, которое вывело отклонение; см. [Что удаляет удаление сессии](#what-deleting-a-session-removes). Требуется v2.1.260 или позже |795| `claude rm <id> --discard-unpushed <commit>@<worktree-id>` | Повторить попытку удалить сессию и отбросить её worktree после того, как Claude Code отказал из-за неотправленных коммитов. Скопируйте команду из сообщения `claude rm`, которое её предлагает; см. [Worktree has commits that are not pushed anywhere](https://code.claude.com/docs/ru/errors.md#worktree-has-commits-that-are-not-pushed-anywhere). Требуется v2.1.260 или позже |

807| `claude rm <id> --force-remove-worktree <worktree-id>` | Удалить сессию, удаление которой было отклонено, потому что git или хук `WorktreeRemove` не смогли удалить её worktree, удалив каталог worktree в любом случае и оставив его ветку в репозитории. Передайте точное значение, которое вывело отклонение; см. [Что удаляет удаление сессии](#what-deleting-a-session-removes). Требуется v2.1.268 или позже |796| `claude rm <id> --force-remove-worktree <worktree-id>` | Повторить попытку удалить сессию и всё равно удалить каталог её worktree после того, как Claude Code отказал, потому что не смог удалить worktree. Скопируйте команду из сообщения `claude rm`, которое её предлагает; см. [Устранение сообщения `Worktree not removed`](#resolve-a-worktree-not-removed-message). Требуется v2.1.268 или позже |

808| `claude daemon status` | Вывести состояние [supervisor](#the-supervisor-process), версию, каталог сокета и количество рабочих процессов |797| `claude daemon status` | Вывести состояние [supervisor](#the-supervisor-process), версию, каталог сокета и количество рабочих процессов |

809| `claude daemon logs` | Следить за файлом лога supervisor, [`~/.claude/daemon.log`](#where-state-is-stored), выводя новые строки по мере их появления, пока вы не нажмете `Ctrl+C` |798| `claude daemon logs` | Следить за файлом лога supervisor, [`~/.claude/daemon.log`](#where-state-is-stored), выводя новые строки по мере их появления, пока вы не нажмете `Ctrl+C` |

810| `claude daemon stop --any` | Остановить процесс supervisor и фоновые сессии, которые он размещает. Передайте `--keep-workers`, чтобы оставить фоновые сессии работающими, чтобы [следующий supervisor](#the-supervisor-process) переподключился к ним. Следующий `claude agents` или `claude --bg` запускает новый supervisor |799| `claude daemon stop --any` | Остановить процесс supervisor и фоновые сессии, которые он размещает. Передайте `--keep-workers`, чтобы оставить фоновые сессии работающими, чтобы [следующий supervisor](#the-supervisor-process) переподключился к ним. Следующий `claude agents` или `claude --bg` запускает новый supervisor |


939 928 

940 Нажмите `Enter` на строке, и в нижней строке появится `Press enter again to resume this session (it ended while the background service was off), or ctrl+x to remove it.` Нажмите `Enter` на той же строке ещё раз, чтобы возобновить её сохранённый диалог. Ответ или `claude attach <id>` возобновляет её без этого сообщения в нижней строке.929 Нажмите `Enter` на строке, и в нижней строке появится `Press enter again to resume this session (it ended while the background service was off), or ctrl+x to remove it.` Нажмите `Enter` на той же строке ещё раз, чтобы возобновить её сохранённый диалог. Ответ или `claude attach <id>` возобновляет её без этого сообщения в нижней строке.

941 930 

942Если [очистка транскриптов](https://code.claude.com/docs/ru/settings-reference.md#cleanupperioddays) удалила сохранённый диалог остановленной сессии, Claude Code отказывается открывать строку: сообщение говорит, что возобновлять нечего. `claude rm <id>` удаляет строку, кроме [исключений](#what-deleting-a-session-removes), описанных выше, а `claude respawn <id>` снова запускает её исходный промпт. См. [This session's saved conversation is no longer on disk](https://code.claude.com/docs/ru/errors.md#this-sessions-saved-conversation-is-no-longer-on-disk).931Если [очистка транскриптов](https://code.claude.com/docs/ru/settings-reference.md#cleanupperioddays) удалила сохранённый диалог остановленной сессии, Claude Code отказывается открывать строку: сообщение говорит, что возобновлять нечего. `claude rm <id>` удаляет строку, за исключением случаев, когда [Claude Code отказывается это делать](#what-deleting-a-session-removes), а `claude respawn <id>` снова запускает её исходный промпт. См. [This session's saved conversation is no longer on disk](https://code.claude.com/docs/ru/errors.md#this-sessions-saved-conversation-is-no-longer-on-disk).

943 932 

944Спящий режим сам по себе не останавливает сессии. Сессии сохраняются во время спящего режима, и супервизор переподключается к ним при пробуждении.933Спящий режим сам по себе не останавливает сессии. Сессии сохраняются во время спящего режима, и супервизор переподключается к ним при пробуждении.

945 934 


973 962 

974Когда процесс фоновой сессии завершается до окончания запуска, а на хосте мало памяти, статус строки указывает код завершения и добавляет `possibly low memory — free some up and retry`.963Когда процесс фоновой сессии завершается до окончания запуска, а на хосте мало памяти, статус строки указывает код завершения и добавляет `possibly low memory — free some up and retry`.

975 964 

976Эта пометка — предположение, а не подтверждённая причина. Claude Code добавляет её, только если процесс завершился молча, не записав ошибку и не будучи остановлен сигналом, а хост в этот момент сообщал о нехватке памяти. Если процесс записал ошибку перед завершением, строка показывает эту ошибку.965> [!NOTE]

966>

967> Эта пометка — предположение, а не подтверждённая причина. Claude Code добавляет её, только если процесс завершился молча, не записав ошибку и не будучи остановлен сигналом, а хост в этот момент сообщал о нехватке памяти. Если процесс записал ошибку перед завершением, строка показывает эту ошибку.

977 968 

978Освободите оперативную память на машине, затем подключитесь к строке или ответьте в ней, и супервизор запустит новый процесс для сессии. Если памяти по-прежнему мало, супервизор также самостоятельно [останавливает неактивные сессии](#the-supervisor-process), чтобы освободить ресурсы, а если остановка остальных ничего не освободила, останавливает и неактивные закреплённые сессии.969Освободите оперативную память на хосте, затем нажмите `Enter` на строке и нажмите ещё раз, если [об этом попросит нижняя строка](#opening-a-session-says-it-has-no-saved-transcript). [Супервизор](#the-supervisor-process) запустит новый процесс для сессии. Если памяти по-прежнему мало, супервизор также самостоятельно [останавливает неактивные сессии](#the-supervisor-process), чтобы освободить ресурсы, а если остановка остальных ничего не освободила, останавливает и неактивные закреплённые сессии.

979 970 

980### Представление агентов сообщает, что фоновый сервис не ответил971### Представление агентов сообщает, что фоновый сервис не ответил

981 972 


1036 1027 

1037### `.claude/worktrees/` заполняется1028### `.claude/worktrees/` заполняется

1038 1029 

1039Удаление сессии в представлении агентов удаляет worktree, который Claude создал для неё, но [некоторые удаления сохраняют worktree или оставляют его каталог на диске](#what-deleting-a-session-removes), поэтому оставшиеся каталоги могут накапливаться. Каталоги, которые git больше не распознаёт, не отображаются в `git worktree list`, поэтому удаляйте их вручную.1030Удаление сессии в представлении агентов удаляет worktree, который Claude создал для неё, но [некоторые каталоги worktree остаются на диске](#what-deleting-a-session-removes). Каталоги, которые git больше не распознаёт, не отображаются в `git worktree list`, поэтому удаляйте их вручную.

1040 1031 

1041Выведите список оставшихся записей с помощью `git worktree list` в каталоге проекта и удалите каждую с помощью `git worktree remove <path>`. См. [Очистка worktree](https://code.claude.com/docs/ru/worktrees.md#clean-up-worktrees).1032Выведите список оставшихся записей с помощью `git worktree list` в каталоге проекта и удалите каждую с помощью `git worktree remove <path>`. Если git отказывается это делать, см. [Очистка worktree субагентов и фоновых сессий](https://code.claude.com/docs/ru/worktrees.md#clean-up-subagent-and-background-session-worktrees).

1042 1033 

1043## Ограничения1034## Ограничения

1044 1035 


1046 1037 

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

1048* **Сеансы локальны**: фоновые сеансы работают на вашей машине. Они сохраняются при переходе в спящий режим, но останавливаются при выключении машины.1039* **Сеансы локальны**: фоновые сеансы работают на вашей машине. Они сохраняются при переходе в спящий режим, но останавливаются при выключении машины.

1049* **Worktrees, созданные Claude, удаляются с сеансом в agent view**: зафиксируйте изменения перед удалением сеанса, который редактировал файлы в его собственном worktree. [Некоторые удаления сохраняют worktree вместо этого](#what-deleting-a-session-removes).1040* **Worktree, созданные Claude, удаляются вместе с сессией в agent view**: зафиксируйте изменения перед удалением сессии, которая редактировала файлы в собственном worktree. [Некоторые worktree остаются на диске](#what-deleting-a-session-removes).

1050 1041 

1051## Связанные ресурсы1042## Связанные ресурсы

1052 1043 

artifacts.md +2 −2

Details

432 432 

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

434 434 

435### Проверка журнала аудита435### Аудит активности артефактов с помощью API соответствия

436 436 

437Публикация, совместное использование и удаление артефакта каждый раз отображаются в журнале аудита вашей организации под типами событий `claude_artifact_*`, семейством, используемым для артефактов, созданных в беседах claude.ai.437На планах Enterprise выполните запрос к [Activity Feed](https://platform.claude.com/docs/en/manage-claude/compliance-activity-feed) API соответствия, чтобы увидеть, кто опубликовал, предоставил в совместное использование или удалил артефакт. Чтобы найти типы активности для фильтрации, разверните `activity_types` в [справочнике Activity Feed](https://platform.claude.com/docs/en/api/compliance/activities/list) и найдите имена, содержащие `artifact`.

438 438 

439### Добавление домена средства просмотра в список разрешений439### Добавление домена средства просмотра в список разрешений

440 440 

Details

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

164 164 

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

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

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

168 168 

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

170 170 

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

172 172 

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

174 174 


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

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

182 182 

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

184 

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

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

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

188 

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

190 184 

191### Что требует вашего внимания: Overview185### Что требует вашего внимания: Overview


212 206 

213### Открытие треда, когда нужен контроль207### Открытие треда, когда нужен контроль

214 208 

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

216 210 

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

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

Details

128| `--session-id` | Использовать конкретный ID сеанса для беседы (должен быть действительным UUID) | `claude --session-id "550e8400-e29b-41d4-a716-446655440000"` |128| `--session-id` | Использовать конкретный ID сеанса для беседы (должен быть действительным UUID) | `claude --session-id "550e8400-e29b-41d4-a716-446655440000"` |

129| `--setting-sources` | Разделённый запятыми список источников параметров для загрузки (`user`, `project`, `local`). См. [agent view](https://code.claude.com/docs/ru/agent-view.md#what-carries-over-when-you-background) и [команды агентов](https://code.claude.com/docs/ru/agent-teams.md#context-and-communication) для сеансов, которые вы запускаете из текущего и которые наследуют этот список | `claude --setting-sources user,project` |129| `--setting-sources` | Разделённый запятыми список источников параметров для загрузки (`user`, `project`, `local`). См. [agent view](https://code.claude.com/docs/ru/agent-view.md#what-carries-over-when-you-background) и [команды агентов](https://code.claude.com/docs/ru/agent-teams.md#context-and-communication) для сеансов, которые вы запускаете из текущего и которые наследуют этот список | `claude --setting-sources user,project` |

130| `--settings` | Путь к файлу параметров JSON или встроенная строка JSON. Значения, которые вы устанавливаете здесь, переопределяют те же ключи в ваших файлах `settings.json` для этого сеанса. Ключи, которые вы опускаете, сохраняют свои значения на основе файла. Файл должен быть обычным файлом размером не более 2 МиБ. См. [приоритет параметров](https://code.claude.com/docs/ru/settings.md#settings-precedence) | `claude --settings ./settings.json` |130| `--settings` | Путь к файлу параметров JSON или встроенная строка JSON. Значения, которые вы устанавливаете здесь, переопределяют те же ключи в ваших файлах `settings.json` для этого сеанса. Ключи, которые вы опускаете, сохраняют свои значения на основе файла. Файл должен быть обычным файлом размером не более 2 МиБ. См. [приоритет параметров](https://code.claude.com/docs/ru/settings.md#settings-precedence) | `claude --settings ./settings.json` |

131| `--strict-mcp-config` | Использовать только MCP серверы из `--mcp-config`, игнорируя все остальные конфигурации MCP. См. [Исключительный контроль с managed-mcp.json](https://code.claude.com/docs/ru/managed-mcp.md#exclusive-control-with-managed-mcp-json) для того, что флаг делает под управляемым файлом MCP | `claude --strict-mcp-config --mcp-config ./mcp.json` |131| `--strict-mcp-config` | Пропустить MCP-серверы, настроенные в таких местах, как `.mcp.json`, `~/.claude.json` или плагин, и загрузить те, которые вы передаёте с `--mcp-config`. О том, что делает флаг при наличии управляемого файла MCP, см. [Исключительный контроль с managed-mcp.json](https://code.claude.com/docs/ru/managed-mcp.md#exclusive-control-with-managed-mcp-json) | `claude --strict-mcp-config --mcp-config ./mcp.json` |

132| `--system-prompt` | Заменить весь системный запрос пользовательским текстом | `claude --system-prompt "You are a Python expert"` |132| `--system-prompt` | Заменить весь системный запрос пользовательским текстом | `claude --system-prompt "You are a Python expert"` |

133| `--system-prompt-file` | Загрузить системный запрос из файла, заменяя приглашение по умолчанию | `claude --system-prompt-file ./custom-prompt.txt` |133| `--system-prompt-file` | Загрузить системный запрос из файла, заменяя приглашение по умолчанию | `claude --system-prompt-file ./custom-prompt.txt` |

134| `--system-prompt-snapshot` | Передать `off` для перестройки системного приглашения при каждом запросе вместо повторного использования приглашения [записанного при первом запросе беседы](#system-prompt-flags-in-resumed-conversations), например, пока вы итерируете текст `--append-system-prompt` через запуски `--continue`. Требует Claude Code v2.1.257 или позже | `claude --system-prompt-snapshot off` |134| `--system-prompt-snapshot` | Передать `off` для перестройки системного приглашения при каждом запросе вместо повторного использования приглашения [записанного при первом запросе беседы](#system-prompt-flags-in-resumed-conversations), например, пока вы итерируете текст `--append-system-prompt` через запуски `--continue`. Требует Claude Code v2.1.257 или позже | `claude --system-prompt-snapshot off` |

desktop.md +2 −1

Details

2127 2127 

2128Чтобы это предотвратить, также разверните `forceLoginOrgUUID` в политике Claude Desktop (в `HKLM` на Windows) с идентификатором вашей организации claude.ai. Если только сама политика не [выбирает Claude API](https://claude.com/docs/third-party/claude-desktop/claude-api#choose-an-authentication-approach), Claude Desktop перестаёт использовать собственный API-ключ или учётную запись Console пользователя при следующем запуске приложения.2128Чтобы это предотвратить, также разверните `forceLoginOrgUUID` в политике Claude Desktop (в `HKLM` на Windows) с идентификатором вашей организации claude.ai. Если только сама политика не [выбирает Claude API](https://claude.com/docs/third-party/claude-desktop/claude-api#choose-an-authentication-approach), Claude Desktop перестаёт использовать собственный API-ключ или учётную запись Console пользователя при следующем запуске приложения.

2129 2129 

2130Перед развёртыванием проверьте два случая:2130Перед развёртыванием проверьте три случая:

2131 2131 

2132* **Организации Claude Console**: не развёртывайте `forceLoginOrgUUID` отдельно с идентификатором организации Claude Console, иначе ваши пользователи потеряют доступ к Claude Desktop. Вместо этого см. [Which devices offer the Claude API account sign-in](https://claude.com/docs/third-party/claude-desktop/claude-api#which-devices-offer-the-claude-api-account-sign-in).2132* **Организации Claude Console**: не развёртывайте `forceLoginOrgUUID` отдельно с идентификатором организации Claude Console, иначе ваши пользователи потеряют доступ к Claude Desktop. Вместо этого см. [Which devices offer the Claude API account sign-in](https://claude.com/docs/third-party/claude-desktop/claude-api#which-devices-offer-the-claude-api-account-sign-in).

2133* **Enterprise Admin Console**: если она доставляет конфигурацию Claude Desktop на ваши компьютеры, сначала обновите их до Claude Desktop v2.37337.0 или новее, поскольку более ранние версии игнорируют её, как только задан этот ключ. См. [Keep a device on its managed profile](https://claude.com/docs/third-party/claude-desktop/admin-console#keep-a-device-on-its-managed-profile).2133* **Enterprise Admin Console**: если она доставляет конфигурацию Claude Desktop на ваши компьютеры, сначала обновите их до Claude Desktop v2.37337.0 или новее, поскольку более ранние версии игнорируют её, как только задан этот ключ. См. [Keep a device on its managed profile](https://claude.com/docs/third-party/claude-desktop/admin-console#keep-a-device-on-its-managed-profile).

2134* **Сторонние поставщики**: если пользователи сами настроили в приложении собственную [стороннюю конфигурацию инференса](https://claude.com/docs/third-party/claude-desktop/in-app-configuration), Claude Desktop игнорирует эту конфигурацию начиная со следующего запуска после развёртывания этого ключа. Чтобы пользователи продолжали работать с Amazon Bedrock, Agent Platform от Google Cloud, Microsoft Foundry или LLM-шлюзом, [разверните конфигурацию](https://claude.com/docs/third-party/claude-desktop/configuration) на их компьютерах в той же политике Claude Desktop.

2134 2135 

2135### Требования к доступу к сети2136### Требования к доступу к сети

2136 2137 

Details

182* **Review allowed permissions**: увидеть и отозвать сохраненные одобрения инструментов для этой задачи из панели **Always allowed**182* **Review allowed permissions**: увидеть и отозвать сохраненные одобрения инструментов для этой задачи из панели **Always allowed**

183* **Delete**: удалить задачу. Сессии, созданные задачей, [архивируются](https://code.claude.com/docs/ru/desktop.md#organize-and-find-sessions), а не удаляются. Папка с файлом `SKILL.md` задачи остается на диске в `~/.claude/scheduled-tasks/<task-name>/` или в `scheduled-tasks/<task-name>/` внутри [`CLAUDE_CONFIG_DIR`](https://code.claude.com/docs/ru/env-vars), если вы задали эту переменную. Чтобы удалить эту папку, удалите ее самостоятельно.183* **Delete**: удалить задачу. Сессии, созданные задачей, [архивируются](https://code.claude.com/docs/ru/desktop.md#organize-and-find-sessions), а не удаляются. Папка с файлом `SKILL.md` задачи остается на диске в `~/.claude/scheduled-tasks/<task-name>/` или в `scheduled-tasks/<task-name>/` внутри [`CLAUDE_CONFIG_DIR`](https://code.claude.com/docs/ru/env-vars), если вы задали эту переменную. Чтобы удалить эту папку, удалите ее самостоятельно.

184 184 

185Вы также можете перечислять, создавать, редактировать и приостанавливать задачи, попросив Claude в любом сеансе Desktop. Например, "приостанови мою задачу dependency-audit" или "покажи мои запланированные задачи." Чтобы удалить задачу, используйте кнопку **Delete** на ее странице деталей.185Вы также можете управлять задачами, попросив Claude, позволив задаче обновлять саму себя или отредактировав промпт задачи на диске:

186 186 

187Чтобы позволить задаче изменять свое собственное расписание или промпт с помощью инструмента MCP `update_scheduled_task`, нажимайте **Run now** и подтверждайте вызов каждый раз.187* **Попросить Claude**: перечисляйте, создавайте, редактируйте и приостанавливайте задачи, попросив Claude в любой сессии Desktop. Например, «приостанови мою задачу dependency-audit» или «покажи мои запланированные задачи». Чтобы удалить задачу, используйте кнопку **Delete** на ее странице деталей.

188 188* **Позволить задаче обновлять саму себя**: чтобы задача могла изменить свое собственное расписание или промпт с помощью инструмента MCP `update_scheduled_task`, нажимайте **Run now** и подтверждайте вызов каждый раз

189Чтобы отредактировать промпт задачи на диске, откройте `~/.claude/scheduled-tasks/<task-name>/SKILL.md` (или под [`CLAUDE_CONFIG_DIR`](https://code.claude.com/docs/ru/env-vars), если установлено). Файл использует YAML frontmatter для `name` и `description`, с промптом в качестве тела. Изменения вступают в силу при следующем запуске. Расписание, папка и состояние включения не находятся в этом файле: измените их через форму Edit или попросите Claude.189* **Отредактировать промпт на диске**: откройте `~/.claude/scheduled-tasks/<task-name>/SKILL.md` или `scheduled-tasks/<task-name>/SKILL.md` внутри [`CLAUDE_CONFIG_DIR`](https://code.claude.com/docs/ru/env-vars), если вы задали эту переменную. Файл использует YAML frontmatter для `name` и `description`, с промптом в качестве тела. Изменения вступают в силу при следующем запуске. Расписание, папка и состояние включения не находятся в этом файле: измените их через форму Edit или попросите Claude.

190 190 

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

192 192 

env-vars.md +1 −1

Details

356| `CLAUDE_CODE_PERFORCE_MODE` | Установите `1`, чтобы включить защиту от записи с учётом Perforce. Если задано, Edit, Write и NotebookEdit завершаются с ошибкой и подсказкой `p4 edit <file>`, если у целевого файла отсутствует бит записи для владельца, который Perforce снимает у синхронизированных файлов, пока `p4 edit` не откроет их. Это не позволяет Claude Code обходить отслеживание изменений Perforce |356| `CLAUDE_CODE_PERFORCE_MODE` | Установите `1`, чтобы включить защиту от записи с учётом Perforce. Если задано, Edit, Write и NotebookEdit завершаются с ошибкой и подсказкой `p4 edit <file>`, если у целевого файла отсутствует бит записи для владельца, который Perforce снимает у синхронизированных файлов, пока `p4 edit` не откроет их. Это не позволяет Claude Code обходить отслеживание изменений Perforce |

357| `CLAUDE_CODE_PLUGIN_CACHE_DIR` | Переопределяет корневой каталог плагинов. Несмотря на название, задаёт родительский каталог, а не сам кэш: маркетплейсы и кэш плагинов находятся в подкаталогах по этому пути. По умолчанию `~/.claude/plugins` |357| `CLAUDE_CODE_PLUGIN_CACHE_DIR` | Переопределяет корневой каталог плагинов. Несмотря на название, задаёт родительский каталог, а не сам кэш: маркетплейсы и кэш плагинов находятся в подкаталогах по этому пути. По умолчанию `~/.claude/plugins` |

358| `CLAUDE_CODE_PLUGIN_DIRS` | Каталоги плагинов для загрузки в сессии; каждый загружается так же, как его загружает флаг [`--plugin-dir`](https://code.claude.com/docs/ru/plugins/cli-reference#flags-that-load-a-plugin-for-one-session). Разделяйте несколько путей символом `:` в Unix или `;` в Windows. Указывайте каждый путь как абсолютный или начинайте его с `~`, поскольку Claude Code пропускает относительные пути. Требуется Claude Code v2.1.280 или новее. См. [Загрузка плагина для одной сессии](https://code.claude.com/docs/ru/plugins/create.md#load-a-directory-or-archive-for-one-session) |358| `CLAUDE_CODE_PLUGIN_DIRS` | Каталоги плагинов для загрузки в сессии; каждый загружается так же, как его загружает флаг [`--plugin-dir`](https://code.claude.com/docs/ru/plugins/cli-reference#flags-that-load-a-plugin-for-one-session). Разделяйте несколько путей символом `:` в Unix или `;` в Windows. Указывайте каждый путь как абсолютный или начинайте его с `~`, поскольку Claude Code пропускает относительные пути. Требуется Claude Code v2.1.280 или новее. См. [Загрузка плагина для одной сессии](https://code.claude.com/docs/ru/plugins/create.md#load-a-directory-or-archive-for-one-session) |

359| `CLAUDE_CODE_PLUGIN_DIR_WATCH` | Управляет тем, перезагружает ли Claude Code [мод](https://code.claude.com/docs/ru/plugins/mods/overview.md) при изменении его файлов. Перезагрузка применяется к моду, который вы загружаете из каталога с помощью `--plugin-dir`, и по умолчанию включена в интерактивных сессиях. Установите `1`, чтобы включить её также в неинтерактивных сессиях, или `0`, чтобы отключить во всех сессиях. Требуется Claude Code v2.1.287 или новее. См. [настройки и переменные окружения модов](https://code.claude.com/docs/ru/plugins/mods/reference.md#settings-and-environment-variables) |359| `CLAUDE_CODE_PLUGIN_DIR_WATCH` | Управляет тем, перезагружается ли [мод](https://code.claude.com/docs/ru/plugins/mods/overview.md) при изменении его файлов. По умолчанию моды в [каталогах скиллов](https://code.claude.com/docs/ru/plugins/org.md#keep-skills-directory-plugins-loading) перезагружаются в любой сессии, в которой больше одного промпта, включая [неинтерактивные](https://code.claude.com/docs/ru/headless.md). Моды в каталогах `--plugin-dir` перезагружаются только в интерактивных сессиях терминала. Установите `1`, чтобы перезагружать их так же, как моды из каталогов скиллов, или `0`, чтобы отключить перезагрузку везде. Требуется Claude Code v2.1.287 или новее |

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

361| `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE` | Установите `1`, чтобы пропустить попытку повторного клонирования и продолжить использовать существующую копию маркетплейса, когда при его обновлении не удаётся связаться с удалённым репозиторием или пройти аутентификацию. Полезно в офлайн- или изолированных средах, где повторное клонирование завершилось бы тем же сбоем. См. [Обновления маркетплейса не выполняются в офлайн-средах](https://code.claude.com/docs/ru/plugins/troubleshooting.md#marketplace-updates-keep-failing-offline) |361| `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE` | Установите `1`, чтобы пропустить попытку повторного клонирования и продолжить использовать существующую копию маркетплейса, когда при его обновлении не удаётся связаться с удалённым репозиторием или пройти аутентификацию. Полезно в офлайн- или изолированных средах, где повторное клонирование завершилось бы тем же сбоем. См. [Обновления маркетплейса не выполняются в офлайн-средах](https://code.claude.com/docs/ru/plugins/troubleshooting.md#marketplace-updates-keep-failing-offline) |

362| `CLAUDE_CODE_PLUGIN_PREFER_HTTPS` | Установите `1`, чтобы клонировать источники в сокращённой форме GitHub `owner/repo` по HTTPS вместо SSH. Применяется к установке и обновлению плагинов, а также к `/plugin marketplace add` и `update`. Полезно в CI-раннерах, контейнерах и любых средах без настроенного SSH-ключа для `github.com` |362| `CLAUDE_CODE_PLUGIN_PREFER_HTTPS` | Установите `1`, чтобы клонировать источники в сокращённой форме GitHub `owner/repo` по HTTPS вместо SSH. Применяется к установке и обновлению плагинов, а также к `/plugin marketplace add` и `update`. Полезно в CI-раннерах, контейнерах и любых средах без настроенного SSH-ключа для `github.com` |

errors.md +4 −8

Details

5556 5556 

5557### В worktree есть коммиты, которые никуда не отправлены5557### В worktree есть коммиты, которые никуда не отправлены

5558 5558 

5559Вы попытались удалить [фоновую сессию](https://code.claude.com/docs/ru/agent-view.md#what-deleting-a-session-removes), worktree которой содержит коммиты, сохранность которых где-либо ещё Claude Code не может подтвердить. Claude Code сохраняет worktree и строку сессии, а не уничтожает коммиты незаметно для вас. `claude rm` называет ветку и неотправленные коммиты и сообщает, как действовать дальше:5559Вы попытались удалить [фоновую сессию](https://code.claude.com/docs/ru/agent-view.md#what-deleting-a-session-removes), worktree которой содержит коммиты, сохранность которых где-либо ещё Claude Code не может подтвердить. `claude rm` сообщает, как действовать дальше:

5560 5560 

5561```text theme={null}5561```text theme={null}

5562kept 7c5dcf5d — its worktree is still at “/home/you/project/.claude/worktrees/fix-login”5562kept 7c5dcf5d — its worktree is still at “/home/you/project/.claude/worktrees/fix-login”


5566 5566 

5567Если Claude Code не может составить сводку коммитов, строка с подробностями вместо этого гласит `The worktree has unpushed commits`. В [представлении агента](https://code.claude.com/docs/ru/agent-view.md) строка сессии показывает `not removed` с той же причиной.5567Если Claude Code не может составить сводку коммитов, строка с подробностями вместо этого гласит `The worktree has unpushed commits`. В [представлении агента](https://code.claude.com/docs/ru/agent-view.md) строка сессии показывает `not removed` с той же причиной.

5568 5568 

5569Коммиты, находящиеся в удалённом репозитории, не блокируют удаление. Не блокируют его и коммиты в локальной копии ветки по умолчанию удалённого репозитория `origin`, если эта ветка извлечена в вашей основной рабочей копии, то есть в самом каталоге репозитория, а не в worktree.

5570 

5571**Что делать:**5569**Что делать:**

5572 5570 

5573* Чтобы сохранить коммиты, отправьте ветку worktree или выполните её слияние с веткой по умолчанию, извлечённой в основной рабочей копии, затем снова удалите сессию5571* Чтобы сохранить коммиты, отправьте их. Когда после отправки они окажутся в ветке отслеживания удалённого репозитория, например `origin/claude/fix-login`, снова попробуйте удалить сессию.

5574* Чтобы отбросить коммиты, выполните команду `claude rm <id> --discard-unpushed`, выведенную в сообщении, или снова дважды нажмите `Ctrl+X` на строке сессии в представлении агента. Это удаляет сессию и worktree вместе с его веткой, неотправленными коммитами и любыми незакоммиченными изменениями. Если удаление снова будет отклонено, следуйте новому сообщению.5572* Если сообщение предлагает отбросить коммиты, сначала убедитесь, что вам не нужны ни worktree, ни коммиты, ни какие-либо незакоммиченные изменения. Затем выполните действие, указанное в сообщении: дважды нажмите `Ctrl+X` на строке сессии в представлении агента или выполните команду `claude rm <id> --discard-unpushed <commit>@<worktree-id>`, которую вывел `claude rm`. Если Claude Code снова откажет, следуйте новому сообщению.

5575* Если в сообщении сказано, что worktree также записан за другой завершённой сессией, повторное удаление не отбрасывает его: отправьте коммиты, затем снова удалите сессию5573* Если в сообщении говорится, что worktree также записан другой завершённой сессией, повторное удаление не отбрасывает его: отправьте коммиты (push), а затем попробуйте удалить сессию снова

5576 5574 

5577До версии 2.1.268 `claude rm` помещал сводку коммитов прямо в строку `kept`. Если `claude rm` не мог составить сводку коммитов, строка `kept` вместо сводки гласила `worktree has commits that are not pushed anywhere`.5575До версии 2.1.268 `claude rm` помещал сводку коммитов прямо в строку `kept`. Если `claude rm` не мог составить сводку коммитов, строка `kept` вместо сводки гласила `worktree has commits that are not pushed anywhere`.

5578 5576 

5579До версии 2.1.260 сообщение не называло ветку и коммиты, и способа отбросить их не было. Вы по-прежнему можете удалить сессию, потеряв незакоммиченные изменения, но сохранив ветку и коммиты. Выполните `git worktree remove --force --force <path>` с путём, выведенным в сообщении об отказе, затем `claude rm <id>`. Для заблокированного worktree Git требует указать `--force` дважды.5577До версии 2.1.260 сообщение не называло ветку и коммиты, и способа отбросить их не было. Вы по-прежнему можете удалить сессию, потеряв незакоммиченные изменения, но сохранив ветку и коммиты. Выполните `git worktree remove --force --force <path>` с путём, выведенным в сообщении об отказе, затем `claude rm <id>`. Для заблокированного worktree Git требует указать `--force` дважды.

5580 5578 

5581До версии 2.1.248 ветка по умолчанию, извлечённая в основной рабочей копии, не учитывалась: ветка, слияние которой вы уже там выполнили, всё равно вызывала этот отказ, пока её коммиты не попадали в удалённый репозиторий.

5582 

5583### Процесс хоста терминала завершился аварийно5579### Процесс хоста терминала завершился аварийно

5584 5580 

5585Терминал каждой [фоновой сессии](https://code.claude.com/docs/ru/agent-view.md) работает в процессе хоста под управлением фоновой службы, и этот процесс завершился аварийно, пока служба ещё удерживала соединение с ним, поэтому сессия стала недоступна.5581Терминал каждой [фоновой сессии](https://code.claude.com/docs/ru/agent-view.md) работает в процессе хоста под управлением фоновой службы, и этот процесс завершился аварийно, пока служба ещё удерживала соединение с ним, поэтому сессия стала недоступна.

Details

35Они имеют различия, зависящие от поставщика:35Они имеют различия, зависящие от поставщика:

36 36 

37* **MCP-серверы**: [коннекторы из claude.ai](https://code.claude.com/docs/ru/mcp.md#use-mcp-servers-from-claude-ai) загружаются только когда ваша подписка claude.ai является активным методом аутентификации. [Поиск инструментов](https://code.claude.com/docs/ru/mcp.md#configure-tool-search) не поддерживается на [развёртываниях Microsoft Foundry, размещённых на Azure](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options). На Google Cloud's Agent Platform поиск инструментов не поддерживается на моделях более ранних, чем Claude Opus 4.5, Claude Sonnet 4.5 и Claude Haiku 4.537* **MCP-серверы**: [коннекторы из claude.ai](https://code.claude.com/docs/ru/mcp.md#use-mcp-servers-from-claude-ai) загружаются только когда ваша подписка claude.ai является активным методом аутентификации. [Поиск инструментов](https://code.claude.com/docs/ru/mcp.md#configure-tool-search) не поддерживается на [развёртываниях Microsoft Foundry, размещённых на Azure](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options). На Google Cloud's Agent Platform поиск инструментов не поддерживается на моделях более ранних, чем Claude Opus 4.5, Claude Sonnet 4.5 и Claude Haiku 4.5

38* **Субагенты**: когда основной диалог работает на Fable, встроенный [субагент Explore](https://code.claude.com/docs/ru/sub-agents.md#built-in-subagents) работает на Opus при использовании подписки Claude, учётной записи Anthropic Console или [LLM-шлюза](https://code.claude.com/docs/ru/llm-gateway), к которому обращаются через `ANTHROPIC_BASE_URL`. У других поставщиков, включая Claude Platform на AWS, он работает на Fable38* **Субагенты**: когда родительский диалог работает на Fable, встроенный [субагент Explore](https://code.claude.com/docs/ru/sub-agents.md#built-in-subagents) работает на Opus при использовании подписки Claude, учётной записи Anthropic Console или [LLM-шлюза](https://code.claude.com/docs/ru/llm-gateway), доступ к которому осуществляется через `ANTHROPIC_BASE_URL`. У других провайдеров, включая Claude Platform on AWS, он работает на Fable

39* **[Commands](https://code.claude.com/docs/ru/commands.md#all-commands)**:39* **[Commands](https://code.claude.com/docs/ru/commands.md#all-commands)**:

40 * `/design-sync` и `/import` с его формой подкоманды `claude import` недоступны на Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry и Claude Platform на AWS, а также через [Claude apps gateway](https://code.claude.com/docs/ru/claude-apps-gateway#availability-and-limitations)40 * `/design-sync` и `/import` с его формой подкоманды `claude import` недоступны на Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry и Claude Platform на AWS, а также через [Claude apps gateway](https://code.claude.com/docs/ru/claude-apps-gateway#availability-and-limitations)

41 * `/voice` требует учётную запись claude.ai41 * `/voice` требует учётную запись claude.ai

Details

188>188>

189> **Поместите guardrails в hooks.** Инструкция типа «никогда не редактируй `.env`» в CLAUDE.md или skill — это просьба, а не гарантия. Hook `PreToolUse`, который блокирует редактирование, — это принуждение. Если правило должно выполняться каждый раз, сделай его hook, а не инструкцию подсказки.189> **Поместите guardrails в hooks.** Инструкция типа «никогда не редактируй `.env`» в CLAUDE.md или skill — это просьба, а не гарантия. Hook `PreToolUse`, который блокирует редактирование, — это принуждение. Если правило должно выполняться каждый раз, сделай его hook, а не инструкцию подсказки.

190>190>

191> **Вывод Hook попадает в контекст.** Hook `PostToolUse`, который запускает твой линтер, возвращает результаты как текст, который читает Claude; skill `/fix-lint` говорит Claude, как их разрешить.191> **Сочетайте хук со скиллом.** Используйте хук `PostToolUse`, чтобы запускать ваш линтер и [отправлять ошибки Claude](https://code.claude.com/docs/ru/hooks.md#exit-code-2-behavior-per-event). Чтобы дать Claude собственные правила исправления ошибок, напишите скилл, например `/fix-lint`.

192 192 

193### Поймите, как функции слоятся193### Поймите, как функции слоятся

194 194 

glossary.md +1 −1

Details

283 283 

284### Sandboxing284### Sandboxing

285 285 

286Изоляция файловой системы и сети на уровне ОС для инструмента Bash. Команды выполняются внутри границы, которую вы определяете заранее, поэтому Claude может свободно работать в её пределах без запросов подтверждения для каждой команды. Изоляция в песочнице — это отдельный уровень, независимый от [правил разрешений](#permission-rule).286Изоляция файловой системы и сети на уровне ОС для инструмента Bash. Команды выполняются внутри границы, которую вы определяете заранее. Изоляция в песочнице — это отдельный уровень, независимый от [правил разрешений](#permission-rule).

287 287 

288Подробнее: [Изоляция в песочнице](https://code.claude.com/docs/ru/sandboxing.md)288Подробнее: [Изоляция в песочнице](https://code.claude.com/docs/ru/sandboxing.md)

289 289 

hooks-guide.md +5 −1

Details

242 242 

243### Блокировка редактирования защищённых файлов243### Блокировка редактирования защищённых файлов

244 244 

245Предотвратите изменение Claude чувствительных файлов, таких как `.env`, `package-lock.json` или что-либо в `.git/`. Claude получает обратную связь, объясняющую, почему редактирование было заблокировано, чтобы он мог скорректировать свой подход.245Запретите инструментам Claude `Edit` и `Write` изменять чувствительные файлы, такие как `.env`, `package-lock.json` или что-либо в `.git/`. Claude получает обратную связь, объясняющую, почему редактирование было заблокировано, чтобы он мог скорректировать свой подход.

246 246 

247Этот пример использует отдельный файл скрипта, который вызывает hook. Скрипт проверяет путь целевого файла против списка защищённых шаблонов и выходит с кодом 2 для блокировки редактирования.247Этот пример использует отдельный файл скрипта, который вызывает hook. Скрипт проверяет путь целевого файла против списка защищённых шаблонов и выходит с кодом 2 для блокировки редактирования.

248 248 


306 306 

307Попросите Claude добавить комментарий в ваш файл `.env`. Claude Code блокирует редактирование перед его выполнением и передаёт сообщение `Blocked:` скрипта Claude как обратную связь.307Попросите Claude добавить комментарий в ваш файл `.env`. Claude Code блокирует редактирование перед его выполнением и передаёт сообщение `Blocked:` скрипта Claude как обратную связь.

308 308 

309Claude по-прежнему может изменять защищённые файлы с помощью shell-команд. Чтобы заблокировать некоторые из этих команд, добавьте [правило запрета `Edit`](https://code.claude.com/docs/ru/permissions#what-read-and-edit-rules-cover) для каждого пути в `permissions.deny` в `.claude/settings.json`, например `Edit(/.env)` для `.env` в корне проекта.

310 

311Даже с этими правилами Claude может изменить `.env` другими способами. Чтобы ограничить, в какие файлы могут записывать команды, см. [Настройка изоляции в песочнице](https://code.claude.com/docs/ru/sandboxing.md#configure-sandboxing).

312 

309### Повторное внедрение контекста после компактирования313### Повторное внедрение контекста после компактирования

310 314 

311Когда контекстное окно Claude заполняется, компактирование суммирует разговор для освобождения места. Это может привести к потере важных деталей. Используйте hook `SessionStart` с matcher `compact` для повторного внедрения критического контекста после каждого компактирования.315Когда контекстное окно Claude заполняется, компактирование суммирует разговор для освобождения места. Это может привести к потере важных деталей. Используйте hook `SessionStart` с matcher `compact` для повторного внедрения критического контекста после каждого компактирования.

Details

296* Поле верхнего уровня `output_config.effort`. В разделе [Автоматические повторные попытки и пересылка ошибок](#automatic-retry-and-error-forwarding) описан случай, когда вышестоящий сервер его отклоняет296* Поле верхнего уровня `output_config.effort`. В разделе [Автоматические повторные попытки и пересылка ошибок](#automatic-retry-and-error-forwarding) описан случай, когда вышестоящий сервер его отклоняет

297* Поле `thinking` адаптивного рассуждения, у которого нет бета-заголовка297* Поле `thinking` адаптивного рассуждения, у которого нет бета-заголовка

298* Записи `role: "system"`, которые содержат [системные сообщения в середине диалога](#feature-pass-through)298* Записи `role: "system"`, которые содержат [системные сообщения в середине диалога](#feature-pass-through)

299* Значение `anthropic-beta` и поле `safeguards` для [серверной проверки классификатором](https://code.claude.com/docs/ru/permission-modes.md#server-side-classifier-review) в авторежиме — в сессиях, где эта проверка остается включенной, например когда `/status` показывает **Auto mode server** как `Enabled`. Чтобы отключить проверку, установите `CLAUDE_CODE_AUTO_MODE_SERVER=0` перед запуском сессии. После этого в терминале `/status` показывает **Auto mode server** как `Disabled`.

299* Значение `anthropic-beta` для OAuth, которое требуется для аутентификации по подписке300* Значение `anthropic-beta` для OAuth, которое требуется для аутентификации по подписке

300* Значения заголовков и поля тела, которые разработчики добавляют сами через [`ANTHROPIC_BETAS`](https://code.claude.com/docs/ru/env-vars) или [`CLAUDE_CODE_EXTRA_BODY`](https://code.claude.com/docs/ru/env-vars)301* Значения заголовков и поля тела, которые разработчики добавляют сами через [`ANTHROPIC_BETAS`](https://code.claude.com/docs/ru/env-vars) или [`CLAUDE_CODE_EXTRA_BODY`](https://code.claude.com/docs/ru/env-vars)

301 302 

managed-mcp.md +3 −2

Details

30| Шаблон | Что он делает | Настройка |30| Шаблон | Что он делает | Настройка |

31| :- | :- | :- |31| :- | :- | :- |

32| **Отключить MCP** | Серверы не загружаются, кроме нескольких, которые [загружаются под исключительным контролем](#exclusive-control-with-managed-mcp-json) | `managed-mcp.json` с пустой картой серверов |32| **Отключить MCP** | Серверы не загружаются, кроме нескольких, которые [загружаются под исключительным контролем](#exclusive-control-with-managed-mcp-json) | `managed-mcp.json` с пустой картой серверов |

33| **Фиксированное развертывание** | Каждый пользователь получает одни и те же серверы и не может добавлять другие | `managed-mcp.json` с нужными вам серверами |33| **Фиксированное развёртывание** | Каждый пользователь получает серверы из вашего списка, а серверы, которые он настраивает сам, не загружаются | `managed-mcp.json` с нужными вам серверами |

34| **Предоставленные серверы** | Каждый пользователь получает удаленные серверы из вашего списка и сохраняет свои собственные | `managedMcpServers` в управляемых параметрах |34| **Предоставленные серверы** | Каждый пользователь получает удаленные серверы из вашего списка и сохраняет свои собственные | `managedMcpServers` в управляемых параметрах |

35| **Утвержденный каталог** | Опубликуйте список утвержденных серверов; пользователи добавляют нужные им, все остальное блокируется | `allowedMcpServers` + `allowManagedMcpServersOnly: true` |35| **Утвержденный каталог** | Опубликуйте список утвержденных серверов; пользователи добавляют нужные им, все остальное блокируется | `allowedMcpServers` + `allowManagedMcpServersOnly: true` |

36| **Только серверы плагинов** | Пользователи не могут добавлять серверы через `~/.claude.json` или `.mcp.json`; [плагины из каталога навыков](https://code.claude.com/docs/ru/plugins/loading.md#skills-directory-plugins-blocked-by-managed-settings) перестают загружаться как плагины, а серверы из других плагинов по-прежнему загружаются | [`strictPluginOnlyCustomization`](https://code.claude.com/docs/ru/settings-reference#strictpluginonlycustomization) со значением `mcp` в списке |36| **Только серверы плагинов** | Пользователи не могут добавлять серверы через `~/.claude.json` или `.mcp.json`; [плагины из каталога навыков](https://code.claude.com/docs/ru/plugins/loading.md#skills-directory-plugins-blocked-by-managed-settings) перестают загружаться как плагины, а серверы из других плагинов по-прежнему загружаются | [`strictPluginOnlyCustomization`](https://code.claude.com/docs/ru/settings-reference#strictpluginonlycustomization) со значением `mcp` в списке |


49* Серверы, которые определяет файл49* Серверы, которые определяет файл

50* Серверы, которые вы [предоставляете через `managedMcpServers`](#provide-servers-through-managed-settings)50* Серверы, которые вы [предоставляете через `managedMcpServers`](#provide-servers-through-managed-settings)

51* Встроенные серверы, которые регистрирует приложение, запустившее сеанс, такие как собственный сервер расширения VS Code или [коннекторы, которые поставляет настольное приложение](https://code.claude.com/docs/ru/mcp.md#how-connectors-reach-claude-code)51* Встроенные серверы, которые регистрирует приложение, запустившее сеанс, такие как собственный сервер расширения VS Code или [коннекторы, которые поставляет настольное приложение](https://code.claude.com/docs/ru/mcp.md#how-connectors-reach-claude-code)

52* Сервер, который Claude Code создаёт, когда [мод](https://code.claude.com/docs/ru/plugins/mods/overview.md) [добавляет инструменты](https://code.claude.com/docs/ru/plugins/mods/api.md#add-a-tool). Чтобы заблокировать инструменты, которые добавляют моды ваших пользователей, [запретите загрузку модов, установленных пользователями](https://code.claude.com/docs/ru/plugins/mods/admin.md#stop-user-installed-mods-from-loading).

52* Встроенный сервер [Claude in Chrome](https://code.claude.com/docs/ru/chrome.md), если вы [разрешите его наряду с управляемым набором](#allow-claude-in-chrome-alongside-the-managed-set)53* Встроенный сервер [Claude in Chrome](https://code.claude.com/docs/ru/chrome.md), если вы [разрешите его наряду с управляемым набором](#allow-claude-in-chrome-alongside-the-managed-set)

53 54 

54Пользователи не могут добавлять, изменять или использовать какие-либо другие MCP серверы, включая серверы, предоставляемые плагинами, и серверы, переданные с помощью [флага CLI `--mcp-config`](https://code.claude.com/docs/ru/cli-reference#cli-flags). Файл также подавляет коннекторы claude.ai, которые Claude Code загружает сам по себе, если вы не [разрешите их наряду с управляемым набором](#allow-claude-ai-connectors-alongside-the-managed-set).55Пользователи не могут добавлять, изменять или использовать какие-либо другие MCP серверы, включая серверы, предоставляемые плагинами, и серверы, переданные с помощью [флага CLI `--mcp-config`](https://code.claude.com/docs/ru/cli-reference#cli-flags). Файл также подавляет коннекторы claude.ai, которые Claude Code загружает сам по себе, если вы не [разрешите их наряду с управляемым набором](#allow-claude-ai-connectors-alongside-the-managed-set).


137}138}

138```139```

139 140 

140`claude mcp add` завершается с ошибкой политики предприятия, указанной выше. Серверы, которые пользователи ранее настроили, перестают загружаться при следующем запуске сеанса, без предупреждения о том, что причина в политике. Серверы, которые вы предоставляете через `managedMcpServers`, и всё остальное, что вы разрешаете наряду с управляемым набором, по-прежнему загружаются при пустой карте, поэтому оставьте эти ключи неустановленными, чтобы полностью отключить MCP.141`claude mcp add` завершается с ошибкой политики предприятия, указанной выше. Серверы, которые пользователи ранее настроили, перестают загружаться при следующем запуске сессии, без предупреждения о том, что причина в политике. Серверы, которые вы предоставляете через `managedMcpServers`, и всё остальное, что вы разрешаете наряду с управляемым набором, [по-прежнему загружаются](#exclusive-control-with-managed-mcp-json) при пустой карте, поэтому оставьте эти ключи неустановленными.

141 142 

142### Разрешение коннекторов claude.ai наряду с управляемым набором143### Разрешение коннекторов claude.ai наряду с управляемым набором

143 144 

mcp.md +1 −1

Details

806 806 

807* Добавьте его в [`disabledMcpjsonServers`](https://code.claude.com/docs/ru/settings-reference#disabledmcpjsonservers), что блокирует его в любом режиме разрешений.807* Добавьте его в [`disabledMcpjsonServers`](https://code.claude.com/docs/ru/settings-reference#disabledmcpjsonservers), что блокирует его в любом режиме разрешений.

808* Полностью исключите настройки проекта с помощью [`--setting-sources`](https://code.claude.com/docs/ru/cli-reference#cli-flags) или опции SDK `settingSources`.808* Полностью исключите настройки проекта с помощью [`--setting-sources`](https://code.claude.com/docs/ru/cli-reference#cli-flags) или опции SDK `settingSources`.

809* Запустите сессию с флагом [`--strict-mcp-config`](https://code.claude.com/docs/ru/cli-reference#cli-flags). Тогда Claude Code использует только MCP-серверы, переданные через `--mcp-config`. Пропуск запроса подтверждения для серверов с областью действия проекта, которые Claude Code не загружает, требует Claude Code v2.1.246 или более поздней версии; до v2.1.246 строгая сессия всё равно ожидала подтверждения для них, из-за чего фоновые сессии зависали при запуске. О том, что делает этот флаг при наличии управляемого файла MCP, см. в разделе [Эксклюзивный контроль с помощью managed-mcp.json](https://code.claude.com/docs/ru/managed-mcp.md#exclusive-control-with-managed-mcp-json).809* Запустите сессию с флагом [`--strict-mcp-config`](https://code.claude.com/docs/ru/cli-reference#cli-flags). Тогда Claude Code загружает серверы, переданные через `--mcp-config`, и пропускает серверы, настроенные в таких местах, как `.mcp.json`. Пропуск запроса подтверждения для серверов с областью действия проекта, которые Claude Code не загружает, требует Claude Code v2.1.246 или более поздней версии. О том, что делает этот флаг при наличии управляемого файла MCP, см. в разделе [Эксклюзивный контроль с помощью managed-mcp.json](https://code.claude.com/docs/ru/managed-mcp.md#exclusive-control-with-managed-mcp-json).

810 810 

811В разделе [Подтверждения серверов проекта и доверие к рабочему пространству](#project-server-approvals-and-workspace-trust) описано, как подтверждения, закоммиченные в репозиторий, взаимодействуют с доверием к рабочему пространству.811В разделе [Подтверждения серверов проекта и доверие к рабочему пространству](#project-server-approvals-and-workspace-trust) описано, как подтверждения, закоммиченные в репозиторий, взаимодействуют с доверием к рабочему пространству.

812 812 

model-config.md +2 −2

Details

273* **`/model`**: Claude Code отклоняет переключение с ошибкой273* **`/model`**: Claude Code отклоняет переключение с ошибкой

274* **Флаг `--model`, `ANTHROPIC_MODEL` или параметр `model`**: Claude Code заменяет значение при запуске с предупреждением, называющим как запрошенную, так и подставленную модели, и сессия начинается на модели по умолчанию274* **Флаг `--model`, `ANTHROPIC_MODEL` или параметр `model`**: Claude Code заменяет значение при запуске с предупреждением, называющим как запрошенную, так и подставленную модели, и сессия начинается на модели по умолчанию

275* **[`ANTHROPIC_DEFAULT_MODEL`](#set-a-default-model-for-new-sessions)**: Claude Code игнорирует переменную275* **[`ANTHROPIC_DEFAULT_MODEL`](#set-a-default-model-for-new-sessions)**: Claude Code игнорирует переменную

276* **Переопределение подагента или товарища**: Claude Code запускает подагента или товарища на резервной модели, а не отказывает в запросе. См. [Выбор модели](https://code.claude.com/docs/ru/sub-agents.md#choose-a-model) для резервной копии подагента и [Указание товарищей и моделей](https://code.claude.com/docs/ru/agent-teams.md#specify-teammates-and-models) для резервной копии товарища.276* **Переопределение для субагента или участника команды**: Claude Code запускает субагента или участника команды на резервной модели, а не завершает запрос ошибкой. О резервном варианте для субагента см. [Когда список разрешённых моделей блокирует модель субагента](https://code.claude.com/docs/ru/sub-agents.md#when-an-allowlist-blocks-a-subagent-model), а о резервном варианте для участника команды — [Указание участников команды и моделей](https://code.claude.com/docs/ru/agent-teams.md#specify-teammates-and-models).

277 277 

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

279 279 

280 Где работает подстановка самой новой разрешенной версии выше, заблокированный псевдоним семейства следует ей вместо этого. До v2.1.222 псевдоним отступал как любое другое заблокированное значение на каждом поставщике280 Где работает подстановка самой новой разрешенной версии выше, заблокированный псевдоним семейства следует ей вместо этого. До v2.1.222 псевдоним отступал как любое другое заблокированное значение на каждом поставщике

281* **Переопределение skill или команды**: Claude Code игнорирует переопределение, включая заблокированный псевдоним семейства, и skill или команда запускаются на модели сессии. Skill или команда, которая [запускается в подагенте](https://code.claude.com/docs/ru/skills.md#run-skills-in-a-subagent), следует поведению подагента выше вместо этого281* **Переопределение skill или команды**: Claude Code игнорирует переопределение, включая заблокированный псевдоним семейства, и skill или команда запускаются на модели сессии. Skill или команда, которая [запускается в подагенте](https://code.claude.com/docs/ru/skills.md#run-skills-in-a-subagent), следует поведению подагента выше вместо этого

Details

50| Вы хотите | Начните с | Необходимая изоляция | Примечания |50| Вы хотите | Начните с | Необходимая изоляция | Примечания |

51| :- | :- | :- | :- |51| :- | :- | :- | :- |

52| Проверить каждое действие самостоятельно | Режим Manual: `claude --permission-mode default` | Нет | Чувствительная работа, незнакомый код |52| Проверить каждое действие самостоятельно | Режим Manual: `claude --permission-mode default` | Нет | Чувствительная работа, незнакомый код |

53| Итерировать локально с меньшим количеством запросов, без классификатора | Режим Manual плюс песочница Bash в [режиме auto-allow](https://code.claude.com/docs/ru/sandboxing.md#sandbox-modes): `claude --permission-mode default`, затем запустите `/sandbox` и выберите auto-allow | Встроенная песочница Bash, на macOS, Linux и WSL2 | Правила отказа по-прежнему применяются, и правила запроса, которые называют команду, такие как `Bash(git push *)`, по-прежнему запрашивают. [Режим auto-allow](https://code.claude.com/docs/ru/sandboxing.md#auto-allow-mode) охватывает другие команды, которые могут запрашивать подтверждение. Чтобы включить песочницу из файла параметров вместо этого, установите [`sandbox.enabled`](https://code.claude.com/docs/ru/settings-reference#sandbox-enabled) на `true` |53| Итерировать локально с меньшим количеством запросов, без классификатора | Режим Manual плюс песочница Bash в [режиме auto-allow](https://code.claude.com/docs/ru/sandboxing.md#sandbox-modes): `claude --permission-mode default`, затем запустите `/sandbox` и выберите auto-allow | Встроенная песочница Bash, на macOS, Linux и WSL2 | Правила отказа по-прежнему применяются, и правила запроса, которые называют команду, такие как `Bash(git push *)`, по-прежнему запрашивают. [Режим auto-allow](https://code.claude.com/docs/ru/sandboxing.md#auto-allow-mode) охватывает другие команды, которые могут запрашивать подтверждение. Чтобы вместо этого включить песочницу из файла настроек, установите [`sandbox.enabled`](https://code.claude.com/docs/ru/settings-reference#sandbox-enabled) и [`sandbox.autoAllowBashIfSandboxed`](https://code.claude.com/docs/ru/settings-reference#sandbox-autoallowbashifsandboxed) в значение `true` |

54| Исследовать перед изменением чего-либо | `claude --permission-mode plan` | Нет | Claude Code блокирует редактирование до тех пор, пока вы не [одобрите план](#review-and-approve-a-plan) |54| Исследовать перед изменением чего-либо | `claude --permission-mode plan` | Нет | Claude Code блокирует редактирование до тех пор, пока вы не [одобрите план](#review-and-approve-a-plan) |

55| Работать в режиме auto без участия | `claude --permission-mode auto`, [встроенный начальный режим разрешений](#which-mode-a-session-starts-in) с v2.1.283 или позже | Нет; песочница или контейнер добавляет защиту в глубину | Требует [поддерживаемую модель](#eliminate-prompts-with-auto-mode), и ваша организация может [отключить режим auto](#eliminate-prompts-with-auto-mode) |55| Работать в режиме auto без участия | `claude --permission-mode auto`, [встроенный начальный режим разрешений](#which-mode-a-session-starts-in) с v2.1.283 или позже | Нет; песочница или контейнер добавляет защиту в глубину | Требует [поддерживаемую модель](#eliminate-prompts-with-auto-mode), и ваша организация может [отключить режим auto](#eliminate-prompts-with-auto-mode) |

56| Запустить в CI с точным списком разрешений | `claude -p "run the test suite" --permission-mode dontAsk --allowedTools "Bash(npm test)" "Read"` | Нет, кроме того, что предоставляет ваш CI runner | [Облачные сеансы](https://code.claude.com/docs/ru/claude-code-on-the-web.md) игнорируют `dontAsk` из файлов параметров |56| Запустить в CI с точным списком разрешений | `claude -p "run the test suite" --permission-mode dontAsk --allowedTools "Bash(npm test)" "Read"` | Нет, кроме того, что предоставляет ваш CI runner | [Облачные сеансы](https://code.claude.com/docs/ru/claude-code-on-the-web.md) игнорируют `dontAsk` из файлов параметров |

permissions.md +1 −1

Details

743 743 

744Используйте оба уровня для защиты в глубину, поскольку ограничения песочницы остаются в силе даже если инъекция в подсказку обойдёт принятие решений Claude. Пути и домены из параметров песочницы и правил разрешений [объединяются в финальную конфигурацию песочницы](https://code.claude.com/docs/ru/sandboxing.md#permission-rules).744Используйте оба уровня для защиты в глубину, поскольку ограничения песочницы остаются в силе даже если инъекция в подсказку обойдёт принятие решений Claude. Пути и домены из параметров песочницы и правил разрешений [объединяются в финальную конфигурацию песочницы](https://code.claude.com/docs/ru/sandboxing.md#permission-rules).

745 745 

746Когда вы включаете песочницу и оставляете `autoAllowBashIfSandboxed` со значением по умолчанию `true`, команды Bash в песочнице выполняются без запроса даже если ваши разрешения включают простое правило запроса `Bash`, или [эквивалентную форму `Bash(*)`](#match-all-uses-of-a-tool): граница песочницы заменяет этот запрос для всего инструмента.746Когда вы включаете песочницу и устанавливаете для [`sandbox.autoAllowBashIfSandboxed`](https://code.claude.com/docs/ru/settings-reference#sandbox-autoallowbashifsandboxed) значение `true`, команды Bash в песочнице выполняются без запроса. Это справедливо даже при наличии простого правила запроса `Bash` или [эквивалентной формы `Bash(*)`](#match-all-uses-of-a-tool): граница песочницы заменяет этот запрос для всего инструмента.

747 747 

748В [режиме планирования](https://code.claude.com/docs/ru/permission-modes.md#analyze-before-you-edit-with-plan-mode) Claude Code пропускает эту замену. Без правила запроса [встроенные команды только для чтения](#read-only-commands) по-прежнему выполняются без запроса, и любая другая команда оболочки проходит через обычный поток разрешений пока вы всё ещё планируете; см. [режим планирования](https://code.claude.com/docs/ru/permission-modes.md#analyze-before-you-edit-with-plan-mode) для того, как Claude Code управляет командами там. С простым правилом запроса `Bash`, каждая команда Bash запрашивается, включая команды только для чтения в песочнице, так же как вне песочницы.748В [режиме планирования](https://code.claude.com/docs/ru/permission-modes.md#analyze-before-you-edit-with-plan-mode) Claude Code пропускает эту замену. Без правила запроса [встроенные команды только для чтения](#read-only-commands) по-прежнему выполняются без запроса, и любая другая команда оболочки проходит через обычный поток разрешений пока вы всё ещё планируете; см. [режим планирования](https://code.claude.com/docs/ru/permission-modes.md#analyze-before-you-edit-with-plan-mode) для того, как Claude Code управляет командами там. С простым правилом запроса `Bash`, каждая команда Bash запрашивается, включая команды только для чтения в песочнице, так же как вне песочницы.

749 749 

Details

438 438 

439* **Поля `backdrop`**: `scene` — это [имя](https://code.claude.com/docs/ru/plugins/mods/reference.md#limits), которое вы выбираете для фона, рисуемого вашим хуком. Об остальных полях и `overrideColorScheme` см. [типы для вашей сборки](https://code.claude.com/docs/ru/plugins/mods/create.md#get-the-types-for-your-build).439* **Поля `backdrop`**: `scene` — это [имя](https://code.claude.com/docs/ru/plugins/mods/reference.md#limits), которое вы выбираете для фона, рисуемого вашим хуком. Об остальных полях и `overrideColorScheme` см. [типы для вашей сборки](https://code.claude.com/docs/ru/plugins/mods/create.md#get-the-types-for-your-build).

440* **Рисуется ли фон**: `$.theme.set` разрешается с `isDrawn: true`, когда приложение Desktop или мобильное приложение, подключенное к сессии, сообщает, что рисует фоны. В противном случае `isDrawn` имеет значение `false`, а `reason` объясняет причину.440* **Рисуется ли фон**: `$.theme.set` разрешается с `isDrawn: true`, когда приложение Desktop или мобильное приложение, подключенное к сессии, сообщает, что рисует фоны. В противном случае `isDrawn` имеет значение `false`, а `reason` объясняет причину.

441* **Один фон на каждую сессию**: вызов `$.theme.set` заменяет фон сессии, а `$.theme.clear()` удаляет этот фон, независимо от того, какой мод его установил. Вызывайте `$.theme.clear()` только тогда, когда об этом просит пользователь.441* **Одна тема на каждую сессию**: мод, вызывающий `$.theme.set`, заменяет фон и [цвета](#change-the-colors-of-the-desktop-app) сессии, а мод, вызывающий `$.theme.clear()`, удаляет их, независимо от того, какой мод их установил. Вызывайте `$.theme.clear()` только тогда, когда об этом просит пользователь.

442 

443### Изменение цветов приложения Desktop

444 

445Чтобы изменить цвета вкладки Code в приложении Desktop с помощью мода, [попросите Claude создать такой мод](#ask-claude-for-a-colors-mod) или [напишите его сами](#write-a-colors-mod-yourself). Оба способа требуют Claude Code v2.1.324 или новее на вкладке Code, поэтому сначала [проверьте версию там](https://code.claude.com/docs/ru/desktop.md#claude-code-version-in-the-code-tab). Claude Code в терминале сохраняет собственные цвета.

446 

447#### Запрос мода с цветами у Claude

448 

449**1. Опишите цвета**

450 

451Запустите локальную сессию на вкладке Code и скажите Claude, какие цвета вам нужны. Например, введите `make a mod that makes the app cream in light mode and dark brown in dark mode`. Claude напишет файлы мода.

452 

453**2. Одобрите мод**

454 

455Ответьте на вопросы, которые Claude Code задает о файлах мода и горячей перезагрузке. О том, что делает каждый ответ, см. [Запрос мода у Claude](https://code.claude.com/docs/ru/plugins/mods/create.md#ask-claude-for-a-mod).

456 

457**3. Проверьте цвета**

458 

459Вкладка Code меняет цвета, когда мод загружается. Чтобы скорректировать цвет, скажите Claude, что изменить. Если ничего не меняется, см. [Исправление отсутствующих цветов мода](#fix-missing-mod-colors-in-the-desktop-app).

460 

461#### Самостоятельное написание мода с цветами

462 

463`makeColors` — это функция, которая создает тему из нескольких шестнадцатеричных цветов. Следующие шаги создают мод с именем `paper`, который ее использует.

464 

465**1. Попросите Claude скопировать makeColors**

466 

467Запустите локальную сессию на вкладке Code и введите `copy make-colors.js and make-colors.d.ts from your plugin-authoring skill into ~/.claude/skills/paper/hooks/`. Убедитесь, что оба файла находятся в этом каталоге.

468 

469**2. Сохраните манифест и hooks.json**

470 

471Из раздела [Самостоятельное написание мода](https://code.claude.com/docs/ru/plugins/mods/create.md#write-a-mod-yourself) сохраните `.claude-plugin/plugin.json` и `hooks/hooks.json` в `~/.claude/skills/paper/` и замените `first-mod` на `paper` в обоих файлах. Мод [в `~/.claude/skills/`](https://code.claude.com/docs/ru/plugins/create#scaffold-a-plugin-that-loads-every-session) загружается при запуске сессии.

472 

473**3. Напишите код**

474 

475Сохраните этот файл как `~/.claude/skills/paper/hooks/register.js`. При запуске сессии код вызывает `$.theme.set` с цветами для светлого и темного режимов:

476 

477```javascript theme={null}

478import { makeColors } from './make-colors.js'

479 

480const { theme } = makeColors({

481 label: 'Paper',

482 // surface-0 is the background, text-primary is the main text, and text-muted is the faint text

483 light: {

484 gray: { anchors: { 'surface-0': '#efe6d3', 'text-primary': '#2a241d', 'text-muted': '#6a5f50' } },

485 },

486 dark: {

487 gray: { anchors: { 'surface-0': '#1f1a15', 'text-primary': '#f0e7d7', 'text-muted': '#aca08d' } },

488 },

489})

490 

491export function register(on) {

492 on('session.start', async ($, e, next) => {

493 await $.theme.set({ colors: theme })

494 return next(e)

495 })

496}

497```

498 

499Чтобы использовать собственные цвета, замените шестнадцатеричные значения другими шестизначными шестнадцатеричными цветами.

500 

501**4. Проверьте цвета**

502 

503Запустите новую локальную сессию на вкладке Code. Со значениями из примера фон становится кремовым в светлом режиме и темно-коричневым в темном режиме. Если ничего не меняется, см. [Исправление отсутствующих цветов мода](#fix-missing-mod-colors-in-the-desktop-app).

504 

505### Исправление отсутствующих цветов мода в приложении Desktop

506 

507Если вы используете [стороннего провайдера](https://code.claude.com/docs/ru/third-party-integrations.md) вместо аккаунта Claude в [Claude Desktop v5.11492.5 или более ранней версии](https://code.claude.com/docs/ru/desktop.md#check-your-version), вкладка Code сохраняет собственные цвета, поэтому пропустите эти проверки. В остальных случаях, если цвета мода не появляются на вкладке Code или исчезают, проверьте следующие причины:

508 

509* **Старая версия**: [обновите приложение Desktop](https://code.claude.com/docs/ru/desktop.md#claude-code-version-in-the-code-tab), перезапустите его и запустите новую локальную сессию на вкладке Code. Если мод написал Claude, попросите его об этом там снова.

510* **Мод не загружен**: если мод написал Claude, узнайте, когда он загружается, в разделе [Запрос мода у Claude](https://code.claude.com/docs/ru/plugins/mods/create.md#ask-claude-for-a-mod). Если вы написали его сами, сравните свои файлы и их пути с разделом [Самостоятельное написание мода с цветами](#write-a-colors-mod-yourself).

511* **Отклоненная тема**: попросите Claude выполнить вызов [`makeColors`](#write-a-colors-mod-yourself) из мода. Если вызов выбрасывает ошибку или в его списке `problems` есть запись, начинающаяся с `Desktop won't paint this theme`, попросите Claude исправить тему. Если вы установили мод, отправьте то, что нашел Claude, его автору.

512* **Другой вызов `$.theme`**: когда любой мод в сессии вызывает `$.theme.set` или `$.theme.clear()`, цвета и [фон](#put-a-backdrop-behind-the-conversation) из более раннего вызова исчезают. В собственном моде передавайте `colors` и `backdrop` в одном и том же вызове `$.theme.set`. Используйте одновременно только один мод, задающий тему.

513 

514### Удаление цветов мода из приложения Desktop

515 

516Чтобы убрать цвета мода с вкладки Code, сначала отключите мод. Мод, который все еще включен, может снова задать свои цвета.

517 

518**1. Отключите мод**

519 

520* **Мод написал Claude**: переместите его каталог из [папки модов](https://code.claude.com/docs/ru/plugins/mods/create.md#ask-claude-for-a-mod) той сессии, в которой Claude его написал.

521* **Вы поместили мод в `~/.claude/skills/`**: переместите его каталог, например `~/.claude/skills/paper/`, в место за пределами `~/.claude/skills/`.

522* **Вы установили мод**: в приложении Desktop [отключите или удалите его плагин](https://code.claude.com/docs/ru/desktop.md#install-plugins) в разделе **Manage plugins**. Если вы не видите **Manage plugins** и у вас есть [CLI](https://code.claude.com/docs/ru/quickstart.md), вы можете [отключить или удалить плагин из маркетплейса в своей оболочке](https://code.claude.com/docs/ru/plugins/install.md#manage-plugins-from-your-shell).

523 

524**2. Запустите новую сессию**

525 

526Запустите новую локальную сессию на вкладке Code.

527 

528**3. Удалите оставшиеся цвета**

529 

530Если цвета все еще на месте, откройте **Settings** на вкладке Code и найдите там `code appearance`. Откройте результат и выберите **Remove colors**.

442 531 

443## Создание дерева из элементов532## Создание дерева из элементов

444 533 


677 766 

678Те же клавиши, а в полноэкранном рендеринге — щелчок по этой строке, снова разворачивают полосу. До этого ничто не нажимает кнопки в ней: ни горячая клавиша, ни цифра, введенная в пустой промпт, ни сочетание клавиш для [`action`](https://code.claude.com/docs/ru/plugins/mods/reference#elements) кнопки. Если полоса имеет фокус клавиатуры в момент, когда пользователь ее сворачивает, фокус возвращается в промпт, а Ctrl+X, затем Tab пропускает полосу, пока она свернута.767Те же клавиши, а в полноэкранном рендеринге — щелчок по этой строке, снова разворачивают полосу. До этого ничто не нажимает кнопки в ней: ни горячая клавиша, ни цифра, введенная в пустой промпт, ни сочетание клавиш для [`action`](https://code.claude.com/docs/ru/plugins/mods/reference#elements) кнопки. Если полоса имеет фокус клавиатуры в момент, когда пользователь ее сворачивает, фокус возвращается в промпт, а Ctrl+X, затем Tab пропускает полосу, пока она свернута.

679 768 

680Полоса остается свернутой, пока пользователь ее не развернет, даже после `/clear`, и снова разворачивается при следующем запуске Claude Code. Ваш мод не может развернуть ее или узнать, что она свернута: хук `ui.render` продолжает выполняться, и ничто в `e.props` об этом не сообщает. Не делайте полосу единственным местом, где ваш мод показывает то, на что пользователь должен ответить.769Полоса остается свернутой, пока пользователь ее не развернет, даже после `/clear`, и снова разворачивается при следующем запуске Claude Code. Ваш мод не может развернуть ее. Не делайте полосу единственным местом, где ваш мод показывает то, на что пользователь должен ответить. Чтобы показывать это в другом месте только пока полоса свернута, читайте `e.props.isCollapsed` в вашем хуке `ui.render`, который продолжает выполняться. `isCollapsed` требует Claude Code v2.1.321 или новее.

681 770 

682### Получение введенного текста и рисование строки для каждого элемента771### Получение введенного текста и рисование строки для каждого элемента

683 772 

Details

212 212 

213Некоторые из этих событий срабатывают и для собственных действий Claude Code, поэтому, прежде чем отклонять такое событие, проверьте, равно ли `next.origin.plugin` значению `engine`.213Некоторые из этих событий срабатывают и для собственных действий Claude Code, поэтому, прежде чем отклонять такое событие, проверьте, равно ли `next.origin.plugin` значению `engine`.

214 214 

215#### Поля собственных запросов `http.fetch` Claude Code

216 

217В хуке `http.fetch` значение [`next.origin`](#the-hook-function), равное `{ plugin: 'engine', tier: 'core' }`, отмечает один из собственных запросов Claude Code, например запрос к модели, а не вызов `$.http.fetch` мода. Там, где загружен [встроенный страж](https://code.claude.com/docs/ru/plugins/mods/admin.md#know-what-happens-by-default), ваш хук не получает эти события, за исключением случаев, когда ваш мод [считается модом вашей организации](https://code.claude.com/docs/ru/plugins/mods/admin.md#install-your-organizations-mods).

218 

219В этих событиях `e.init` и `value`, в которое разрешается `next(e)`, могут содержать, среди прочего, следующие поля:

220 

221| Поле | Что означает |

222| :- | :- |

223| `e.init.compress` | Задано, когда Claude Code сжимает тело после вашего хука. `e.init.body` содержит несжатое тело. Чтобы отправить тело без сжатия, вызовите `next({ ...e, init: { ...e.init, compress: undefined } })`. |

224| `value.isStreaming` | Равно `true`, потому что Claude Code сам читает тело ответа, поэтому `value.text` пусто. Вместо этого читайте `value.status` и `value.headers`. Чтобы ответить собственным `text`, верните `value` без `isStreaming`. |

225 

226Эти события и поля требуют Claude Code v2.1.321 или новее.

227 

215## Методы API модов228## Методы API модов

216 229 

217API модов — это аргумент `$`, который получает каждый хук. Его методы сгруппированы по пространствам имён, например `$.ui`. В этой таблице методы каждого пространства имён перечислены по имени, поэтому `open` в строке `$.ui` — это вызов `$.ui.open(...)`. В руководствах показано использование распространённых методов, а в [типах для вашей сборки](https://code.claude.com/docs/ru/plugins/mods/create.md#get-the-types-for-your-build) каждый метод документирован с примером.230API модов — это аргумент `$`, который получает каждый хук. Его методы сгруппированы по пространствам имён, например `$.ui`. В этой таблице методы каждого пространства имён перечислены по имени, поэтому `open` в строке `$.ui` — это вызов `$.ui.open(...)`. В руководствах показано использование распространённых методов, а в [типах для вашей сборки](https://code.claude.com/docs/ru/plugins/mods/create.md#get-the-types-for-your-build) каждый метод документирован с примером.


222| [`$.ui`](https://code.claude.com/docs/ru/plugins/mods/interface#pick-where-to-draw) | `resolve`, `invalidate`, `open`, `close`, `panes`, [`place`](https://code.claude.com/docs/ru/plugins/mods/interface#place-a-row-in-the-transcript), `focus`, `scroll`, `toast`, `notify`, `status`, `log`, `notice`, `ask`, `copy`, `selection`, `blit`, `view`. `view` требует Claude Code v2.1.300 или более поздней версии, а `place` — v2.1.314 или более поздней версии. |235| [`$.ui`](https://code.claude.com/docs/ru/plugins/mods/interface#pick-where-to-draw) | `resolve`, `invalidate`, `open`, `close`, `panes`, [`place`](https://code.claude.com/docs/ru/plugins/mods/interface#place-a-row-in-the-transcript), `focus`, `scroll`, `toast`, `notify`, `status`, `log`, `notice`, `ask`, `copy`, `selection`, `blit`, `view`. `view` требует Claude Code v2.1.300 или более поздней версии, а `place` — v2.1.314 или более поздней версии. |

223| [`$.theme`](https://code.claude.com/docs/ru/plugins/mods/interface#put-a-backdrop-behind-the-conversation) | `set`, `clear`: задать фон, который будет отрисовывать приложение Desktop или мобильное приложение, и убрать этот фон. Требует Claude Code v2.1.319 или более поздней версии. |236| [`$.theme`](https://code.claude.com/docs/ru/plugins/mods/interface#put-a-backdrop-behind-the-conversation) | `set`, `clear`: задать фон, который будет отрисовывать приложение Desktop или мобильное приложение, и убрать этот фон. Требует Claude Code v2.1.319 или более поздней версии. |

224| [`$.command`](https://code.claude.com/docs/ru/plugins/mods/api#add-a-command) | `register`, `run`, `list` |237| [`$.command`](https://code.claude.com/docs/ru/plugins/mods/api#add-a-command) | `register`, `run`, `list` |

225| [`$.tool`](https://code.claude.com/docs/ru/plugins/mods/api#add-a-tool) | `register`, `call`, `check`, `list` |238| [`$.tool`](https://code.claude.com/docs/ru/plugins/mods/api#add-a-tool) | `register`, `call`, `check`, `list`. Когда `call` требует подтверждения человеком, например если хук или ваша организация отвечает на него `ask`, он завершается с результатом `{ deny: "<tool> wasn't run: this call needs a person's approval, and a mod's own call can't ask for it." }`, где `<tool>` — имя инструмента. |

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

227| [`$.model`](https://code.claude.com/docs/ru/plugins/mods/api#call-a-model) | `complete`, `fork`, `classify` |240| [`$.model`](https://code.claude.com/docs/ru/plugins/mods/api#call-a-model) | `complete`, `fork`, `classify` |

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


250| Точка | `e.props` | `e.requestId` | Отрисовывается в |263| Точка | `e.props` | `e.requestId` | Отрисовывается в |

251| :- | :- | :- | :- |264| :- | :- | :- | :- |

252| [`Pane`](https://code.claude.com/docs/ru/plugins/mods/interface#pick-where-to-draw) | `title`, `isFocused`, `bodyColumns`, `placement`, `scroll`, `view` | `id` панели | Terminal, Desktop, VS Code |265| [`Pane`](https://code.claude.com/docs/ru/plugins/mods/interface#pick-where-to-draw) | `title`, `isFocused`, `bodyColumns`, `placement`, `scroll`, `view` | `id` панели | Terminal, Desktop, VS Code |

253| [`AbovePrompt`](https://code.claude.com/docs/ru/plugins/mods/interface#pick-where-to-draw) | `hasSurvey`, `isWorking`, `maxRows`, `bodyColumns`, `scroll`, `view` | Один экземпляр | Terminal, Desktop |266| [`AbovePrompt`](https://code.claude.com/docs/ru/plugins/mods/interface#pick-where-to-draw) | `hasSurvey`, [`isCollapsed`](https://code.claude.com/docs/ru/plugins/mods/interface#when-the-user-collapses-the-band), `isWorking`, `maxRows`, `bodyColumns`, `scroll`, `view` | Один экземпляр | Terminal, Desktop |

254| `AbovePromptList`, стопка строк `AbovePrompt` | `rows` — список с одним `{ plugin, tree }` для строки каждого мода, а также пропсы `AbovePrompt` | Один экземпляр | Terminal, Desktop. Требуется Claude Code v2.1.323 или новее. |267| `AbovePromptList`, стопка строк `AbovePrompt` | `rows` — список с одним `{ plugin, tree }` для строки каждого мода, а также пропсы `AbovePrompt` | Один экземпляр | Terminal, Desktop. Требуется Claude Code v2.1.323 или новее. |

255| [`Placed`](https://code.claude.com/docs/ru/plugins/mods/interface#place-a-row-in-the-transcript) | `id`, `plugin`, `onScreen` | `requestId`, который вернул `$.ui.place` | Terminal |268| [`Placed`](https://code.claude.com/docs/ru/plugins/mods/interface#place-a-row-in-the-transcript) | `id`, `plugin`, `onScreen` | `requestId`, который вернул `$.ui.place` | Terminal |

256| [`Backdrop`](https://code.claude.com/docs/ru/plugins/mods/interface#put-a-backdrop-behind-the-conversation) | `scene`, `plugin`, `glass`, `overrideColorScheme`. До v2.1.323 `scene` назывался `id`, а `overrideColorScheme` — `colorScheme`. | `backdrop` | Интерфейсы `desktop` и `mobile`. Ваш хук запускается, когда приложение Desktop или мобильное приложение запрашивает отрисовку фона. |269| [`Backdrop`](https://code.claude.com/docs/ru/plugins/mods/interface#put-a-backdrop-behind-the-conversation) | `scene`, `plugin`, `glass`, `overrideColorScheme`. До v2.1.323 `scene` назывался `id`, а `overrideColorScheme` — `colorScheme`. | `backdrop` | Интерфейсы `desktop` и `mobile`. Ваш хук запускается, когда приложение Desktop или мобильное приложение запрашивает отрисовку фона. |


426| Имя | Где | Что делает |439| Имя | Где | Что делает |

427| :- | :- | :- |440| :- | :- | :- |

428| `CLAUDE_CODE_PLUGIN_DIRS` | Окружение или `env` в `~/.claude/settings.json` | Каталоги плагинов для загрузки так же, как это делает `--plugin-dir`, — для приложений, которым нельзя передать флаг. Абсолютные пути, разделённые `:`, или `;` в Windows. |441| `CLAUDE_CODE_PLUGIN_DIRS` | Окружение или `env` в `~/.claude/settings.json` | Каталоги плагинов для загрузки так же, как это делает `--plugin-dir`, — для приложений, которым нельзя передать флаг. Абсолютные пути, разделённые `:`, или `;` в Windows. |

429| `CLAUDE_CODE_PLUGIN_DIR_WATCH` | Окружение | `1` заставляет долго работающую неинтерактивную сессию перезагружать моды из `--plugin-dir` при сохранении |442| `CLAUDE_CODE_PLUGIN_DIR_WATCH` | Окружение | Перезагружаются ли моды при сохранении. Значения по умолчанию и допустимые значения см. в [справочнике по переменным окружения](https://code.claude.com/docs/ru/env-vars.md) |

430| `prependPlugins`, `appendPlugins` | Управляемые настройки. Пользовательские настройки — только на машине без управляемых настроек и без файла [`managed-mcp.json`](https://code.claude.com/docs/ru/managed-mcp#deploy-managed-mcp-json), в сессии, учётные данные которой получены не через `/login` Team или Enterprise. | Списки id плагинов, например `acme-guard@acme-tools`. Моды из `prependPlugins` выполняются перед каждым модом, установленным пользователем, а моды из `appendPlugins` — после, в указанном порядке. См. [Порядок запуска модов](https://code.claude.com/docs/ru/plugins/mods/events.md#the-order-mods-run-in). |443| `prependPlugins`, `appendPlugins` | Управляемые настройки. Пользовательские настройки — только на машине без управляемых настроек и без файла [`managed-mcp.json`](https://code.claude.com/docs/ru/managed-mcp#deploy-managed-mcp-json), в сессии, учётные данные которой получены не через `/login` Team или Enterprise. | Списки id плагинов, например `acme-guard@acme-tools`. Моды из `prependPlugins` выполняются перед каждым модом, установленным пользователем, а моды из `appendPlugins` — после, в указанном порядке. См. [Порядок запуска модов](https://code.claude.com/docs/ru/plugins/mods/events.md#the-order-mods-run-in). |

431| `allowManagedModsOnly` | Управляемые настройки, как [опция встроенного стража](https://code.claude.com/docs/ru/plugins/mods/admin.md#set-options-on-the-built-in-guard) | Свои хуки запускают только моды, которые [считаются модами вашей организации](https://code.claude.com/docs/ru/plugins/mods/admin.md#install-your-organizations-mods), и моды, встроенные в Claude Code. Хуки настроек пользователей продолжают работать. |444| `allowManagedModsOnly` | Управляемые настройки, как [опция встроенного стража](https://code.claude.com/docs/ru/plugins/mods/admin.md#set-options-on-the-built-in-guard) | Свои хуки запускают только моды, которые [считаются модами вашей организации](https://code.claude.com/docs/ru/plugins/mods/admin.md#install-your-organizations-mods), и моды, встроенные в Claude Code. Хуки настроек пользователей продолжают работать. |

432| `allowModsToOverrideDenyRules` | Управляемые настройки, как [опция встроенного стража](https://code.claude.com/docs/ru/plugins/mods/admin.md#set-options-on-the-built-in-guard) | Позволяет моду, установленному пользователем, одобрить вызов инструмента в обход большинства [исходов, которые по умолчанию остаются в силе](https://code.claude.com/docs/ru/permissions.md#precedence-among-rules-hooks-and-mods), включая правило `deny` |445| `allowModsToOverrideDenyRules` | Управляемые настройки, как [опция встроенного стража](https://code.claude.com/docs/ru/plugins/mods/admin.md#set-options-on-the-built-in-guard) | Позволяет моду, установленному пользователем, одобрить вызов инструмента в обход большинства [исходов, которые по умолчанию остаются в силе](https://code.claude.com/docs/ru/permissions.md#precedence-among-rules-hooks-and-mods), включая правило `deny` |

Details

115 115 

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

117 117 

118Набор для тестирования имеет несколько собственных правил, и нарушение одного из них производит ошибки, которые встречают первые авторы тестов:

119 

120* **Зарегистрируйте каждый stub перед первым вызовом теста на `$`.** Вызов `on` после этого выбрасывает ошибку, такую как `on("ui.render") after the test first called $`.118* **Зарегистрируйте каждый stub перед первым вызовом теста на `$`.** Вызов `on` после этого выбрасывает ошибку, такую как `on("ui.render") after the test first called $`.

121 119 

122* **[`session.start`](https://code.claude.com/docs/ru/plugins/mods/reference#session) не запускается сам по себе.** Каждый тест начинается со свежезагруженного модуля, ни один из хуков которого ещё не вызван, поэтому переменные уровня модуля содержат свои начальные значения. Если хук зависит от того, что настраивает `session.start`, сначала вызовите это событие:120* **[`session.start`](https://code.claude.com/docs/ru/plugins/mods/reference#session) не запускается сам по себе.** Каждый тест начинается со свежезагруженного модуля, ни один из хуков которого ещё не вызван, поэтому переменные уровня модуля содержат свои начальные значения. Если хук зависит от того, что настраивает `session.start`, сначала вызовите это событие:


132 130 

133 Второй stub отвечает на вызов `$.command.register`, который делает hook `session.start`, такой как [tutorial's](https://code.claude.com/docs/ru/plugins/mods/create.md#write-a-mod-yourself). Без него этот вызов отклоняется с `no implementation for command.register` и набор пропускает ваш hook, поэтому ничего после вызова в hook не запускается. Тест не завершается неудачей в этой точке. Пропущенный hook указан под `the engine reported:` только если позже проверка завершится неудачей.131 Второй stub отвечает на вызов `$.command.register`, который делает hook `session.start`, такой как [tutorial's](https://code.claude.com/docs/ru/plugins/mods/create.md#write-a-mod-yourself). Без него этот вызов отклоняется с `no implementation for command.register` и набор пропускает ваш hook, поэтому ничего после вызова в hook не запускается. Тест не завершается неудачей в этой точке. Пропущенный hook указан под `the engine reported:` только если позже проверка завершится неудачей.

134 132 

135* **Hook, который возвращает `next(e)`, нуждается в stub для ответа.** Когда ваш [`ui.render`](https://code.claude.com/docs/ru/plugins/mods/reference#interface) hook возвращает `next(e)`, например чтобы ничего не рисовать, пока Claude неактивен, [mounting it](#test-a-drawing) завершается неудачей с `no implementation for ui.render`. Зарегистрируйте stub, который возвращает элемент как простые данные:133* **Зарегистрируйте stub для `ui.render`, чтобы выбрать, что возвращает `next(e)`.** Когда ваш хук [`ui.render`](https://code.claude.com/docs/ru/plugins/mods/reference#interface) возвращает `next(e)`, например чтобы ничего не рисовать, пока Claude неактивен, [монтирование](#test-a-drawing) проходит успешно и без stub. Чтобы `next(e)` возвращал выбранный вами элемент, зарегистрируйте stub, который возвращает его как простые данные:

136 134 

137 ```typescript theme={null}135 ```typescript theme={null}

138 // Stands for what Claude Code would draw at the site136 // Stands for what Claude Code would draw at the site

139 on('ui.render', () => ({ type: 'Text', props: {}, children: ['drawn by Claude Code'] }))137 on('ui.render', () => ({ type: 'Text', props: {}, children: ['drawn by Claude Code'] }))

140 ```138 ```

141 139 

142 С зарегистрированным stub монтирование успешно, и `ui.find({ type: 'Text' })` возвращает этот элемент всякий раз, когда ваш хук возвращал `next(e)`. В v2.1.323 или новее для полосы (band) передайте имя вашего мода вторым аргументом в `on`, как в `{ plugin: 'my-mod' }`. Без него stub не отвечает на ваш `next(e)`.140 Там, где место [может отрисовать этот элемент](https://code.claude.com/docs/ru/plugins/mods/interface.md#change-what-claude-code-already-draws), `ui.find({ type: 'Text' })` возвращает его, когда ваш хук вернул `next(e)`. В v2.1.323 или новее для полосы (band) передайте имя вашего мода вторым аргументом в `on`, как в `{ plugin: 'my-mod' }`. Без него stub не отвечает на ваш `next(e)`. До v2.1.321 монтирование завершается неудачей с `no implementation for ui.render`, если только вы не зарегистрируете stub.

143 141 

144* **Stub для `turn.step` — это асинхронный генератор**, и тест читает поток до конца, чтобы получить результат:142* **Stub для `turn.step` — это асинхронный генератор**, и тест читает поток до конца, чтобы получить результат:

145 143 


316| `press({ key: 'more' })` | Нажимает `Button` с этим key |314| `press({ key: 'more' })` | Нажимает `Button` с этим key |

317| `input({ key: 'new-note', text: 'buy milk' })` | Вводит текст в `Input` с этим key и нажимает Enter. Добавьте `kind: 'change'` для ввода без отправки. Для поля с `rows` текст может содержать `\n`. |315| `input({ key: 'new-note', text: 'buy milk' })` | Вводит текст в `Input` с этим key и нажимает Enter. Добавьте `kind: 'change'` для ввода без отправки. Для поля с `rows` текст может содержать `\n`. |

318| `select({ key: 'size', value: 'large' })` | Выбирает опцию с этим значением в `Select` с этим key |316| `select({ key: 'size', value: 'large' })` | Выбирает опцию с этим значением в `Select` с этим key |

317| `keepsBeneath()` | В тесте без заглушки `ui.render` разрешается в `true`, когда рисунок включает то, что вернул `next(e)`, и в `false`, когда ваш хук это опустил. В тесте, который регистрирует такую заглушку, используйте `find`, чтобы найти то, что нарисовала заглушка. Требуется Claude Code v2.1.321 или новее. |

319| `find({ key: 'more' })` или `find({ type: 'Text', text: 'Count: 2' })` | Возвращает первый совпадающий элемент как `{ type, props, children }` или `undefined`. `text` может быть строкой или регулярным выражением. |318| `find({ key: 'more' })` или `find({ type: 'Text', text: 'Count: 2' })` | Возвращает первый совпадающий элемент как `{ type, props, children }` или `undefined`. `text` может быть строкой или регулярным выражением. |

320| `unmount()` | Удаляет рисунок |319| `unmount()` | Удаляет рисунок |

321 320 

Details

41 41 

42| Вы хотите | Начните с |42| Вы хотите | Начните с |

43| :- | :- |43| :- | :- |

44| Уменьшить запросы разрешений во время повседневной работы на собственной машине | [sandboxed Bash tool](https://code.claude.com/docs/ru/sandboxing.md), включенный с `/sandbox` |44| Уменьшить запросы разрешений во время повседневной работы на собственной машине | [sandboxed Bash tool](https://code.claude.com/docs/ru/sandboxing.md) в режиме автоматического разрешения (auto-allow), настроенный с помощью `/sandbox` |

45| Позволить Claude работать без присмотра с `--dangerously-skip-permissions` или в режиме auto | Предварительно настроенный [dev container](https://code.claude.com/docs/ru/devcontainer.md), любой контейнер или VM, или [sandbox runtime](#sandbox-runtime) |45| Позволить Claude работать без присмотра с `--dangerously-skip-permissions` или в режиме auto | Предварительно настроенный [dev container](https://code.claude.com/docs/ru/devcontainer.md), любой контейнер или VM, или [sandbox runtime](#sandbox-runtime) |

46| Изолировать серверы MCP и hooks, а также Bash, без Docker | Среда выполнения sandbox |46| Изолировать серверы MCP и hooks, а также Bash, без Docker | Среда выполнения sandbox |

47| Стандартизировать изолированную среду в команде | Предварительно настроенный [dev container](https://code.claude.com/docs/ru/devcontainer.md), скопированный в ваш репозиторий |47| Стандартизировать изолированную среду в команде | Предварительно настроенный [dev container](https://code.claude.com/docs/ru/devcontainer.md), скопированный в ваш репозиторий |

sandboxing.md +5 −8

Details

6 6 

7> Ограничьте файлы и сетевые хосты, к которым могут обращаться shell-команды Claude Code, с помощью встроенной песочницы. Включите её, задайте границы и исправьте то, что она нарушает.7> Ограничьте файлы и сетевые хосты, к которым могут обращаться shell-команды Claude Code, с помощью встроенной песочницы. Включите её, задайте границы и исправьте то, что она нарушает.

8 8 

9Песочница Bash — это граница, которую операционная система устанавливает вокруг shell-команд, запускаемых Claude на вашем компьютере. Вы задаёте, к каким файлам и сетевым доменам могут обращаться эти команды, и ограничения применяются к командам Bash, PowerShell и Monitor, а также к запускаемым ими процессам. Поскольку операционная система применяет ограничения во время выполнения команды, Claude Code может [запускать команды в песочнице, не спрашивая вас](#sandbox-modes) о подтверждении каждой из них.9Песочница Bash — это граница, которую операционная система устанавливает вокруг shell-команд, запускаемых Claude на вашем компьютере. Вы задаёте, к каким файлам и сетевым доменам могут обращаться эти команды, и ограничения применяются к командам Bash, PowerShell и Monitor, а также к запускаемым ими процессам. Команды в песочнице по-прежнему проходят через обычный процесс запроса разрешений, за исключением случаев, когда вы выбираете [режим автоматического разрешения](#sandbox-modes), который может запускать их, не спрашивая вас.

10 10 

11Песочница охватывает только shell-команды. Файловые инструменты Claude, MCP-серверы и хуки [работают вне её](#what-runs-outside-the-sandbox).11Песочница охватывает только shell-команды. Файловые инструменты Claude, MCP-серверы и хуки [работают вне её](#what-runs-outside-the-sandbox).

12 12 


394| Записи `deny` и `mask` в `credentials.envVars` | Применяются. Очистка переменных окружения не зависит от уровня файловой системы |394| Записи `deny` и `mask` в `credentials.envVars` | Применяются. Очистка переменных окружения не зависит от уровня файловой системы |

395| [Записи `mask` в `credentials.files`](#mask-credential-files), применённые как маски | Применяются: маскирование не зависит от уровня файловой системы. Запись, которая [переключилась на `deny`](#mask-credential-files), не применяется, как и любая запись `deny` |395| [Записи `mask` в `credentials.files`](#mask-credential-files), применённые как маски | Применяются: маскирование не зависит от уровня файловой системы. Запись, которая [переключилась на `deny`](#mask-credential-files), не применяется, как и любая запись `deny` |

396 396 

397Меняются ещё две вещи:397Кроме того, команды в песочнице наследуют `$TMPDIR` вашей оболочки вместо временного каталога пользователя, потому что все временные каталоги доступны для записи и Claude Code больше не перенаправляет команды во временный каталог пользователя.

398 398 

399* Команды в песочнице наследуют `$TMPDIR` вашей оболочки вместо временного каталога пользователя, потому что все временные каталоги доступны для записи и Claude Code больше не перенаправляет команды во временный каталог пользователя.399В Linux эта переменная часто не задана в родительской оболочке. Руководство по инструменту Bash указывает Claude создавать временные каталоги с помощью `mktemp -d`, а не полагаться на `$TMPDIR`.

400 

401 В Linux эта переменная часто не задана в родительской оболочке. Руководство по инструменту Bash указывает Claude создавать временные каталоги с помощью `mktemp -d`, а не полагаться на `$TMPDIR`.

402* [`autoAllowBashIfSandboxed`](https://code.claude.com/docs/ru/settings-reference#sandbox-autoallowbashifsandboxed) по-прежнему по умолчанию имеет значение `true`, поэтому команды в песочнице продолжают выполняться без запросов. Задайте значение `false`, чтобы запрашивать подтверждение для команд в песочнице.

403 400 

404### Защита учётных данных401### Защита учётных данных

405 402 


911 908 

912### Папка с именем `objects` или `refs` исчезает после выполнения команды909### Папка с именем `objects` или `refs` исчезает после выполнения команды

913 910 

914Папка `objects` или `refs` верхнего уровня, появившаяся во время сессии, может быть [удалена после завершения изолированной команды](#when-the-sandbox-deletes-head-objects-or-refs). Неважно, кто её создал: команда, Claude или вы. Чтобы сохранить папку, оставьте в ней что-нибудь. Если файл или символическая ссылка `HEAD` находились на верхнем уровне во время сессии, переместите их в другое место, затем перезапустите все сессии Claude Code, открытые в вашем рабочем каталоге.911Папка `objects` или `refs` верхнего уровня, появившаяся во время сессии, может быть [удалена после завершения команды в песочнице](#when-the-sandbox-deletes-head-objects-or-refs). Не важно, создала ли её команда, Claude или вы. Чтобы сохранить папку, оставьте в ней что-нибудь. Если файл или символическая ссылка `HEAD` находились на верхнем уровне во время сессии, переместите их в другое место, а затем перезапустите все сессии Claude Code, открытые в этом месте.

915 912 

916До версии 2.1.307 папка удалялась, даже если в ней что-то было, а `HEAD` отсутствовал. Если у вас более ранняя версия, [обновите Claude Code](https://code.claude.com/docs/ru/setup.md#update-claude-code).913До версии 2.1.307 папка удалялась, даже если в ней что-то было, а `HEAD` отсутствовал. Если у вас более ранняя версия, [обновите Claude Code](https://code.claude.com/docs/ru/setup.md#update-claude-code).

917 914 


1095}1092}

1096```1093```

1097 1094 

1098Это включает [режим автоматического разрешения](#sandbox-modes). Для обычного режима разрешений также установите [`sandbox.autoAllowBashIfSandboxed`](https://code.claude.com/docs/ru/settings-reference#sandbox-autoallowbashifsandboxed) в `false`. Изменение вступает в силу в текущей сессии при следующей shell-команде, которую запускает Claude, после чего вкладка **Mode** в `/sandbox` отмечает действующий режим.1095Это включает [обычный режим разрешений](#sandbox-modes). Для режима автоматического разрешения также установите [`sandbox.autoAllowBashIfSandboxed`](https://code.claude.com/docs/ru/settings-reference#sandbox-autoallowbashifsandboxed) в `true`. Изменение вступает в силу в текущей сессии при следующей shell-команде, которую запускает Claude, после чего вкладка **Mode** в `/sandbox` отмечает действующий режим.

1099 1096 

1100## Ограничения1097## Ограничения

1101 1098 

security.md +2 −2

Details

25 25 

26Для снижения рисков в агентных системах:26Для снижения рисков в агентных системах:

27 27 

28* **Изолированный инструмент Bash**: [Sandbox](https://code.claude.com/docs/ru/sandboxing.md) команды Bash с изоляцией файловой системы и сети, снижая количество запросов разрешений при сохранении безопасности. Настройте с помощью `/sandbox` для определения границ, в которых Claude Code может работать автономно28* **Изолированный инструмент Bash**: Запускайте команды Bash в [песочнице](https://code.claude.com/docs/ru/sandboxing.md) с изоляцией файловой системы и сети. Настройте с помощью `/sandbox`

29* **Ограничение рабочего каталога**: В режиме Manual Claude Code спрашивает вас, прежде чем его файловые инструменты будут читать или записывать за пределами папки, в которой он был запущен, и её подпапок. Эта граница является запросом разрешения, поэтому подтвержденная вами команда Bash по-прежнему может записывать в любое место, доступное вашей учетной записи пользователя29* **Ограничение рабочего каталога**: В режиме Manual Claude Code спрашивает вас, прежде чем его файловые инструменты будут читать или записывать за пределами папки, в которой он был запущен, и её подпапок. Эта граница является запросом разрешения, поэтому подтвержденная вами команда Bash по-прежнему может записывать в любое место, доступное вашей учетной записи пользователя

30 * Чтобы читать папку без запроса, добавьте её как [дополнительный каталог](https://code.claude.com/docs/ru/permissions.md#working-directories)30 * Чтобы читать папку без запроса, добавьте её как [дополнительный каталог](https://code.claude.com/docs/ru/permissions.md#working-directories)

31 * Чтобы ограничить команды Bash на уровне операционной системы, включите [изоляцию в песочнице](https://code.claude.com/docs/ru/sandboxing.md#filesystem-isolation)31 * Чтобы ограничить команды Bash на уровне операционной системы, включите [изоляцию в песочнице](https://code.claude.com/docs/ru/sandboxing.md#filesystem-isolation)


62* **Проверка доверия**: В интерактивной сессии Claude Code показывает диалог доверия к рабочему пространству, когда вы запускаете его в папке, которой вы ещё не доверяли. Для серверов из файла `.mcp.json` проекта есть собственный запрос подтверждения, а в разделе [Область действия проекта](https://code.claude.com/docs/ru/mcp.md#project-scope) перечислены сессии, в которых он пропускается62* **Проверка доверия**: В интерактивной сессии Claude Code показывает диалог доверия к рабочему пространству, когда вы запускаете его в папке, которой вы ещё не доверяли. Для серверов из файла `.mcp.json` проекта есть собственный запрос подтверждения, а в разделе [Область действия проекта](https://code.claude.com/docs/ru/mcp.md#project-scope) перечислены сессии, в которых он пропускается

63 * Примечание: Сессия с `-p` не показывает ни один из этих запросов. В разделе [Что запускается до того, как вы доверите папке](https://code.claude.com/docs/ru/permissions.md#what-runs-before-you-trust-a-folder) перечислено, что файлы репозитория могут запустить в этом случае63 * Примечание: Сессия с `-p` не показывает ни один из этих запросов. В разделе [Что запускается до того, как вы доверите папке](https://code.claude.com/docs/ru/permissions.md#what-runs-before-you-trust-a-folder) перечислено, что файлы репозитория могут запустить в этом случае

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

65* **Обнаружение инъекций команд**: В режиме Manual Claude Code запрашивает подтверждение перед запуском команды Bash, которую он не может полностью проанализировать. Правило разрешения для части команды, например `Bash(git *)`, не отменяет этот запрос. [Команды в песочнице](https://code.claude.com/docs/ru/permissions.md#how-permissions-interact-with-sandboxing) могут выполняться без него65* **Обнаружение инъекций команд**: В режиме Manual Claude Code запрашивает подтверждение перед запуском команды Bash, которую он не может полностью проанализировать. Правило разрешения для части команды, например `Bash(git *)`, не отменяет этот запрос. [Команды в песочнице](https://code.claude.com/docs/ru/permissions.md#how-permissions-interact-with-sandboxing) в [режиме автоматического разрешения](https://code.claude.com/docs/ru/sandboxing.md#auto-allow-mode) могут выполняться без него

66* **Сопоставление с отказом по умолчанию**: В режиме Manual несопоставленные команды по умолчанию требуют ручного одобрения66* **Сопоставление с отказом по умолчанию**: В режиме Manual несопоставленные команды по умолчанию требуют ручного одобрения

67* **Безопасное хранилище учётных данных**: API-ключи и токены хранятся в macOS Keychain, когда это доступно. В Linux они хранятся в файле с правами доступа `0600`, а в Windows — в файле, который наследует средства контроля доступа каталога вашего профиля пользователя. См. [Управление учётными данными](https://code.claude.com/docs/ru/authentication.md#credential-management)67* **Безопасное хранилище учётных данных**: API-ключи и токены хранятся в macOS Keychain, когда это доступно. В Linux они хранятся в файле с правами доступа `0600`, а в Windows — в файле, который наследует средства контроля доступа каталога вашего профиля пользователя. См. [Управление учётными данными](https://code.claude.com/docs/ru/authentication.md#credential-management)

68 68 

Details

1355 1355 

1356### `sandbox.autoAllowBashIfSandboxed`1356### `sandbox.autoAllowBashIfSandboxed`

1357 1357 

1358Позвольте Claude Code выполнять изолированные команды Bash без запроса разрешения. Команды, которые не могут выполняться в песочнице, по-прежнему проходят обычный поток разрешений, и правила `deny` и правила `ask` с ограничением содержимого, такие как `Bash(git push *)`, по-прежнему применяются; простое правило `Bash` ask пропускается для изолированных команд. Установите значение `false`, чтобы изолированные команды тоже проходили через обычный поток разрешений, который вкладка **Mode** в `/sandbox` называет режимом обычных разрешений.1358Позволяет Claude Code выполнять команды Bash в песочнице без запроса разрешения. Команды, которые не могут выполняться в песочнице, по-прежнему проходят обычную процедуру проверки разрешений. Правила `deny` и правила `ask` с ограничением по содержимому, такие как `Bash(git push *)`, по-прежнему действуют, но голое правило ask `Bash` для команд в песочнице пропускается. Чтобы задать значение `true` в управляемых настройках, добавьте ключ в блок `sandbox` вашего [источника управляемых настроек с наивысшим приоритетом](https://code.claude.com/docs/ru/managed-settings.md#how-claude-code-combines-managed-sources).

1359 1359 

1360* **Scope**: [`Any file`](#scopes)1360* **Scope**: [`Any file`](#scopes)

1361* **Type**: Boolean1361* **Type**: Boolean

1362 * `true`: Claude Code выполняет изолированные команды Bash без запроса разрешения, за исключением случаев, описанных в разделе [Auto-allow mode](https://code.claude.com/docs/ru/sandboxing.md#auto-allow-mode); `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` отключает автоматическое разрешение1362 * `true`: Claude Code выполняет изолированные команды Bash без запроса разрешения, за исключением случаев, описанных в разделе [Auto-allow mode](https://code.claude.com/docs/ru/sandboxing.md#auto-allow-mode); `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` отключает автоматическое разрешение

1363 * `false`: изолированные команды проходят обычный поток разрешений, поэтому решают ваши правила разрешений и режим разрешений. Вкладка **Mode** в `/sandbox` называет это режимом обычных разрешений1363 * `false`: изолированные команды проходят обычный поток разрешений, поэтому решают ваши правила разрешений и режим разрешений. Вкладка **Mode** в `/sandbox` называет это режимом обычных разрешений

1364* **Default**: `true`1364* **По умолчанию**: `false`. До версии v2.1.324 значением по умолчанию было `true`

1365 1365 

1366Это сохраняет песочницу включённой и отправляет изолированные команды через обычный поток разрешений:1366Чтобы песочница оставалась включённой, а команды в песочнице выполнялись без запроса разрешения, задайте оба ключа в блоке `sandbox`:

1367 1367 

1368```json settings.json theme={null}1368```json settings.json theme={null}

1369{1369{

1370 "sandbox": {1370 "sandbox": {

1371 "enabled": true,1371 "enabled": true,

1372 "autoAllowBashIfSandboxed": false1372 "autoAllowBashIfSandboxed": true

1373 }1373 }

1374}1374}

1375```1375```


1653}1653}

1654```1654```

1655 1655 

1656Когда этот уровень отключён, Claude Code не применяет `denyRead` и записи `deny` в `credentials.files`, тогда как записи `credentials.envVars` и применённые записи `mask` продолжают работать. [`autoAllowBashIfSandboxed`](#sandbox-autoallowbashifsandboxed) по-прежнему по умолчанию равен `true`, поэтому задайте для него `false`, чтобы запросы подтверждения сохранились. Полный список источников, которые могут задать этот параметр, и описание того, что меняется при отключённой изоляции, см. в разделе [Отключение изоляции файловой системы](https://code.claude.com/docs/ru/sandboxing.md#disable-filesystem-isolation).1656Когда этот уровень отключён, Claude Code не применяет записи `denyRead` и записи `deny` в `credentials.files`, тогда как записи `credentials.envVars` и применённые записи `mask` продолжают работать. Полный список источников, которые могут задать этот ключ, и описание того, что меняется при отключённой изоляции, см. в разделе [Отключение изоляции файловой системы](https://code.claude.com/docs/ru/sandboxing.md#disable-filesystem-isolation).

1657 1657 

1658### `sandbox.ignoreViolations`1658### `sandbox.ignoreViolations`

1659 1659 


4870 4870 

4871### `agentPushNotifEnabled`4871### `agentPushNotifEnabled`

4872 4872 

4873Разрешить Claude отправлять push-уведомление на ваш телефон, когда он решит, что его стоит отправить, например, когда завершится длительная задача. В локальной сессии Claude может отправить его, пока подключён [Remote Control](https://code.claude.com/docs/ru/remote-control.md). Отображается в `/config` как **Push when Claude decides**. Когда вы меняете значение там, Claude Code также сохраняет его в вашей учётной записи.4873Разрешить Claude отправлять push-уведомление на ваш телефон, когда он решит, что его стоит отправить, например, когда завершится длительная задача. В локальной сессии Claude может отправить его, пока подключён [Remote Control](https://code.claude.com/docs/ru/remote-control.md). Отображается в `/config` как **Push when Claude decides**.

4874 4874 

4875* **Scope**: [`Any file`](#scopes). Claude Code также читает значение, оставленное в `~/.claude.json` старыми версиями.4875* **Scope**: [`Any file`](#scopes). Claude Code также читает значение, оставленное в `~/.claude.json` старыми версиями.

4876* **Type**: Boolean4876* **Type**: Boolean


4884}4884}

4885```4885```

4886 4886 

4887Если вы запускаете сессии через сервер [`claude remote-control`](https://code.claude.com/docs/ru/remote-control#start-a-remote-control-session), они следуют значению, сохранённому в вашей учётной записи, а не этому ключу. Чтобы изменить это значение, выполните `/config` в сессии Claude Code в терминале и включите или отключите **Push when Claude decides**. Если переключатель уже показывает нужное вам значение, измените его и верните обратно, чтобы Claude Code сохранил это значение в вашей учётной записи.4887Одного этого ключа недостаточно, чтобы получать уведомления. Чтобы настроить их, выполните шаги из раздела [Mobile push notifications](https://code.claude.com/docs/ru/remote-control.md#mobile-push-notifications).

4888 4888 

4889См. [Mobile push notifications](https://code.claude.com/docs/ru/remote-control.md#mobile-push-notifications).4889Если вы запускаете сессии через сервер [`claude remote-control`](https://code.claude.com/docs/ru/remote-control#start-a-remote-control-session), они следуют значению, сохранённому в вашей учётной записи, а не этому ключу. Чтобы изменить это значение, выполните `/config` в сессии Claude Code в терминале и включите или отключите **Push when Claude decides**. Если переключатель уже показывает нужное вам значение, измените его и верните обратно, чтобы Claude Code сохранил это значение в вашей учётной записи.

4890 4890 

4891### `awaySummaryEnabled`4891### `awaySummaryEnabled`

4892 4892 


5043}5043}

5044```5044```

5045 5045 

5046См. [Mobile push notifications](https://code.claude.com/docs/ru/remote-control.md#mobile-push-notifications).5046Одного этого ключа недостаточно, чтобы получать уведомления. Чтобы настроить их, выполните шаги из раздела [Mobile push notifications](https://code.claude.com/docs/ru/remote-control.md#mobile-push-notifications).

5047 5047 

5048### `preferredNotifChannel`5048### `preferredNotifChannel`

5049 5049 


5421 5421 

5422### `minimumVersion`5422### `minimumVersion`

5423 5423 

5424Предотвратите фоновые автоматические обновления и `claude update` от установки любой версии ниже этой, поэтому переход на канал `"stable"` не понизит вас с более новой сборки `"latest"`. Claude Code записывает этот ключ для вас, когда вы выбираете остаться на текущей версии при переключении каналов в `/config`, и очищает его, когда вы переключаетесь обратно на `"latest"`.5424Не позволяйте фоновым автоматическим обновлениям и `claude update` устанавливать какую-либо версию ниже заданной вами. Claude Code записывает этот ключ за вас, когда вы решаете остаться на текущей версии при переключении каналов в `/config`. Claude Code очищает ключ, когда вы переключаетесь обратно на `"latest"` в `/config`.

5425 5425 

5426* **Область действия**: [`Any file`](#scopes). Установите это в управляемых параметрах, чтобы закрепить минимум на уровне организации, который пользовательские и проектные параметры не могут снизить.5426* **Область действия**: [`Any file`](#scopes). Установите этот ключ в управляемых настройках, чтобы закрепить минимум на уровне организации, который пользовательские и проектные настройки не могут переопределить.

5427* **Тип**: строка, номер версии, такой как `"2.1.100"`; значение, которое не является допустимой версией, игнорируется5427* **Тип**: строка, номер версии, такой как `"2.1.323"`; значение, которое не является допустимой версией, игнорируется

5428* **По умолчанию**: не установлено, поэтому обновления могут установить любую версию, которую предлагает канал5428* **По умолчанию**: не установлено, поэтому обновления могут установить любую версию, которую предлагает канал

5429 5429 

5430Этот пример следует стабильному каналу и отказывается устанавливать любую версию ниже 2.1.100:5430Этот пример следует стабильному каналу и отказывается устанавливать любую версию ниже 2.1.323:

5431 5431 

5432```json settings.json theme={null}5432```json settings.json theme={null}

5433{5433{

5434 "autoUpdatesChannel": "stable",5434 "autoUpdatesChannel": "stable",

5435 "minimumVersion": "2.1.100"5435 "minimumVersion": "2.1.323"

5436}5436}

5437```5437```

5438 5438 

setup.md +19 −10

Details

40>40>

41> **macOS, Linux, WSL:**41> **macOS, Linux, WSL:**

42>42>

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

44> curl -fsSL https://claude.ai/install.sh | bash44> curl -fsSL https://claude.ai/install.sh | bash

45> ```45> ```

46>46>


48>48>

49> **Windows PowerShell:**49> **Windows PowerShell:**

50>50>

51> ```powershell theme={null}51> ```powershell theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}

52> irm https://claude.ai/install.ps1 | iex52> irm https://claude.ai/install.ps1 | iex

53> ```53> ```

54>54>

55> **Windows CMD:**55> **Windows CMD:**

56>56>

57> ```batch theme={null}57> ```batch theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}

58> curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd58> curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd

59> ```59> ```

60>60>


72 72 

73> [tab] Homebrew73> [tab] Homebrew

74>74>

75> ```bash theme={null}75> ```bash theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}

76> brew install --cask claude-code76> brew install --cask claude-code

77> ```77> ```

78>78>


84 84 

85> [tab] WinGet85> [tab] WinGet

86>86>

87> ```powershell theme={null}87> ```powershell theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}

88> winget install Anthropic.ClaudeCode88> winget install Anthropic.ClaudeCode

89> ```89> ```

90>90>


220}220}

221```221```

222 222 

223С этой настройкой встроенная установка обновляется до стабильной версии, даже если эта версия старше вашей. Чтобы избежать понижения версии, также [закрепите минимальную версию](#pin-a-minimum-version).

224 

223Только что выпущенная модель может требовать версию Claude Code новее той, которую предоставляет канал stable. Чтобы использовать эту модель прямо сейчас, перейдите на канал latest.225Только что выпущенная модель может требовать версию Claude Code новее той, которую предоставляет канал stable. Чтобы использовать эту модель прямо сейчас, перейдите на канал latest.

224 226 

225Для развертываний в масштабах предприятия вы можете обеспечить согласованный канал выпуска во всей организации, используя [управляемые параметры](https://code.claude.com/docs/ru/managed-settings.md).227Для развертываний в масштабах предприятия вы можете обеспечить согласованный канал выпуска во всей организации, используя [управляемые параметры](https://code.claude.com/docs/ru/managed-settings.md).


230 232 

231### Закрепление минимальной версии233### Закрепление минимальной версии

232 234 

233Параметр `minimumVersion` устанавливает нижний предел. Фоновые автоматические обновления и `claude update` отказываются устанавливать любую версию ниже этого значения, поэтому переход на канал `"stable"` не понижает вас, если вы уже находитесь на более новой сборке `"latest"`.235Чтобы перевести встроенную установку на [канал выпуска](#configure-release-channel) `"stable"` без понижения версии, установите для [`minimumVersion`](https://code.claude.com/docs/ru/settings-reference#minimumversion) значение версии, которую вы используете. Фоновые автоматические обновления и `claude update` отказываются устанавливать любую версию ниже минимальной.

236 

237Задайте минимум в `/config`, чтобы Claude Code подставил вашу текущую версию, или в файле настроек, чтобы ввести номер самостоятельно:

234 238 

235Переключение с `"latest"` на `"stable"` через `/config` предлагает вам либо остаться на текущей версии, либо разрешить понижение. Выбор остаться устанавливает `minimumVersion` на эту версию. Переключение обратно на `"latest"` очищает его.239* **В `/config`**: переключите **Auto-update channel** на stable, затем выберите **Stay on current version**. Если вы переключитесь обратно на latest в `/config`, Claude Code очистит минимум.

240* **В [файле настроек](https://code.claude.com/docs/ru/settings.md)**: выполните `claude --version` в оболочке и установите для `minimumVersion` номер в начале вывода. В том же изменении установите для `autoUpdatesChannel` значение `"stable"`.

236 241 

237Добавьте его в [файл settings.json](https://code.claude.com/docs/ru/settings.md) для явного закрепления нижнего предела:242Этот `~/.claude/settings.json` переключает установку версии 2.1.323 на stable:

238 243 

239```json theme={null}244```json theme={null}

240{245{

241 "autoUpdatesChannel": "stable",246 "autoUpdatesChannel": "stable",

242 "minimumVersion": "2.1.100"247 "minimumVersion": "2.1.323"

243}248}

244```249```

245 250 

246В [управляемых параметрах](https://code.claude.com/docs/ru/managed-settings.md) это обеспечивает минимум на уровне организации, который параметры пользователя и проекта не могут переопределить.251Установка остаётся на версии 2.1.323, пока канал stable не предоставит более новую версию.

252 

253#### Установка ограничений версий для организации

254 

255В [управляемых настройках](https://code.claude.com/docs/ru/managed-settings.md) `minimumVersion` обеспечивает минимум на уровне организации, который настройки пользователя и проекта не могут переопределить.

247 256 

248Закрепление `minimumVersion` только ограничивает обновления. Чтобы заставить Claude Code отказаться запускаться вне диапазона версий, используйте вместо этого управляемые параметры `requiredMinimumVersion` и `requiredMaximumVersion`. Обновления также соблюдают потолок `requiredMaximumVersion`. См. [`requiredMinimumVersion`](https://code.claude.com/docs/ru/settings-reference#requiredminimumversion) и [`requiredMaximumVersion`](https://code.claude.com/docs/ru/settings-reference#requiredmaximumversion).257Закрепление `minimumVersion` только ограничивает обновления. Чтобы заставить Claude Code отказаться запускаться вне диапазона версий, используйте вместо этого управляемые параметры `requiredMinimumVersion` и `requiredMaximumVersion`. Обновления также соблюдают потолок `requiredMaximumVersion`. См. [`requiredMinimumVersion`](https://code.claude.com/docs/ru/settings-reference#requiredminimumversion) и [`requiredMaximumVersion`](https://code.claude.com/docs/ru/settings-reference#requiredmaximumversion).

249 258 

skills.md +4 −2

Details

22 22 

23Claude Code включает набор встроенных skills, таких как `/doctor`, `/code-review`, `/batch`, `/debug`, `/loop` и `/claude-api`. Встроенные skills основаны на промптах: они дают Claude подробные инструкции и позволяют ему организовать работу, используя его инструменты. Большинство встроенных команд вместо этого выполняют фиксированную логику напрямую.23Claude Code включает набор встроенных skills, таких как `/doctor`, `/code-review`, `/batch`, `/debug`, `/loop` и `/claude-api`. Встроенные skills основаны на промптах: они дают Claude подробные инструкции и позволяют ему организовать работу, используя его инструменты. Большинство встроенных команд вместо этого выполняют фиксированную логику напрямую.

24 24 

25Чтобы вызвать встроенный skill, введите `/` и затем имя skill. Claude автоматически вызывает некоторые встроенные skills, когда это уместно; другие, включая [`/verify`](#run-and-verify-your-app), запускаются только при вашем вызове.25Чтобы вызвать встроенный skill, введите `/` и затем имя skill. Claude автоматически вызывает некоторые встроенные skills, когда это уместно.

26 26 

27Большинство встроенных skills доступны в каждой сессии. Несколько зависят от конкретной функции: `/workflow-authoring`, например, доступен только когда [динамические workflows](https://code.claude.com/docs/ru/workflows.md) включены.27Большинство встроенных skills доступны в каждой сессии. Несколько зависят от конкретной функции: `/workflow-authoring`, например, доступен только когда [динамические workflows](https://code.claude.com/docs/ru/workflows.md) включены.

28 28 


320 320 

321Если вы создаёте каталог скиллов верхнего уровня, которого не было при старте сессии, выполните [`/reload-skills`](https://code.claude.com/docs/ru/commands#all-commands), чтобы подхватить помещённые туда скиллы. Claude Code ещё не отслеживает этот каталог, поэтому выполняйте `/reload-skills` снова после каждого последующего изменения в нём.321Если вы создаёте каталог скиллов верхнего уровня, которого не было при старте сессии, выполните [`/reload-skills`](https://code.claude.com/docs/ru/commands#all-commands), чтобы подхватить помещённые туда скиллы. Claude Code ещё не отслеживает этот каталог, поэтому выполняйте `/reload-skills` снова после каждого последующего изменения в нём.

322 322 

323Отслеживание изменений в реальном времени охватывает только текст `SKILL.md`. Для папки скилла, которая также является [плагином](https://code.claude.com/docs/ru/plugins/loading.md#plugins-shared-through-a-repository), изменения в `hooks/`, `.mcp.json`, `agents/` и `output-styles/` вступают в силу только после `/reload-plugins`.323> [!NOTE]

324>

325> Отслеживание изменений в реальном времени охватывает текст `SKILL.md`. Для папки скилла, которая также является [плагином](https://code.claude.com/docs/ru/plugins/loading.md#plugins-shared-through-a-repository), изменения в `.mcp.json`, `agents/` и `output-styles/` вступают в силу только после `/reload-plugins`. Изменениям в `hooks/` это тоже требуется, за исключением файла модуля [мода](https://code.claude.com/docs/ru/plugins/mods/overview.md), когда он [перезагружается самостоятельно](https://code.claude.com/docs/ru/env-vars.md).

324 326 

325### Удаление скилла327### Удаление скилла

326 328 

sub-agents.md +60 −43

Details

36>36>

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

38>38>

39> * **Model**: модель основного диалога. Когда основной диалог работает на Fable, модель Explore зависит от способа подключения:39> * **Model**: модель [родительского диалога](#which-model-a-nested-subagent-runs-on). Когда родительский диалог работает на Fable, Explore работает на Opus или остаётся на Fable в зависимости от способа подключения.

40> * С подпиской Claude, учётной записью Anthropic Console или [LLM-шлюзом](https://code.claude.com/docs/ru/llm-gateway), доступным через `ANTHROPIC_BASE_URL`, Explore работает на модели Opus, в которую разрешается [псевдоним `opus`](https://code.claude.com/docs/ru/model-config#model-aliases).40> * С подпиской Claude, учётной записью Anthropic Console или [LLM-шлюзом](https://code.claude.com/docs/ru/llm-gateway), доступным через `ANTHROPIC_BASE_URL`, Explore работает на модели Opus, в которую разрешается [псевдоним `opus`](https://code.claude.com/docs/ru/model-config#model-aliases).

41> * На Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, [Claude Platform on AWS](https://code.claude.com/docs/ru/claude-platform-on-aws.md) или [шлюзе Claude apps](https://code.claude.com/docs/ru/claude-apps-gateway) Explore остаётся на модели основного диалога.41> * На Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, [Claude Platform on AWS](https://code.claude.com/docs/ru/claude-platform-on-aws.md) или [шлюзе Claude apps](https://code.claude.com/docs/ru/claude-apps-gateway) Explore остаётся на Fable.

42> * **Tools**: инструменты только для чтения; Write и Edit запрещены42> * **Tools**: инструменты только для чтения; Write и Edit запрещены

43> * **Purpose**: обнаружение файлов, поиск кода, исследование кодовой базы43> * **Purpose**: обнаружение файлов, поиск кода, исследование кодовой базы

44>44>


52>52>

53> Исследовательский агент, используемый во время [plan mode](https://code.claude.com/docs/ru/permission-modes.md#analyze-before-you-edit-with-plan-mode) для сбора контекста перед представлением плана.53> Исследовательский агент, используемый во время [plan mode](https://code.claude.com/docs/ru/permission-modes.md#analyze-before-you-edit-with-plan-mode) для сбора контекста перед представлением плана.

54>54>

55> * **Model**: наследуется из основного разговора, если только вы не установите `CLAUDE_CODE_SUBAGENT_MODEL` и не [заставите его работать на каждом subagent](#run-every-subagent-on-one-model)55> * **Model**: наследуется из [родительского диалога](#which-model-a-nested-subagent-runs-on), если только вы не установите `CLAUDE_CODE_SUBAGENT_MODEL` и не [назначите её принудительно каждому субагенту](#run-every-subagent-on-one-model)

56> * **Tools**: инструменты только для чтения; Write и Edit запрещены56> * **Tools**: инструменты только для чтения; Write и Edit запрещены

57> * **Purpose**: исследование кодовой базы для планирования57> * **Purpose**: исследование кодовой базы для планирования

58>58>


62>62>

63> Способный агент для сложных многошаговых задач, требующих как исследования, так и действия.63> Способный агент для сложных многошаговых задач, требующих как исследования, так и действия.

64>64>

65> * **Model**: модель [`CLAUDE_CODE_SUBAGENT_MODEL`](#choose-a-model), если вы её установили и ничто не назначает модель другим способом, иначе модель основного разговора; [Выбор модели](#choose-a-model) указывает полный порядок, и [Запуск каждого subagent на одной модели](#run-every-subagent-on-one-model) показывает, как сделать переменную переопределением этих источников65> * **Model**: по умолчанию модель родительского диалога в соответствии с [порядком моделей](#choose-a-model)

66> * **Tools**: каждый инструмент [доступный для subagents](#available-tools)66> * **Tools**: каждый инструмент, [доступный для субагентов](#available-tools)

67> * **Purpose**: сложное исследование, многошаговые операции, модификация кода67> * **Purpose**: сложное исследование, многошаговые операции, модификация кода

68>68>

69> Claude делегирует general-purpose, когда задача требует как исследования, так и модификации, сложного рассуждения для интерпретации результатов или нескольких зависимых шагов.69> Claude делегирует general-purpose, когда задача требует как исследования, так и модификации, сложного рассуждения для интерпретации результатов или нескольких зависимых шагов.


346 346 

347### Выберите модель347### Выберите модель

348 348 

349Поле `model` контролирует, какую модель использует subagent:349По умолчанию определённый вами субагент работает на той же модели, что и диалог, который его запускает. Чтобы выбрать его модель самостоятельно, задайте в его определении поле [`model`](#supported-frontmatter-fields) с одним из следующих значений:

350 350 

351* **Model alias**: используйте один из доступных псевдонимов: `sonnet`, `opus`, `haiku` или `fable`351* **Псевдоним модели**: `sonnet`, `opus`, `haiku` или `fable`

352* **Full model ID**: используйте полный ID модели, такой как `claude-opus-5-5` или `claude-sonnet-5`. Принимает те же значения, что и флаг `--model`352* **Полный ID модели**: значение, которое принимает флаг [`--model`](https://code.claude.com/docs/ru/cli-reference#cli-flags), например `claude-opus-5-5` или `claude-sonnet-5`

353* **inherit**: используйте ту же модель, что и основной разговор353* **`inherit`**: модель основного диалога или, для [вложенного субагента](#which-model-a-nested-subagent-runs-on), модель субагента, который его создал

354 354 

355Когда Claude вызывает субагента, он также может передать параметр `model` для этого конкретного вызова. В вызове инструмента Agent этот параметр принимает псевдоним модели: `sonnet`, `opus`, `haiku` или `fable`. Claude не может передать в этом вызове полный ID модели или `inherit`. Claude Code определяет модель субагента в следующем порядке:355Когда модель задают несколько источников, Claude Code использует первый из них в следующем порядке:

356 356 

3571. Параметр `model` для конкретного вызова3571. Параметр `model` для конкретного вызова, который Claude может передать при запуске субагента. В вызове инструмента Agent этот параметр принимает псевдоним модели, а не полный ID модели или `inherit`.

3582. Frontmatter `model` определения subagent, где `inherit` выбирает модель основного разговора3582. Поле `model` в определении субагента, включая `inherit`

3593. Переменная окружения [`CLAUDE_CODE_SUBAGENT_MODEL`](https://code.claude.com/docs/ru/model-config#environment-variables), когда вы устанавливаете её на псевдоним модели или ID модели3593. Переменная окружения [`CLAUDE_CODE_SUBAGENT_MODEL`](https://code.claude.com/docs/ru/model-config#environment-variables)

3604. Модель основного разговора3604. Модель основного диалога или, для вложенного субагента, модель субагента, который его создал

361 361 

362Если установленный [мод](https://code.claude.com/docs/ru/plugins/mods/overview.md) задаёт модель в своём хуке [`agent.spawn`](https://code.claude.com/docs/ru/plugins/mods/reference#subagents), Claude Code использует эту модель вместо параметра конкретного вызова.362Если Claude передал псевдоним, субагент сохраняет этот псевдоним, когда он [возобновляется или получает последующее сообщение](#resume-subagents). Если установленный [мод](https://code.claude.com/docs/ru/plugins/mods/overview.md) задаёт модель в своём хуке [`agent.spawn`](https://code.claude.com/docs/ru/plugins/mods/reference#subagents), Claude Code использует эту модель вместо параметра конкретного вызова.

363 

364В двух случаях семейный псевдоним, такой как `opus`, в параметре для конкретного вызова или frontmatter разрешается в модель основного разговора вместо [версии, на которую указывает псевдоним](https://code.claude.com/docs/ru/model-config.md#model-aliases):

365 

366* **Модель основного разговора принадлежит этому семейству**: subagent работает на точной модели основного разговора, включая любой суффикс `[1m]`, поэтому он получает то же [extended context](https://code.claude.com/docs/ru/model-config.md#extended-context) окно, что и основной разговор.

367* **Claude Code не может определить семейство модели основного разговора, на [поставщике, отличном от Anthropic API](https://code.claude.com/docs/ru/third-party-integrations.md)**: это может произойти с [application inference profile ARN](https://code.claude.com/docs/ru/amazon-bedrock.md#iam-configuration) на Amazon Bedrock, который Claude Code не разрешил в резервную модель. Этот случай охватывает только псевдоним `opus` и не применяется, когда вы устанавливаете [`ANTHROPIC_DEFAULT_OPUS_MODEL`](https://code.claude.com/docs/ru/model-config#environment-variables), поскольку `opus` затем разрешается в модель, которую вы установили.

368 

369Псевдоним в `CLAUDE_CODE_SUBAGENT_MODEL` всегда разрешается в версию, на которую указывает псевдоним, даже когда он называет семейство основного разговора. Установка переменной на `inherit` — это то же самое, что оставить её неустановленной.

370 363 

371Установка `CLAUDE_CODE_SUBAGENT_MODEL` сама по себе не изменяет модель, на которой работают встроенные subagents Explore и Plan. Чтобы изменить её, см. [Run every subagent on one model](#run-every-subagent-on-one-model).364Установка `CLAUDE_CODE_SUBAGENT_MODEL` сама по себе не изменяет модель, на которой работают встроенные subagents Explore и Plan. Чтобы изменить её, см. [Run every subagent on one model](#run-every-subagent-on-one-model).

372 365 

373До версии 2.1.251 `CLAUDE_CODE_SUBAGENT_MODEL` был первым в этом порядке и переопределял как параметр для конкретного вызова, так и frontmatter, включая `model: inherit`.366#### На какой модели работает вложенный субагент

374 367 

375Claude Code проверяет параметр для конкретного вызова, frontmatter и значения переменной окружения на соответствие списку разрешений [`availableModels`](https://code.claude.com/docs/ru/model-config#restrict-model-selection) вашей организации. Для заблокированного значения он подставляет другую модель:368По умолчанию определённый вами [вложенный субагент](#let-subagents-spawn-their-own-subagents) работает на модели своего родителя — субагента, который его создал. Чтобы запустить вложенного субагента на другой модели, укажите эту модель в его поле `model`.

376 369 

377* Когда заблокированное значение — это семейный псевдоним, такой как `opus`, Claude Code запускает subagent на самой новой версии этого семейства, которое разрешает список разрешений, следуя тем же [правилам подстановки и области поставщика](https://code.claude.com/docs/ru/model-config.md#restrict-model-selection), что и `/model`. До версии 2.1.222 Claude Code запускал subagent на унаследованной модели для заблокированного семейного псевдонима также.370Например, предположим, что ваш основной диалог работает на Opus и запускает субагента-рецензента на Haiku. По умолчанию следующие субагенты, созданные рецензентом, работают на Haiku, а не на Opus:

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

379 371 

380В интерактивных сессиях Claude Code показывает предупреждение, называющее запрошенную модель и модель, на которой работает subagent, для любой подстановки.372* Субагент с `model: inherit` или без поля `model`

373* Встроенные субагенты Explore, Plan и general-purpose

374* [Fork](#fork-the-current-conversation)

381 375 

382Чтобы проверить, на какой модели работает субагент, выполните [`/tasks`](https://code.claude.com/docs/ru/commands). Claude Code указывает модель в строке субагента и добавляет [уровень effort](https://code.claude.com/docs/ru/model-config.md#adjust-effort-level), заданный для этого субагента, если он есть. Требуется Claude Code v2.1.242 или новее.376В режиме планирования эти субагенты работают на Opus, если вы задали для сессии модель [`opusplan`](https://code.claude.com/docs/ru/model-config#opusplan-model-setting), или на Sonnet, если вы задали `haiku`.

383 377 

384Параметр `model` конкретного вызова также применяется, когда субагент [возобновляется или получает последующее сообщение](#resume-subagents), поэтому субагент остаётся на этой модели.378#### Проверка модели субагента

385 379 

386Начиная с версии 2.1.198, subagents также наследуют конфигурацию [extended thinking](https://code.claude.com/docs/ru/model-config.md#extended-thinking) основного разговора: если thinking включен в вашей сессии, он включен для subagent, и если он выключен, он остаётся выключенным. Нет параметра thinking для каждого subagent. До версии 2.1.198 subagents запускались с отключённым extended thinking независимо от параметра основного разговора.380Чтобы проверить, на какой модели работает субагент, выполните [`/tasks`](https://code.claude.com/docs/ru/commands). Claude Code указывает модель в строке субагента и добавляет [уровень effort](https://code.claude.com/docs/ru/model-config.md#adjust-effort-level), заданный для этого субагента, если он есть. Требуется Claude Code v2.1.242 или новее.

387 381 

388#### Запустите каждый subagent на одной модели382#### Запустите каждый subagent на одной модели

389 383 

390`CLAUDE_CODE_SUBAGENT_MODEL` — это значение по умолчанию, поэтому определение subagent или модель, которую передаёт Claude, по-прежнему имеют приоритет над ним. Чтобы применить одну модель к каждому subagent, [teammate](https://code.claude.com/docs/ru/agent-teams.md#specify-teammates-and-models) и [workflow agent](https://code.claude.com/docs/ru/workflows.md), также установите `CLAUDE_CODE_SUBAGENT_MODEL_FORCE` на `1`. Требует Claude Code v2.1.257 или позже.384Чтобы применить одну модель к каждому субагенту, [участнику команды](https://code.claude.com/docs/ru/agent-teams.md#specify-teammates-and-models) и [агенту workflow](https://code.claude.com/docs/ru/workflows.md), задайте для `CLAUDE_CODE_SUBAGENT_MODEL` эту модель, а для `CLAUDE_CODE_SUBAGENT_MODEL_FORCE` — значение `1`. Требуется Claude Code v2.1.257 или новее.

391 

392* Если вы установили обе переменные, subagents работают на модели в `CLAUDE_CODE_SUBAGENT_MODEL`.

393* Если вы задали только `CLAUDE_CODE_SUBAGENT_MODEL_FORCE`, субагенты работают на модели основного диалога, за исключением встроенного субагента Explore, который работает на [модели, указанной для него в разделе «Встроенные субагенты»](#built-in-subagents).

394 385 

395Например, чтобы запустить каждый subagent на Haiku, установите обе переменные в блоке `env` [файла настроек](https://code.claude.com/docs/ru/settings.md):386Например, чтобы запустить каждый subagent на Haiku, установите обе переменные в блоке `env` [файла настроек](https://code.claude.com/docs/ru/settings.md):

396 387 


405 396 

406Чтобы проверить, что параметр вступил в силу, запустите [`/tasks`](https://code.claude.com/docs/ru/commands) пока работает subagent. Строка subagent показывает модель, на которой он работает.397Чтобы проверить, что параметр вступил в силу, запустите [`/tasks`](https://code.claude.com/docs/ru/commands) пока работает subagent. Строка subagent показывает модель, на которой он работает.

407 398 

408Пока `CLAUDE_CODE_SUBAGENT_MODEL_FORCE` [включена](https://code.claude.com/docs/ru/env-vars.md), Claude Code игнорирует поле `model` в определениях субагентов, а Claude не может передать модель при запуске субагента. Следующие субагенты по-прежнему работают на модели основного диалога:399Пока `CLAUDE_CODE_SUBAGENT_MODEL_FORCE` [включена](https://code.claude.com/docs/ru/env-vars.md), Claude Code игнорирует поле `model` в определениях субагентов, а Claude не может передать модель при запуске субагента. Следующие субагенты по-прежнему работают на модели своего родительского диалога:

409 400 

410* [Fork](#fork-the-current-conversation)401* [Fork](#fork-the-current-conversation)

411* [Skill, который работает в subagent](https://code.claude.com/docs/ru/skills.md#run-skills-in-a-subagent) с `model: inherit`402* [Skill, который работает в subagent](https://code.claude.com/docs/ru/skills.md#run-skills-in-a-subagent) с `model: inherit`

412 403 

404Если вы задали только `CLAUDE_CODE_SUBAGENT_MODEL_FORCE`, субагенты работают на модели основного диалога, за исключением встроенного субагента Explore, который работает на [модели, указанной для него в разделе «Встроенные субагенты»](#built-in-subagents).

405 

406#### Какую версию выбирает псевдоним модели

407 

408По умолчанию субагент с псевдонимом модели работает на [версии, на которую указывает псевдоним](https://code.claude.com/docs/ru/model-config.md#model-aliases). Если в поле `model` или параметре конкретного вызова указан семейный псевдоним, такой как `opus`, субагент работает на модели своего родительского диалога в двух случаях:

409 

410* **То же семейство**: например, если ваш основной диалог работает на `claude-opus-4-7`, субагент с `model: opus` тоже работает на этой версии. Чтобы запустить другую версию, укажите в поле `model` полный ID модели.

411* **Неизвестное семейство**: Claude Code не может определить семейство родительской модели, например в случае ARN Amazon Bedrock, который он [не может найти](https://code.claude.com/docs/ru/amazon-bedrock.md#iam-configuration). Этот случай относится только к псевдониму `opus` у [поставщика, отличного от Anthropic API](https://code.claude.com/docs/ru/third-party-integrations.md). Чтобы выбрать версию Opus, задайте [`ANTHROPIC_DEFAULT_OPUS_MODEL`](https://code.claude.com/docs/ru/model-config#environment-variables).

412 

413#### Когда список разрешённых моделей блокирует модель субагента

414 

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

416 

4171. Для заблокированного семейного псевдонима — самая новая разрешённая версия этого семейства у [поставщиков, которые поддерживают такую подстановку](https://code.claude.com/docs/ru/model-config.md#restrict-model-selection)

4182. Модель из `CLAUDE_CODE_SUBAGENT_MODEL`, если вы её задали, по этим же правилам

4193. Модель основного диалога или, для вложенного субагента, модель субагента, который его создал

420 

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

422 

423### Расширенное мышление в субагентах

424 

425Субагенты наследуют конфигурацию [расширенного мышления](https://code.claude.com/docs/ru/model-config.md#extended-thinking) вашего основного диалога. Отдельной настройки мышления для каждого субагента нет.

426 

413### Выбор уровня effort427### Выбор уровня effort

414 428 

415Чтобы запускать субагента с собственным [уровнем effort](https://code.claude.com/docs/ru/model-config.md#adjust-effort-level), задайте поле [`effort`](#supported-frontmatter-fields) в его определении.429Чтобы запускать субагента с собственным [уровнем effort](https://code.claude.com/docs/ru/model-config.md#adjust-effort-level), задайте поле [`effort`](#supported-frontmatter-fields) в его определении.


426 440 

427#### Доступные инструменты441#### Доступные инструменты

428 442 

429Subagents наследуют [встроенные инструменты](https://code.claude.com/docs/ru/tools-reference.md) и MCP инструменты, доступные в основном разговоре, сужены двумя фильтрами: первый удаляет короткий список инструментов из каждого subagent, и второй уменьшает набор встроенных инструментов для subagents, которые работают в [фоне](#run-subagents-in-foreground-or-background), что является значением по умолчанию. На macOS, Linux и WSL subagent также может получить инструменты Glob и Grep, когда основной разговор их не имеет, как описано в разделе [Glob tool behavior](https://code.claude.com/docs/ru/tools-reference.md#glob-tool-behavior). [Forks](#fork-the-current-conversation) пропускают оба фильтра и получают точный пул инструментов основного разговора. Первый фильтр удаляет эти инструменты, даже когда они указаны в поле `tools`:443Субагенты наследуют [встроенные инструменты](https://code.claude.com/docs/ru/tools-reference.md) и инструменты MCP, доступные в основном диалоге, с сужением двумя фильтрами. Первый удаляет короткий список инструментов из каждого субагента. Второй уменьшает набор встроенных инструментов для субагентов, которые работают в [фоне](#run-subagents-in-foreground-or-background), что является значением по умолчанию.

444 

445На macOS, Linux и WSL субагент также может получить инструменты Glob и Grep, когда у основного диалога их нет, как описано в разделе [Glob tool behavior](https://code.claude.com/docs/ru/tools-reference.md#glob-tool-behavior). [Forks](#fork-the-current-conversation) пропускают оба фильтра и получают точный набор инструментов своего родительского диалога. Первый фильтр удаляет эти инструменты, даже когда они указаны в поле `tools`:

430 446 

431* `Agent`, когда subagent находится на [depth limit](#let-subagents-spawn-their-own-subagents); в [fork](#fork-the-current-conversation) инструмент остаётся в списке, но возвращает ошибку вместо порождения447* `Agent`, когда subagent находится на [depth limit](#let-subagents-spawn-their-own-subagents); в [fork](#fork-the-current-conversation) инструмент остаётся в списке, но возвращает ошибку вместо порождения

432* `AskUserQuestion`448* `AskUserQuestion`


1077 1093 

1078С этим значением ваши субагенты могут делегировать работу второму уровню собственных субагентов, а этот второй уровень уже не может делегировать дальше. Задайте `1`, чтобы отключить вложенность.1094С этим значением ваши субагенты могут делегировать работу второму уровню собственных субагентов, а этот второй уровень уже не может делегировать дальше. Задайте `1`, чтобы отключить вложенность.

1079 1095 

1080Вложенный субагент настраивается так же, как субагент верхнего уровня, и разрешается из тех же [областей действия](#choose-the-subagent-scope). Чтобы запретить одному субагенту порождать других при включённой вложенности, например ревьюеру, который должен оставаться только для чтения, исключите `Agent` из его списка [`tools`](#available-tools) или добавьте его в `disallowedTools`.1096Определяйте вложенного субагента в тех же [областях действия](#choose-the-subagent-scope), что и субагента верхнего уровня. По умолчанию определённый вами вложенный субагент работает на [модели запускающего субагента](#which-model-a-nested-subagent-runs-on). Чтобы запретить одному субагенту порождать других при включённой вложенности, например ревьюеру, который должен оставаться только для чтения, исключите `Agent` из его списка [`tools`](#available-tools) или добавьте его в `disallowedTools`.

1081 1097 

1082В терминале Claude Code показывает вложенных субагентов в виде дерева в панели субагентов под полем ввода промпта и помечает каждую строку, у которой в панели ещё есть потомки, счётчиком `(+N)`. Откройте строку, чтобы увидеть соседних субагентов и прямых потомков этого субагента вместе с путём обратно к `main`.1098В терминале Claude Code показывает вложенных субагентов в виде дерева в панели субагентов под полем ввода промпта и помечает каждую строку, у которой в панели ещё есть потомки, счётчиком `(+N)`. Откройте строку, чтобы увидеть соседних субагентов и прямых потомков этого субагента вместе с путём обратно к `main`.

1083 1099 


1221>1237>

1222> Когда [представление агента отключено](https://code.claude.com/docs/ru/agent-view.md#turn-off-agent-view), `/subtask` недоступен, а `/fork` вместо этого запускает разветвлённый субагент; в противном случае `/fork` копирует всю сессию в новую [фоновую сессию](https://code.claude.com/docs/ru/agent-view.md#from-inside-a-session).1238> Когда [представление агента отключено](https://code.claude.com/docs/ru/agent-view.md#turn-off-agent-view), `/subtask` недоступен, а `/fork` вместо этого запускает разветвлённый субагент; в противном случае `/fork` копирует всю сессию в новую [фоновую сессию](https://code.claude.com/docs/ru/agent-view.md#from-inside-a-session).

1223 1239 

1224Fork — это subagent, который наследует весь разговор до сих пор вместо начала с нуля. Это отбрасывает входную изоляцию, которую subagents иначе предоставляют: fork видит то же системное приглашение, инструменты, модель и историю сообщений, что и основная сессия, поэтому вы можете передать ему побочную задачу без переобъяснения ситуации. Вызовы инструментов fork по-прежнему остаются вне вашего разговора и только его окончательный результат возвращается, поэтому ваше основное контекстное окно остаётся чистым. Используйте fork, когда любой другой subagent потребовал бы слишком много фона, чтобы быть полезным, или когда вы хотите попробовать несколько подходов параллельно с одной и той же отправной точки.1240Fork — это субагент, который наследует весь диалог до текущего момента вместо того, чтобы начинать с нуля. Используйте fork, когда любому другому субагенту потребовалось бы слишком много предыстории, чтобы быть полезным, или когда вы хотите параллельно попробовать несколько подходов с одной и той же отправной точки.

1241 

1242* **Вход**: fork видит тот же системный промпт, инструменты, [модель](#which-model-a-nested-subagent-runs-on) и историю сообщений, что и его родительский диалог

1243* **Выход**: собственные вызовы инструментов fork остаются вне родительского диалога, и возвращается только его окончательный результат

1225 1244 

1226Claude может самостоятельно запускать fork, пока режим fork включён, а по умолчанию он включён. Чтобы остановить forks, см. [Отключение режима fork](#turn-fork-mode-on-or-off).1245Claude может самостоятельно запускать fork, пока режим fork включён, а по умолчанию он включён. Чтобы остановить forks, см. [Отключение режима fork](#turn-fork-mode-on-or-off).

1227 1246 


1257 1276 

1258### Как forks отличаются от других subagents1277### Как forks отличаются от других subagents

1259 1278 

1260Fork наследует всё, что основная сессия имеет в момент его порождения. Любой другой subagent начинает с нуля из своего определения.

1261 

1262| | Fork | Non-fork subagent |1279| | Fork | Non-fork subagent |

1263| :- | :- | :- |1280| :- | :- | :- |

1264| Context | Полная история разговора | Свежий контекст с приглашением, которое вы передаёте |1281| Context | Полная история разговора | Свежий контекст с приглашением, которое вы передаёте |

1265| System prompt and tools | Такие же как основная сессия | Из [файла определения](#write-subagent-files) subagent, [отфильтрованные для фоновых запусков](#available-tools) |1282| System prompt and tools | Такие же, как у родительского диалога | Из [файла определения](#write-subagent-files) субагента, [отфильтрованные для фоновых запусков](#available-tools) |

1266| Model | Такая же как основная сессия | Из поля `model` subagent |1283| Model | Такая же, как у [родительского диалога](#which-model-a-nested-subagent-runs-on) | Определяется [порядком выбора модели субагента](#choose-a-model) |

1267| Prompt cache | Общий с основной сессией | Отдельный кэш |1284| Prompt cache | Общий с родительским диалогом | Отдельный кэш |

1268 1285 

1269Поскольку системный промпт и определения инструментов fork идентичны родительским, его первый запрос повторно использует [кэш промптов](https://code.claude.com/docs/ru/prompt-caching.md#subagents-and-the-cache) родителя. Благодаря этому повторному использованию fork обходится дешевле, чем новый субагент, для задач, которым нужен тот же контекст.1286Поскольку системный промпт и определения инструментов fork идентичны родительским, его первый запрос повторно использует [кэш промптов](https://code.claude.com/docs/ru/prompt-caching.md#subagents-and-the-cache) родителя. Благодаря этому повторному использованию fork обходится дешевле, чем новый субагент, для задач, которым нужен тот же контекст.

1270 1287 

workflows.md +1 −1

Details

454* Проверьте `/model` перед большим запуском, если вы обычно переключаетесь на меньшую модель для рутинной работы454* Проверьте `/model` перед большим запуском, если вы обычно переключаетесь на меньшую модель для рутинной работы

455* При описании задачи попросите Claude использовать меньшую модель для этапов, которым не нужна самая мощная455* При описании задачи попросите Claude использовать меньшую модель для этапов, которым не нужна самая мощная

456 456 

457Когда [список разрешённых моделей `availableModels`](https://code.claude.com/docs/ru/model-config#restrict-model-selection) вашей организации блокирует модель, которую скрипт запрашивает для агента, этот агент вместо неё работает на замещающей модели в соответствии с теми же [правилами замены, что и для субагентов](https://code.claude.com/docs/ru/sub-agents.md#choose-a-model).457Когда [список разрешённых моделей `availableModels`](https://code.claude.com/docs/ru/model-config#restrict-model-selection) вашей организации блокирует модель, которую скрипт запрашивает для агента, этот агент вместо неё работает на замещающей модели в соответствии с теми же [правилами замены, что и для субагентов](https://code.claude.com/docs/ru/sub-agents.md#when-an-allowlist-blocks-a-subagent-model).

458 458 

459### Задание ориентира по размеру459### Задание ориентира по размеру

460 460 

worktrees.md +5 −2

Details

232 232 

233При [базе](#choose-the-base-branch) `"fresh"` по умолчанию повторно открытый worktree сбрасывается на ветку по умолчанию репозитория, а не продолжает с прежней вершины, если выполняются все следующие условия:233При [базе](#choose-the-base-branch) `"fresh"` по умолчанию повторно открытый worktree сбрасывается на ветку по умолчанию репозитория, а не продолжает с прежней вершины, если выполняются все следующие условия:

234 234 

235* В нём нет незакоммиченных изменений или неотслеживаемых файлов.235* [Песочница](https://code.claude.com/docs/ru/sandboxing.md#filesystem-isolation) не ограничивает запись файлов в вашей сессии, и ни файлы настроек `.claude` worktree, ни файлы настроек `.claude` основного checkout не включают песочницу.

236* В worktree нет незакоммиченных изменений или неотслеживаемых файлов.

236* Он по-прежнему находится на ветке, которую Claude Code создал для него.237* Он по-прежнему находится на ветке, которую Claude Code создал для него.

237* В нём нет собственных коммитов, либо его pull request или merge request был слит, а удалённая ветка удалена.238* В нём нет собственных коммитов, либо его pull request или merge request был слит, а удалённая ветка удалена.

238 239 


240 241 

241Во всех остальных случаях Claude Code повторно открывает worktree на прежней вершине:242Во всех остальных случаях Claude Code повторно открывает worktree на прежней вершине:

242 243 

243* Worktree не удовлетворяет какому-либо из условий.244* Worktree или сессия не удовлетворяет какому-либо из условий.

244* Claude Code не может проверить состояние worktree.245* Claude Code не может проверить состояние worktree.

245* `worktree.baseRef` имеет значение `"head"`.246* `worktree.baseRef` имеет значение `"head"`.

246* Имя является ссылкой на pull request или merge request.247* Имя является ссылкой на pull request или merge request.

247 248 

249Если вы используете песочницу с базой `"fresh"`, выполните `git fetch origin`, а затем передайте новое имя в `--worktree`, чтобы начать с последней версии ветки по умолчанию.

250 

248### Замена создания worktree хуком251### Замена создания worktree хуком

249 252 

250Настройте [хук `WorktreeCreate`](https://code.claude.com/docs/ru/hooks#worktreecreate), чтобы полностью заменить стандартную логику `git worktree`, включая размещение worktree в другом месте, а не в `.claude/worktrees/`. Полный пример см. в разделе [Системы контроля версий, отличные от git](#non-git-version-control).253Настройте [хук `WorktreeCreate`](https://code.claude.com/docs/ru/hooks#worktreecreate), чтобы полностью заменить стандартную логику `git worktree`, включая размещение worktree в другом месте, а не в `.claude/worktrees/`. Полный пример см. в разделе [Системы контроля версий, отличные от git](#non-git-version-control).