SpyBara
Go Premium

Documentation 2026-10-26 22:57 UTC to 2026-10-27 22:59 UTC

71 files changed +1,169 −835. View all changes and history on the product overview
2026
Fri 30 23:01 Thu 29 23:57 Wed 28 23:57 Tue 27 22:59 Mon 26 22:57 Sun 25 23:58 Sat 24 22:59 Fri 23 22:59 Thu 22 22:58 Wed 21 23:02 Tue 20 23:00 Mon 19 23:58 Sat 17 23:57 Fri 16 22:59 Thu 15 23:58 Wed 14 22:58 Tue 13 23:57 Sun 11 23:57 Sat 10 23:01 Fri 9 23:02 Thu 8 22:58 Wed 7 23:59 Tue 6 23:59 Mon 5 23:58 Sun 4 23:58 Sat 3 23:57 Fri 2 22:59 Thu 1 23:59
Details

79| `Permission Required:` | Запрос разрешения, ожидающий вашего ответа |79| `Permission Required:` | Запрос разрешения, ожидающий вашего ответа |

80| `Cost:` | Сводка стоимости сессии при выходе Claude Code, если ваша учётная запись [показывает затраты](https://code.claude.com/docs/ru/costs.md) |80| `Cost:` | Сводка стоимости сессии при выходе Claude Code, если ваша учётная запись [показывает затраты](https://code.claude.com/docs/ru/costs.md) |

81 81 

82Claude Code удерживает курсор терминала на каретке ввода, поэтому команда чтения текущей строки вашей программы чтения с экрана читает промпт, который вы редактируете.82Claude Code удерживает курсор терминала на каретке ввода, поэтому команда чтения текущей строки вашей программы чтения с экрана читает промпт, который вы редактируете. Когда вы вводите текст в конце строки ввода или нажимаете `Backspace` там, Claude Code выводит только символы, которые изменились. Ваша программа чтения с экрана повторяет только эти символы.

83 

84Когда вы вводите текст в конце строки ввода, или нажимаете `Backspace` там, Claude Code выводит только символы, которые изменились. Ваша программа чтения с экрана повторяет только эти символы.

85 83 

86Когда вы удаляете слово или строку с помощью одного из [сочетаний клавиш редактирования текста](https://code.claude.com/docs/ru/interactive-mode.md#text-editing), Claude Code объявляет удалённый текст:84Когда вы удаляете слово или строку с помощью одного из [сочетаний клавиш редактирования текста](https://code.claude.com/docs/ru/interactive-mode.md#text-editing), Claude Code объявляет удалённый текст:

87 85 

admin-setup.md +1 −0

Details

191* [Server-managed settings](https://code.claude.com/docs/ru/server-managed-settings.md): доставка управляемой политики из консоли администратора Claude191* [Server-managed settings](https://code.claude.com/docs/ru/server-managed-settings.md): доставка управляемой политики из консоли администратора Claude

192* [All settings](https://code.claude.com/docs/ru/settings-reference.md): каждый ключ параметра, расположение файла и пример192* [All settings](https://code.claude.com/docs/ru/settings-reference.md): каждый ключ параметра, расположение файла и пример

193* [Which value Claude Code uses](https://code.claude.com/docs/ru/settings.md#which-value-claude-code-uses): правила приоритета для управляемых, проектных, локальных и пользовательских параметров193* [Which value Claude Code uses](https://code.claude.com/docs/ru/settings.md#which-value-claude-code-uses): правила приоритета для управляемых, проектных, локальных и пользовательских параметров

194* [Manage plugins for your organization](https://code.claude.com/docs/ru/plugins/org.md): установка общих плагинов на каждый компьютер через управляемые настройки

194* [Monorepos and large repos](https://code.claude.com/docs/ru/large-codebases.md): шаблоны конфигурации для каждого каталога для организаций, развертывающих в монорепозиторий195* [Monorepos and large repos](https://code.claude.com/docs/ru/large-codebases.md): шаблоны конфигурации для каждого каталога для организаций, развертывающих в монорепозиторий

195* [Amazon Bedrock](https://code.claude.com/docs/ru/amazon-bedrock.md), [Google Cloud's Agent Platform](https://code.claude.com/docs/ru/google-vertex-ai.md), [Microsoft Foundry](https://code.claude.com/docs/ru/microsoft-foundry.md): развертывание для конкретного поставщика196* [Amazon Bedrock](https://code.claude.com/docs/ru/amazon-bedrock.md), [Google Cloud's Agent Platform](https://code.claude.com/docs/ru/google-vertex-ai.md), [Microsoft Foundry](https://code.claude.com/docs/ru/microsoft-foundry.md): развертывание для конкретного поставщика

196* [Claude Enterprise Administrator Guide](https://claude.com/resources/tutorials/claude-enterprise-administrator-guide): SSO, SCIM, управление местами и сценарий развертывания197* [Claude Enterprise Administrator Guide](https://claude.com/resources/tutorials/claude-enterprise-administrator-guide): SSO, SCIM, управление местами и сценарий развертывания

Details

41 41 

42Это было четыре хода: три с вызовами инструментов, один финальный текстовый ответ.42Это было четыре хода: три с вызовами инструментов, один финальный текстовый ответ.

43 43 

44Вы можете ограничить цикл с помощью `max_turns` / `maxTurns`, который считает только ходы с использованием инструментов. Например, `max_turns=2` в цикле выше остановился бы перед шагом редактирования. Вы также можете использовать `max_budget_usd` / `maxBudgetUsd` для ограничения ходов на основе порога расходов.44Вы можете ограничить цикл с помощью `max_turns` / `maxTurns`. Считайте каждый ход с вызовами инструментов плюс один для финального текстового ответа. Без этого дополнительного хода выполнение завершится сообщением `ResultMessage` с подтипом `error_max_turns` и без финального ответа. Например, `max_turns=2` в цикле выше остановился бы перед шагом редактирования. Вы также можете использовать `max_budget_usd` / `maxBudgetUsd` для ограничения ходов на основе порога расходов.

45 45 

46Без ограничений цикл работает до тех пор, пока Claude не закончит самостоятельно, что хорошо для хорошо определенных задач, но может работать долго на открытых запросах («улучшить этот кодовую базу»). Установка бюджета — хороший стандарт для производственных агентов. См. [Ходы и бюджет](#turns-and-budget) ниже для справки по опциям.46Без ограничений цикл работает до тех пор, пока Claude не закончит самостоятельно, что хорошо для хорошо определенных задач, но может работать долго на открытых запросах («улучшить этот кодовую базу»). Установка бюджета — хороший стандарт для производственных агентов. См. [Ходы и бюджет](#turns-and-budget) ниже для справки по опциям.

47 47 


183 183 

184Пользовательские инструменты по умолчанию работают последовательно. Чтобы включить параллельное выполнение для пользовательского инструмента, установите `readOnlyHint` в его аннотациях. Оба SDK [TypeScript](https://code.claude.com/docs/ru/agent-sdk/typescript.md#tool) и [Python](https://code.claude.com/docs/ru/agent-sdk/python.md#tool) используют это имя поля из MCP SDK.184Пользовательские инструменты по умолчанию работают последовательно. Чтобы включить параллельное выполнение для пользовательского инструмента, установите `readOnlyHint` в его аннотациях. Оба SDK [TypeScript](https://code.claude.com/docs/ru/agent-sdk/typescript.md#tool) и [Python](https://code.claude.com/docs/ru/agent-sdk/python.md#tool) используют это имя поля из MCP SDK.

185 185 

186## Контролировать, как работает цикл186## Управление выполнением цикла

187 187 

188Вы можете ограничить количество ходов, которые делает цикл, сколько он стоит, насколько глубоко Claude рассуждает, и требуют ли инструменты одобрения перед запуском. Все это поля на [`ClaudeAgentOptions`](https://code.claude.com/docs/ru/agent-sdk/python#claudeagentoptions) (Python) / [`Options`](https://code.claude.com/docs/ru/agent-sdk/typescript#options) (TypeScript).188Вы можете ограничить количество ходов цикла, его стоимость, глубину рассуждений Claude, а также указать, требуют ли инструменты подтверждения перед запуском. Все это — поля [`ClaudeAgentOptions`](https://code.claude.com/docs/ru/agent-sdk/python#claudeagentoptions) (Python) / [`Options`](https://code.claude.com/docs/ru/agent-sdk/typescript#options) (TypeScript).

189 189 

190### Ходы и бюджет190### Ходы и бюджет

191 191 

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

193| :- | :- | :- |193| :- | :- | :- |

194| Максимум ходов (`max_turns` / `maxTurns`) | Максимум раундов использования инструментов | Без ограничений |194| Максимум ходов (`max_turns` / `maxTurns`) | Максимальное количество [ходов](#turns-and-messages) | Без ограничений |

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

196 196 

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

198 198 

199Крышка бюджета охватывает [подагентов](https://code.claude.com/docs/ru/agent-sdk/subagents.md): их расходы учитываются в общей сумме. Когда расходы достигают крышки, создание другого подагента не удается с `Budget limit reached`, и Claude Code останавливает любых фоновых подагентов, которые все еще работают. Поведение принудительного применения крышки требует Claude Code v2.1.217 или позже.199Ограничение бюджета распространяется на [субагентов](https://code.claude.com/docs/ru/agent-sdk/subagents.md): их расходы учитываются в общей сумме. Как только расходы достигают лимита, запуск очередного субагента завершается ошибкой `Budget limit reached`, а Claude Code останавливает все еще работающих фоновых субагентов. Для такого соблюдения лимита требуется Claude Code v2.1.217 или новее.

200 200 

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

202 202 

203#### Запас бюджета203#### Запас бюджета

204 204 

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

206 206 

207### Уровень усилий207### Уровень effort

208 208 

209Опция `effort` контролирует, сколько рассуждений применяет Claude. Более низкие уровни усилий используют меньше токенов за ход и снижают стоимость. Не все модели поддерживают параметр effort. См. [Effort](https://platform.claude.com/docs/en/build-with-claude/effort) для того, какие модели его поддерживают.209Параметр `effort` определяет, насколько глубоко рассуждает Claude. Более низкие уровни effort расходуют меньше токенов за ход и снижают стоимость. Не все модели поддерживают параметр effort. Список поддерживающих его моделей см. в разделе [Effort](https://platform.claude.com/docs/en/build-with-claude/effort).

210 210 

211| Уровень | Поведение | Хорошо для |211| Уровень | Поведение | Подходит для |

212| :- | :- | :- |212| :- | :- | :- |

213| `"low"` | Минимальное рассуждение, быстрые ответы | Поиск файлов, список каталогов |213| `"low"` | Минимальные рассуждения, быстрые ответы | Поиск файлов, вывод содержимого каталогов |

214| `"medium"` | Сбалансированное рассуждение | Обычные редактирования, стандартные задачи |214| `"medium"` | Сбалансированные рассуждения | Рутинные правки, стандартные задачи |

215| `"high"` | Тщательный анализ | Рефакторинг, отладка |215| `"high"` | Тщательный анализ | Рефакторинг, отладка |

216| `"xhigh"` | Расширенная глубина рассуждения | Задачи кодирования и агентские на [моделях, которые это поддерживают](https://code.claude.com/docs/ru/model-config.md#adjust-effort-level) |216| `"xhigh"` | Расширенная глубина рассуждений | Задачи программирования и агентные задачи на [моделях, которые это поддерживают](https://code.claude.com/docs/ru/model-config.md#adjust-effort-level) |

217| `"max"` | Максимальная глубина рассуждения | Многошаговые проблемы, требующие глубокого анализа |217| `"max"` | Максимальная глубина рассуждений | Многошаговые задачи, требующие глубокого анализа |

218 218 

219Если вы не установите `effort`, Claude Code разрешает уровень усилий сам по себе, в порядке, который описывает [Adjust effort level](https://code.claude.com/docs/ru/model-config.md#adjust-effort-level).219Если вы не задаете `effort`, Claude Code определяет уровень effort самостоятельно в порядке, описанном в разделе [Настройка уровня effort](https://code.claude.com/docs/ru/model-config.md#adjust-effort-level).

220 220 

221> [!NOTE]221> [!NOTE]

222>222>

223> `effort` обменивает задержку и стоимость токена на глубину рассуждения в каждом ответе. [Extended thinking](https://platform.claude.com/docs/en/build-with-claude/extended-thinking) — это отдельная функция, которая выдает блоки `thinking` в выводе, и поле `display` на `ThinkingConfig` для [Python](https://code.claude.com/docs/ru/agent-sdk/python.md#thinkingconfig) или [TypeScript](https://code.claude.com/docs/ru/agent-sdk/typescript.md#thinkingconfig) контролирует, получаете ли вы их текст. Они независимы: вы можете установить `effort: "low"` с включенным extended thinking или `effort: "max"` без него.223> `effort` позволяет обменять задержку и стоимость токенов на глубину рассуждений в рамках каждого ответа. [Расширенное мышление](https://platform.claude.com/docs/en/build-with-claude/extended-thinking) — это отдельная функция, которая создает блоки `thinking` в выводе, а поле `display` в `ThinkingConfig` для [Python](https://code.claude.com/docs/ru/agent-sdk/python.md#thinkingconfig) или [TypeScript](https://code.claude.com/docs/ru/agent-sdk/typescript.md#thinkingconfig) определяет, получаете ли вы их текст. Они независимы: можно задать `effort: "low"` с включенным расширенным мышлением или `effort: "max"` без него.

224 224 

225Используйте более низкие усилия для агентов, выполняющих простые, хорошо определенные задачи (такие как список файлов или запуск одного grep), чтобы снизить стоимость и задержку. Установите `effort` в опциях верхнего уровня `query()` для всей сессии или для каждого подагента с полем `effort` на [`AgentDefinition`](https://code.claude.com/docs/ru/agent-sdk/subagents#agentdefinition-configuration), чтобы переопределить уровень сессии.225Используйте более низкий уровень effort для агентов, выполняющих простые, четко очерченные задачи (например, вывод списка файлов или запуск одного grep), чтобы снизить стоимость и задержку. Задайте `effort` в параметрах `query()` верхнего уровня для всей сессии или для отдельного субагента с помощью поля `effort` в [`AgentDefinition`](https://code.claude.com/docs/ru/agent-sdk/subagents#agentdefinition-configuration), чтобы переопределить уровень сессии.

226 226 

227### Режим разрешения227### Режим разрешений

228 228 

229Опция режима разрешения (`permission_mode` в Python, `permissionMode` в TypeScript) контролирует, просит ли агент одобрения перед использованием инструментов:229Параметр режима разрешений (`permission_mode` в Python, `permissionMode` в TypeScript) определяет, запрашивает ли агент подтверждение перед использованием инструментов:

230 230 

231| Режим | Поведение | Вариант использования |231| Режим | Поведение | Сценарий использования |

232| :- | :- | :- |232| :- | :- | :- |

233| `"default"` | Вызовы инструментов, которые требуют одобрения и не охватываются правилами разрешения, запускают ваш обратный вызов `canUseTool`; отсутствие обратного вызова означает отклонение | Интерактивные приложения с пользовательским обратным вызовом одобрения |233| `"default"` | Вызовы инструментов, которым требуется подтверждение и которые не покрываются разрешающими правилами, вызывают ваш callback `canUseTool`; при отсутствии callback вызов отклоняется | Интерактивные приложения с собственным callback для подтверждения |

234| `"acceptEdits"` | Автоматически одобряет редактирование файлов и общие команды файловой системы (`mkdir`, `touch`, `mv`, `cp` и т. д.); другие команды Bash следуют правилам по умолчанию | Вы доверяете редактированиям Claude и хотите более быстрой итерации, например во время прототипирования или при работе в изолированном каталоге |234| `"acceptEdits"` | Автоматически подтверждает правки файлов и распространенные команды файловой системы (`mkdir`, `touch`, `mv`, `cp` и т. д.); остальные команды Bash следуют правилам по умолчанию | Вы доверяете правкам Claude и хотите ускорить итерации, например при прототипировании или работе в изолированном каталоге |

235| `"plan"` | Claude исследует и планирует без редактирования ваших исходных файлов; редактирование файлов никогда не одобряется автоматически и запрашивается через ваш обратный вызов `canUseTool` | Вы хотите, чтобы Claude предложил изменения без их выполнения, например во время проверки кода или когда вам нужно одобрить изменения перед их внесением |235| `"plan"` | Claude исследует и планирует, не редактируя ваши исходные файлы; правки файлов никогда не подтверждаются автоматически и запрашиваются через ваш callback `canUseTool` | Вы хотите, чтобы Claude предлагал изменения, не выполняя их, например во время код-ревью или когда нужно подтверждать изменения до их внесения |

236| `"dontAsk"` | Никогда не запрашивает разрешения. Инструменты, предварительно одобренные [правилами разрешений](https://code.claude.com/docs/ru/settings-reference.md#permission-settings), работают, и также работают вызовы, которые не требуют подтверждения в режиме `default`, такие как чтение файлов в ваших рабочих каталогах. Каждый вызов, который иначе вызвал бы запрос разрешения, отклоняется, хотя установленный вами [мод](https://code.claude.com/docs/ru/plugins/mods/overview.md) все же может одобрить [некоторые из таких вызовов](https://code.claude.com/docs/ru/permissions.md#precedence-among-rules-hooks-and-mods). Некоторые вызовы, например [чтение из сетевых путей](https://code.claude.com/docs/ru/permissions.md#network-paths), отклоняются, даже если вы их разрешили. Список см. в разделе [Режим Don't ask](https://code.claude.com/docs/ru/agent-sdk/permissions.md#don’t-ask-mode-dontask) | Безголовые агенты, для которых некому подтверждать вызовы |236| `"dontAsk"` | Никогда не запрашивает подтверждение. Выполняются инструменты, заранее разрешенные [правилами разрешений](https://code.claude.com/docs/ru/settings-reference.md#permission-settings), а также вызовы, которым в режиме `default` подтверждение не требуется, например чтение файлов внутри ваших рабочих каталогов. Все вызовы, которые в ином случае потребовали бы подтверждения, отклоняются, хотя установленный вами [мод](https://code.claude.com/docs/ru/plugins/mods/overview.md) все же может подтвердить [некоторые из этих вызовов](https://code.claude.com/docs/ru/permissions.md#precedence-among-rules-hooks-and-mods). Некоторые вызовы, например [чтение по сетевым путям](https://code.claude.com/docs/ru/permissions.md#network-paths), отклоняются, даже если вы их разрешили. Список см. в разделе [Режим Don't ask](https://code.claude.com/docs/ru/agent-sdk/permissions.md#don’t-ask-mode-dontask) | Агенты без интерфейса, когда некому подтверждать вызовы |

237| `"auto"` | Использует классификатор модели для одобрения или отклонения подсказок разрешения. См. [Режим Auto](https://code.claude.com/docs/ru/permission-modes.md#eliminate-prompts-with-auto-mode) для доступности и поведения | Автономные агенты, которые все еще хотят гарантии безопасности при использовании инструментов |237| `"auto"` | Использует классификатор на основе модели для проверки действий, таких как shell-команды и сетевые запросы, разрешая или блокируя каждое проверяемое действие. Доступность и порядок принятия решений см. в разделе [Авторежим](https://code.claude.com/docs/ru/permission-modes.md#eliminate-prompts-with-auto-mode) | Автономные агенты, которым все же нужны защитные ограничения при использовании инструментов |

238| `"bypassPermissions"` | Выполняет вызовы инструментов без запроса подтверждения, включая вызовы инструментов, которые вы не указали в `allowedTools`. Некоторые вызовы все же передаются в ваш обратный вызов `canUseTool`; они перечислены в разделе [Режим bypass permissions](https://code.claude.com/docs/ru/agent-sdk/permissions.md#bypass-permissions-mode-bypasspermissions). В TypeScript SDK также требует `allowDangerouslySkipPermissions: true` в `options`. Не может использоваться при запуске от root на Unix. Используйте только в изолированных окружениях, где действия агента не могут повлиять на системы, которые вам важны | CI, контейнеры или другие изолированные окружения |238| `"bypassPermissions"` | Выполняет вызовы инструментов без запроса подтверждения, включая вызовы инструментов, которые вы не указали в `allowedTools`. Некоторые вызовы все равно передаются в ваш callback `canUseTool` — они перечислены в разделе [Режим Bypass permissions](https://code.claude.com/docs/ru/agent-sdk/permissions.md#bypass-permissions-mode-bypasspermissions). В TypeScript SDK также требуется `allowDangerouslySkipPermissions: true` в `options`. Нельзя использовать при запуске от имени root в Unix. Используйте только в изолированных средах, где действия агента не могут повлиять на важные для вас системы | CI, контейнеры или другие изолированные среды |

239 239 

240Для интерактивных приложений используйте `"default"` с обратным вызовом одобрения инструмента для отображения подсказок одобрения. Для автономных агентов на машине разработки используйте `"acceptEdits"`, чтобы автоматически одобрить редактирование файлов и общие команды файловой системы (`mkdir`, `touch`, `mv`, `cp` и т. д.), при этом все еще ограничивая другие команды `Bash` правилами разрешения. Зарезервируйте `"bypassPermissions"` для CI, контейнеров или других изолированных окружений. См. [Разрешения](https://code.claude.com/docs/ru/agent-sdk/permissions.md) для полных деталей.240Для интерактивных приложений используйте `"default"` с callback подтверждения инструментов, чтобы показывать запросы подтверждения. Для автономных агентов на машине разработчика `"acceptEdits"` автоматически подтверждает правки файлов и распространенные команды файловой системы (`mkdir`, `touch`, `mv`, `cp` и т. д.), при этом остальные команды `Bash` по-прежнему требуют разрешающих правил. Оставьте `"bypassPermissions"` для CI, контейнеров или других изолированных сред. Подробнее см. в разделе [Разрешения](https://code.claude.com/docs/ru/agent-sdk/permissions.md).

241 241 

242### Модель242### Модель

243 243 

244Установите опцию `model` для выбора модели, которая запускает сессию. Для получения дополнительной информации см. [Выбрать модель](https://code.claude.com/docs/ru/agent-sdk/configuration.md#choose-a-model).244Задайте параметр `model`, чтобы выбрать модель, которая будет выполнять сессию. Подробнее см. в разделе [Выбор модели](https://code.claude.com/docs/ru/agent-sdk/configuration.md#choose-a-model).

245 245 

246## Контекстное окно246## Контекстное окно

247 247 

Details

161 161 

162Оба языка имеют одинаковые установщики:162Оба языка имеют одинаковые установщики:

163 163 

164* **`setModel()` / `set_model()`**: переключает модель. Вызовите её без модели для переключения на [модель по умолчанию Claude Code](https://code.claude.com/docs/ru/model-config.md#default-model-setting) вместо `model`, которую вы передали в параметрах.164* **`setModel()` / `set_model()`**: переключает модель. Вызовите её без модели для переключения на [модель по умолчанию Claude Code](https://code.claude.com/docs/ru/model-config.md#default-model-setting) вместо `model`, которую вы передали в параметрах. Если сессия находится в авторежиме и вы переключаетесь на модель, которую авторежим не поддерживает, сессия переходит в режим `default`. Чтобы вернуться в авторежим, см. [Авторежим (`auto`)](https://code.claude.com/docs/ru/agent-sdk/permissions#auto-mode-auto).

165* **`setPermissionMode()` / `set_permission_mode()`**: переключает режим разрешений165* **`setPermissionMode()` / `set_permission_mode()`**: переключает режим разрешений

166 166 

167TypeScript также имеет `applyFlagSettings()` и `updateSettings()`:167TypeScript также имеет `applyFlagSettings()` и `updateSettings()`:

Details

192 192 

193Контейнер требует языковой среды выполнения вашего SDK:193Контейнер требует языковой среды выполнения вашего SDK:

194 194 

195* Python 3.10+ для Python SDK или Node.js 18+ для TypeScript SDK195* Python 3.10+ для Python SDK или Node.js 18.14+ для TypeScript SDK

196* Оба SDK TypeScript и Python поставляются с нативным бинарным файлом Claude Code для большинства установок, и порожденный CLI не требует отдельной установки Node.js. См. [примечание об установке в quickstart](https://code.claude.com/docs/ru/agent-sdk/quickstart.md) для установок, которым требуется отдельная нативная установка Claude Code.196* Оба SDK TypeScript и Python поставляются с нативным бинарным файлом Claude Code для большинства установок, и порожденный CLI не требует отдельной установки Node.js. См. [примечание об установке в quickstart](https://code.claude.com/docs/ru/agent-sdk/quickstart.md) для установок, которым требуется отдельная нативная установка Claude Code.

197 197 

198Поставляемый бинарный файл привязан к версии пакета SDK, поэтому обновление SDK — это способ обновления CLI. SDK следует semver: берите патч-релизы непрерывно и просмотрите [TypeScript](https://github.com/anthropics/claude-agent-sdk-typescript/blob/main/CHANGELOG.md) или [Python](https://github.com/anthropics/claude-agent-sdk-python/blob/main/CHANGELOG.md) changelog перед тем, как брать минорный релиз.198Поставляемый бинарный файл привязан к версии пакета SDK, поэтому обновление SDK — это способ обновления CLI. SDK следует semver: берите патч-релизы непрерывно и просмотрите [TypeScript](https://github.com/anthropics/claude-agent-sdk-typescript/blob/main/CHANGELOG.md) или [Python](https://github.com/anthropics/claude-agent-sdk-python/blob/main/CHANGELOG.md) changelog перед тем, как брать минорный релиз.


335 335 

336| Ограничение | Что делать |336| Ограничение | Что делать |

337| - | - |337| - | - |

338| Отсутствие тайм-аута сеанса верхнего уровня | Сеанс не истекает автоматически. Установите `maxTurns` в TypeScript или `max_turns` в Python, чтобы ограничить количество раундов использования инструментов, которые агент выполняет перед остановкой. |338| Отсутствие таймаута сессии верхнего уровня | Сессия не истекает автоматически. Установите `maxTurns` в TypeScript или `max_turns` в Python, чтобы ограничить количество [ходов](https://code.claude.com/docs/ru/agent-sdk/agent-loop.md#turns-and-messages), которые агент выполняет перед остановкой. |

339| Рост памяти при длительных сеансах | Ограничьте длину сеанса или периодически перезапускайте подпроцессы. См. [Масштабирование и параллелизм](#scaling-and-concurrency). |339| Рост памяти при длительных сеансах | Ограничьте длину сеанса или периодически перезапускайте подпроцессы. См. [Масштабирование и параллелизм](#scaling-and-concurrency). |

340| Большие параллельные развертывания подагентов могут достичь ограничений скорости | Разбивайте работу на меньшие пакеты вместо выполнения одного широкого развертывания. |340| Большие параллельные развертывания подагентов могут достичь ограничений скорости | Разбивайте работу на меньшие пакеты вместо выполнения одного широкого развертывания. |

341| Отсутствие крайнего срока по времени стены для каждого подагента | Ограничьте каждый [подагент](https://code.claude.com/docs/ru/agent-sdk/subagents.md) с помощью `maxTurns` в его `AgentDefinition`. `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS` устанавливает сторожевой таймер зависания, который срабатывает, когда подагент перестает выдавать выходные данные; это не крайний срок общего времени выполнения. |341| Отсутствие крайнего срока по времени стены для каждого подагента | Ограничьте каждый [подагент](https://code.claude.com/docs/ru/agent-sdk/subagents.md) с помощью `maxTurns` в его `AgentDefinition`. `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS` устанавливает сторожевой таймер зависания, который срабатывает, когда подагент перестает выдавать выходные данные; это не крайний срок общего времени выполнения. |

Details

425 425 

426Установите `includeGitInstructions` в `false`, чтобы исключить встроенные инструкции для коммитов и pull request, которые являются частью описания инструмента Bash и достигают Claude даже при пользовательском `systemPrompt`. Однако при минимальном варианте по умолчанию, пользовательском `systemPrompt` или пользовательском агенте основного потока с собственным промптом сессия начинается без снимка статуса git.426Установите `includeGitInstructions` в `false`, чтобы исключить встроенные инструкции для коммитов и pull request, которые являются частью описания инструмента Bash и достигают Claude даже при пользовательском `systemPrompt`. Однако при минимальном варианте по умолчанию, пользовательском `systemPrompt` или пользовательском агенте основного потока с собственным промптом сессия начинается без снимка статуса git.

427 427 

428Если вы установите `CLAUDE_CODE_DISABLE_ATTACHMENTS`, Claude Code также отправляет упоминания файлов `@` как простой текст вместо их раскрытия в содержимое файла. Список доступных субагентов и уведомления о фоновых задачах всё ещё поступают. Чтобы отключить только раскрытие упоминаний файлов `@`, вместо этого установите [`CLAUDE_CODE_DISABLE_FILE_MENTIONS=1`](https://code.claude.com/docs/ru/env-vars#variables) в Claude Code v2.1.299 или новее. Тогда Claude получает упомянутые пути и примечание о том, что их нужно прочитать с помощью файловых инструментов.428* Если вы установите `CLAUDE_CODE_DISABLE_ATTACHMENTS`, Claude Code также отправляет упоминания файлов `@` как простой текст вместо их раскрытия в содержимое файла. Список доступных субагентов и уведомления о фоновых задачах всё ещё поступают.

429* Чтобы отключить только раскрытие упоминаний файлов `@`, вместо этого установите [`CLAUDE_CODE_DISABLE_FILE_MENTIONS=1`](https://code.claude.com/docs/ru/env-vars#variables) в Claude Code v2.1.299 или новее. Тогда Claude получает упомянутые пути и примечание о том, что их нужно прочитать с помощью файловых инструментов, а ваши хуки `PreToolUse` видят каждое чтение файла как вызов инструмента.

429 430 

430Следующий пример предназначен для агента, который несёт собственные правила коммитов в `append`. Он устанавливает оба ключа `attribution` на пустые строки для удаления трейлера и нижнего колонтитула и отключает `includeGitInstructions`, чтобы собственные инструкции рабочего процесса коммитов Claude Code не конкурировали с вашими:431Следующий пример предназначен для агента, который несёт собственные правила коммитов в `append`. Он устанавливает оба ключа `attribution` на пустые строки для удаления трейлера и нижнего колонтитула и отключает `includeGitInstructions`, чтобы собственные инструкции рабочего процесса коммитов Claude Code не конкурировали с вашими:

431 432 

Details

43Примените активный [режим разрешений](#permission-modes):43Примените активный [режим разрешений](#permission-modes):

44 44 

45* В режиме `bypassPermissions` Claude Code одобряет все, что достигает этого шага, кроме распознанных [удалений по критическим путям](https://code.claude.com/docs/ru/permission-modes.md#critical-paths) и команд Bash с пометкой [`Dangerous rm operation not ruled out`](https://code.claude.com/docs/ru/permission-modes#dangerous-rm-operation-not-ruled-out), которые вместо этого передаются дальше.45* В режиме `bypassPermissions` Claude Code одобряет все, что достигает этого шага, кроме распознанных [удалений по критическим путям](https://code.claude.com/docs/ru/permission-modes.md#critical-paths) и команд Bash с пометкой [`Dangerous rm operation not ruled out`](https://code.claude.com/docs/ru/permission-modes#dangerous-rm-operation-not-ruled-out), которые вместо этого передаются дальше.

46 * Чтобы выполнять такие удаления без запроса подтверждения, см. [Отключение запроса подтверждения для удалений по критическим путям](https://code.claude.com/docs/ru/permission-modes.md#turn-off-the-critical-path-removal-prompt-in-bypasspermissions-mode).

46* В режиме `acceptEdits` Claude Code одобряет операции с файлами, перечисленные в разделе [Accept edits mode](#accept-edits-mode-acceptedits).47* В режиме `acceptEdits` Claude Code одобряет операции с файлами, перечисленные в разделе [Accept edits mode](#accept-edits-mode-acceptedits).

47* В режиме `plan` Claude Code отправляет инструменты редактирования файлов в ваш callback `canUseTool` независимо от правил allow.48* В режиме `plan` Claude Code отправляет инструменты редактирования файлов в ваш callback `canUseTool` независимо от правил allow.

48* В других режимах запрос передается дальше.49* В других режимах запрос передается дальше.


305> `allowed_tools` не ограничивает этот режим. Каждый инструмент одобрен, а не только те, которые вы указали. Эти элементы управления по-прежнему применяются:306> `allowed_tools` не ограничивает этот режим. Каждый инструмент одобрен, а не только те, которые вы указали. Эти элементы управления по-прежнему применяются:

306>307>

307> * Правила отклонения, явные правила `ask` и hooks оцениваются перед проверкой режима и могут по-прежнему блокировать инструмент.308> * Правила отклонения, явные правила `ask` и hooks оцениваются перед проверкой режима и могут по-прежнему блокировать инструмент.

308> * Инструменты коннектора, [установленные вашей организацией на `ask`](https://code.claude.com/docs/ru/mcp#organization-controls-on-connector-tools), инструменты, требующие взаимодействия с пользователем, и распознанные [удаления критических путей](https://code.claude.com/docs/ru/permission-modes.md#critical-paths) по-прежнему переходят к вашему обратному вызову `canUseTool`. Проверка, которая распознает такие удаления, [может пропустить некоторые команды](https://code.claude.com/docs/ru/permission-modes.md#critical-paths). Вне [облачной сессии](https://code.claude.com/docs/ru/claude-code-on-the-web.md) вызовы пользовательских инструментов, которые ваше приложение [помечает как `always_ask`](https://code.claude.com/docs/ru/agent-sdk/custom-tools#require-approval-for-specific-tools), также переходят к обратному вызову.309> * Инструменты коннектора, [установленные вашей организацией на `ask`](https://code.claude.com/docs/ru/mcp#organization-controls-on-connector-tools), инструменты, требующие взаимодействия с пользователем, и распознанные [удаления критических путей](https://code.claude.com/docs/ru/permission-modes.md#critical-paths) по-прежнему переходят к вашему обратному вызову `canUseTool`. Проверка, которая распознает такие удаления, [может пропустить некоторые команды](https://code.claude.com/docs/ru/permission-modes.md#critical-paths), а также вы можете [отключить запрос подтверждения при удалении критических путей](https://code.claude.com/docs/ru/permission-modes.md#turn-off-the-critical-path-removal-prompt-in-bypasspermissions-mode). Вне [облачной сессии](https://code.claude.com/docs/ru/claude-code-on-the-web.md) вызовы пользовательских инструментов, которые ваше приложение [помечает как `always_ask`](https://code.claude.com/docs/ru/agent-sdk/custom-tools#require-approval-for-specific-tools), также переходят к обратному вызову.

309> * [Защита обмена сообщениями между сеансами](https://code.claude.com/docs/ru/permission-modes.md#skip-all-checks-with-bypasspermissions-mode) по-прежнему применяется.310> * [Защита обмена сообщениями между сеансами](https://code.claude.com/docs/ru/permission-modes.md#skip-all-checks-with-bypasspermissions-mode) по-прежнему применяется.

310 311 

311#### Режим планирования (`plan`)312#### Режим планирования (`plan`)

Details

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

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

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

883| `max_turns` | `int \| None` | `None` | Максимальное количество агентских ходов (циклов использования инструментов) |883| `max_turns` | `int \| None` | `None` | Максимальное количество агентских [ходов](https://code.claude.com/docs/ru/agent-sdk/agent-loop.md#turns-and-messages) |

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

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

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


2568 2568 

2569### Agent2569### Agent

2570 2570 

2571**Имя инструмента:** `Agent`. Предыдущее имя `Task` по-прежнему принимается как псевдоним, и список `tools` в инициализации [`SystemMessage`](#systemmessage) сообщает об этом инструменте как `Task` для обратной совместимости.2571**Имя инструмента:** `Agent`. Предыдущее имя `Task` по-прежнему принимается как псевдоним, когда этот инструмент доступен в сессии.

2572 

2573Список `tools` в инициализации [`SystemMessage`](#systemmessage) сообщает об этом инструменте как `Task` для обратной совместимости.

2572 2574 

2573**Ввод:**2575**Ввод:**

2574 2576 


3642| `deniedDomains` | `list[str]` | `[]` | Имена доменов, к которым процессы в sandbox не могут получить доступ. Имеет приоритет над `allowedDomains` |3644| `deniedDomains` | `list[str]` | `[]` | Имена доменов, к которым процессы в sandbox не могут получить доступ. Имеет приоритет над `allowedDomains` |

3643| `allowManagedDomainsOnly` | `bool` | `False` | Только управляемые параметры: когда установлено в управляемых параметрах, игнорировать `allowedDomains` и `WebFetch(domain:...)` правила разрешений из источников неуправляемых параметров. Не имеет эффекта при установке через параметры SDK |3645| `allowManagedDomainsOnly` | `bool` | `False` | Только управляемые параметры: когда установлено в управляемых параметрах, игнорировать `allowedDomains` и `WebFetch(domain:...)` правила разрешений из источников неуправляемых параметров. Не имеет эффекта при установке через параметры SDK |

3644| `allowUnixSockets` | `list[str]` | `[]` | Только macOS: пути Unix socket, к которым могут получить доступ процессы, например Docker socket. Игнорируется на Linux |3646| `allowUnixSockets` | `list[str]` | `[]` | Только macOS: пути Unix socket, к которым могут получить доступ процессы, например Docker socket. Игнорируется на Linux |

3645| `allowAllUnixSockets` | `bool` | `False` | Разрешить доступ ко всем Unix sockets |3647| `allowAllUnixSockets` | `bool` | `False` | Разрешить доступ ко всем Unix sockets, а на Linux — к сокетам VM (`AF_VSOCK`) |

3646| `allowLocalBinding` | `bool` | `False` | Разрешить процессам привязываться к локальным портам (например, для dev серверов) |3648| `allowLocalBinding` | `bool` | `False` | Разрешить процессам привязываться к локальным портам (например, для dev серверов) |

3647| `allowMachLookup` | `list[str]` | `[]` | Только macOS: имена сервисов XPC/Mach для разрешения. Поддерживает завершающий подстановочный знак |3649| `allowMachLookup` | `list[str]` | `[]` | Только macOS: имена сервисов XPC/Mach для разрешения. Поддерживает завершающий подстановочный знак |

3648| `httpProxyPort` | `int` | `None` | Порт HTTP прокси для сетевых запросов |3650| `httpProxyPort` | `int` | `None` | Порт HTTP прокси для сетевых запросов |

Details

16 16 

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

18 18 

19* **Node.js 18+** или **Python 3.10+**19* **Node.js 18.14+** или **Python 3.10+**

20* **Учётная запись Anthropic**. Если у вас её нет, [зарегистрируйтесь здесь](https://platform.claude.com/).20* **Учётная запись Anthropic**. Если у вас её нет, [зарегистрируйтесь здесь](https://platform.claude.com/).

21 21 

22## Настройка22## Настройка

Details

118 118 

119### Обработка оборванного потока119### Обработка оборванного потока

120 120 

121Если поток обрывается посреди сообщения, например когда вы прерываете ход или разрывается соединение, вы всё равно получаете `message_stop` этого сообщения до завершения хода. Оборванный текстовый блок или блок размышлений также получает свой `content_block_stop`. Оборванный вызов инструмента его не получает, поэтому если `message_stop` поступает, пока блок вызова инструмента ещё открыт, считайте входные данные этого вызова неполными.121Если поток обрывается посреди сообщения, вы всё равно получаете `message_stop` этого сообщения до завершения хода. Причинами обрыва потока могут быть прерванный ход, разрыв соединения и переключение на непотоковый запрос как резервный вариант. Перед этим `message_stop` могут отсутствовать `content_block_stop` и `message_delta`:

122 

123* **`content_block_stop`**: поступает для блока, который был открыт, если только этот блок не является вызовом инструмента. Если `message_stop` поступает, пока блок вызова инструмента ещё открыт, считайте входные данные этого вызова неполными.

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

122 125 

123До Claude Code v2.1.290 оборванный поток мог завершить ход без `message_stop`, поэтому ответ, который вы отображаете на основе событий потока, мог оставаться показанным как выполняющийся. TypeScript Agent SDK включает Claude Code v2.1.290 или новее начиная с v0.3.290, а Python Agent SDK — начиная с v0.2.164. Если ответ остается показанным как выполняющийся после завершения хода, обновите SDK.126До Claude Code v2.1.290 оборванный поток мог завершить ход без `message_stop`, поэтому ответ, который вы отображаете на основе событий потока, мог оставаться показанным как выполняющийся. TypeScript Agent SDK включает Claude Code v2.1.290 или новее начиная с v0.3.290, а Python Agent SDK — начиная с v0.2.164. Если ответ остается показанным как выполняющийся после завершения хода, обновите SDK.

124 127 

Details

105 105 

106Возвращает `Promise<`[`WarmQuery`](#warmquery)`>`, который разрешается после того, как подпроцесс запущен и завершил инициализационное рукопожатие.106Возвращает `Promise<`[`WarmQuery`](#warmquery)`>`, который разрешается после того, как подпроцесс запущен и завершил инициализационное рукопожатие.

107 107 

108Из сообщений [`hook_progress`](#sdkhookprogressmessage), которые хук `SessionStart` или `Setup` отправляет до завершения рукопожатия, вы получаете только самое новое, содержащее весь вывод хука на данный момент. `startup()` удерживает это сообщение, сообщение хука [`hook_started`](#sdkhookstartedmessage) и всё остальное, что подпроцесс отправляет до завершения рукопожатия. Удержанные сообщения доходят до вас, как только вы вызываете `.query()` на `WarmQuery` и перебираете результат.

109 

108#### Пример110#### Пример

109 111 

110Вызовите `startup()` рано, например при загрузке приложения, затем вызовите `.query()` на возвращённом дескрипторе, когда промпт будет готов. Это выносит запуск подпроцесса и инициализацию из критического пути.112Вызовите `startup()` рано, например при загрузке приложения, затем вызовите `.query()` на возвращённом дескрипторе, когда промпт будет готов. Это выносит запуск подпроцесса и инициализацию из критического пути.


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

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

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

527| `maxTurns` | `number` | `undefined` | Максимальное число ходов агента (циклов вызова инструментов) |529| `maxTurns` | `number` | `undefined` | Максимальное количество агентных [ходов](https://code.claude.com/docs/ru/agent-sdk/agent-loop.md#turns-and-messages) |

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

529| `model` | `string` | Значение по умолчанию из CLI | Псевдоним модели Claude или полное имя модели. См. [допустимые значения и идентификаторы для конкретных провайдеров](https://code.claude.com/docs/ru/model-config.md#available-models) |531| `model` | `string` | Значение по умолчанию из CLI | Псевдоним модели Claude или полное имя модели. См. [допустимые значения и идентификаторы для конкретных провайдеров](https://code.claude.com/docs/ru/model-config.md#available-models) |

530| `onElicitation` | `(request: ElicitationRequest, options: { signal: AbortSignal }) => Promise<ElicitationResult>` | `undefined` | Колбэк для обработки запросов elicitation от MCP. Вызывается, когда MCP-сервер запрашивает ввод пользователя и ни один хук не обработал запрос раньше. Если колбэк не указан, необработанные запросы elicitation автоматически отклоняются |532| `onElicitation` | `(request: ElicitationRequest, options: { signal: AbortSignal }) => Promise<ElicitationResult>` | `undefined` | Колбэк для обработки запросов elicitation от MCP. Вызывается, когда MCP-сервер запрашивает ввод пользователя и ни один хук не обработал запрос раньше. Если колбэк не указан, необработанные запросы elicitation автоматически отклоняются |


1403 };1405 };

1404```1406```

1405 1407 

1408Если вы возвращаете `allow` с более чем 4096 элементами в `updatedPermissions`, Claude Code считает результат недопустимым и отклоняет вызов инструмента. Каждое обновление считается одним элементом, как и каждая запись в его списке `rules` или `directories`. Сообщение об отказе заканчивается на `updatedPermissions may hold at most 4096 updates, rules and directories in all`. Чтобы вызов был разрешён, возвращайте не более 4096 элементов.

1409 

1406### `ToolConfig`1410### `ToolConfig`

1407 1411 

1408Конфигурация поведения встроенных инструментов.1412Конфигурация поведения встроенных инструментов.


1464 1468 

1465#### `McpSdkServerConfigWithInstance`1469#### `McpSdkServerConfigWithInstance`

1466 1470 

1467Конфигурация внутрипроцессного MCP-сервера — сервера, который создаёт [`createSdkMcpServer()`](#createsdkmcpserver) и который работает внутри процесса вашего приложения. Это объект, возвращаемый `createSdkMcpServer()`, плюс необязательный список `tools` из записей [`McpServerToolPolicy`](#mcpservertoolpolicy), который вы добавляете сами. Чтобы требовать подтверждения для вызовов одного из инструментов сервера или запретить их, добавьте запись с именем этого инструмента.1471Конфигурация внутрипроцессного MCP-сервера. Это то, что возвращает [`createSdkMcpServer()`](#createsdkmcpserver), плюс необязательный список `tools` из добавляемых вами записей [`McpServerToolPolicy`](#mcpservertoolpolicy).

1468 1472 

1469```typescript theme={null}1473```typescript theme={null}

1470type McpSdkServerConfigWithInstance = {1474type McpSdkServerConfigWithInstance = {


1476};1480};

1477```1481```

1478 1482 

1479Чтобы задать политику, разверните объект, возвращаемый `createSdkMcpServer()`, в новый объект в `mcpServers` и добавьте список `tools` в этот новый объект. Параметр `tools` самой функции `createSdkMcpServer()` — это другой список, который содержит определения инструментов и не принимает записи политик. Список политик требует Agent SDK v0.3.301 или новее, а то, что делает каждое значение `permission_policy`, описано в [`McpServerToolPolicy`](#mcpservertoolpolicy).1483Чтобы требовать подтверждения для вызовов одного из инструментов сервера или запрещать их, добавьте запись политики с именем инструмента. Разверните то, что возвращает `createSdkMcpServer()`, в объект внутри `mcpServers` и поместите запись в список `tools` этого объекта, потому что параметр `tools` функции принимает определения инструментов, а не записи политики. Список политик требует Agent SDK v0.3.301 или новее, а в [`McpServerToolPolicy`](#mcpservertoolpolicy) описано, что делает каждое значение `permission_policy`.

1480 1484 

1481Этот пример заранее одобряет все инструменты сервера `records` с помощью подстановочного знака в `allowedTools`, а затем помечает `delete_record` как `always_ask`, чтобы вызовы этого инструмента всё равно направлялись в `canUseTool`. Благодаря аннотации `destructiveHint: true` вызов по-прежнему доходит до callback-функции, если сессия работает в режиме `auto`, где иначе его мог бы одобрить [классификатор](https://code.claude.com/docs/ru/permission-modes.md#eliminate-prompts-with-auto-mode) авторежима.1485В этом скрипте подстановочный знак в `allowedTools` заранее одобряет все инструменты сервера `records`, но `delete_record` помечен как `always_ask`, поэтому вызовы к нему всё равно попадают в `canUseTool`. Благодаря аннотации `destructiveHint: true` вызов по-прежнему доходит до обратного вызова, если сессия работает в режиме `auto`, где иначе его мог бы одобрить [классификатор](https://code.claude.com/docs/ru/permission-modes.md#eliminate-prompts-with-auto-mode) авторежима.

1482 1486 

1483```typescript theme={null}1487```typescript theme={null}

1484import { query, tool, createSdkMcpServer } from "@anthropic-ai/claude-agent-sdk";1488import { query, tool, createSdkMcpServer } from "@anthropic-ai/claude-agent-sdk";


1517}1521}

1518```1522```

1519 1523 

1520Когда Claude вызывает инструмент, скрипт выводит `Approval requested for mcp__records__delete_record` до запуска инструмента `delete_record`, хотя в противном случае запись `allowedTools` одобрила бы этот вызов.1524Когда Claude вызывает `delete_record`, скрипт выводит `Approval requested for mcp__records__delete_record`.

1521 1525 

1522Чтобы изменить или снять политику инструмента во время работы сессии, передайте конфигурацию сервера с новым значением `tools` в [`setMcpServers()`](#mcpsetserversresult). Переданное значение `tools` вступает в силу со следующего вызова Claude к инструментам этого сервера:1526Чтобы изменить или снять политику инструмента во время работы сессии, передайте конфигурацию сервера с новым значением `tools` в [`setMcpServers()`](#mcpsetserversresult). Переданное значение `tools` вступает в силу со следующего вызова Claude к инструментам этого сервера:

1523 1527 


1556 1560 

1557##### Режимы разрешений, которые могут одобрить вызов `always_ask`1561##### Режимы разрешений, которые могут одобрить вызов `always_ask`

1558 1562 

1559В режимах `auto`, `plan` и `bypassPermissions` вызов инструмента, помеченного [`always_ask`](#permission-policy-values), может быть одобрен до того, как дойдёт до вашей callback-функции `canUseTool`. Найдите режим своей сессии в этом списке, чтобы узнать, когда происходит это одобрение и что задать, чтобы вызов всё равно доходил до вашей callback-функции:1563В режимах `auto`, `plan` и `bypassPermissions` вызов инструмента, помеченного [`always_ask`](#permission-policy-values), может быть одобрен до того, как достигнет вашего обратного вызова `canUseTool`.

1560 1564 

1561* **`auto`**: [классификатор](https://code.claude.com/docs/ru/permission-modes.md#eliminate-prompts-with-auto-mode) авторежима проверяет вызов и может его разрешить. Чтобы каждый вызов доходил до вашей callback-функции в режиме `auto`, установите `destructiveHint: true` в [аннотациях](#toolannotations) инструмента1565* **`auto`**: [классификатор](https://code.claude.com/docs/ru/permission-modes.md#eliminate-prompts-with-auto-mode) авторежима проверяет вызов и может его разрешить. Чтобы каждый вызов доходил до вашей callback-функции в режиме `auto`, установите `destructiveHint: true` в [аннотациях](#toolannotations) инструмента

1562* **`plan`**: пока [авторежим доступен](https://code.claude.com/docs/ru/permission-modes.md#eliminate-prompts-with-auto-mode) для сессии, вызовы инструмента `always_ask` с аннотацией `readOnlyHint: true` направляются в классификатор авторежима, который может их разрешить. Вызовы других инструментов `always_ask` доходят до вашей callback-функции. Чтобы вызовы инструмента только для чтения тоже доходили до вашей callback-функции, добавьте `destructiveHint: true` в аннотации этого инструмента наряду с `readOnlyHint: true`. Либо установите [`useAutoModeDuringPlan`](https://code.claude.com/docs/ru/settings-reference#useautomodeduringplan) в `false`, что отключает классификатор во время планирования1566* **`plan`**: пока [авторежим доступен](https://code.claude.com/docs/ru/permission-modes.md#eliminate-prompts-with-auto-mode) для сессии, вызовы инструмента `always_ask` с аннотацией `readOnlyHint: true` направляются в классификатор авторежима, который может их разрешить. Вызовы других инструментов `always_ask` доходят до вашей callback-функции. Чтобы вызовы инструмента только для чтения тоже доходили до вашей callback-функции, добавьте `destructiveHint: true` в аннотации этого инструмента наряду с `readOnlyHint: true`. Либо установите [`useAutoModeDuringPlan`](https://code.claude.com/docs/ru/settings-reference#useautomodeduringplan) в `false`, что отключает классификатор во время планирования


1692 1696 

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

1694 1698 

1695`agent_id` определяет субагента, создавшего сообщение, и отсутствует у сообщений основного потока. Значение совпадает с `task_id` в событии [`task_started`](#sdktaskstartedmessage) и других событиях задачи этого субагента и не меняется, когда субагент [возобновляется](https://code.claude.com/docs/ru/agent-sdk/subagents.md#resume-subagents). Поле требует Agent SDK v0.3.292 или новее.1699`agent_id` идентифицирует субагента, создавшего сообщение, и отсутствует у сообщений основного потока. Значение совпадает с `task_id` в событии [`task_started`](#sdktaskstartedmessage) и других событиях задачи этого субагента и не меняется, когда субагент [возобновляется](https://code.claude.com/docs/ru/agent-sdk/subagents.md#resume-subagents). В сообщениях от [вложенного субагента](https://code.claude.com/docs/ru/sub-agents.md#let-subagents-spawn-their-own-subagents) оно указывает на вложенного субагента, а не на субагента, который его запустил. Поле требует Agent SDK v0.3.292 или новее.

1696 1700 

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

1698 1702 


3271 3275 

3272### Agent3276### Agent

3273 3277 

3274**Имя инструмента:** `Agent`. Предыдущее имя `Task` всё ещё принимается как псевдоним, и массив `tools` в сообщении инициализации [`SDKSystemMessage`](#sdksystemmessage) в настоящее время перечисляет этот инструмент как `Task` для обратной совместимости.3278**Имя инструмента:** `Agent`. Предыдущее имя `Task` всё ещё принимается как псевдоним, когда этот инструмент доступен в сессии.

3279 

3280Массив `tools` в сообщении инициализации [`SDKSystemMessage`](#sdksystemmessage) перечисляет этот инструмент как `Task` для обратной совместимости.

3275 3281 

3276> [!NOTE]3282> [!NOTE]

3277>3283>


4008 4014 

4009### Agent4015### Agent

4010 4016 

4011**Имя инструмента:** `Agent`. Прежнее имя `Task` по-прежнему принимается как псевдоним, а массив `tools` в init-сообщении [`SDKSystemMessage`](#sdksystemmessage) в настоящее время указывает этот инструмент как `Task` для обратной совместимости.4017**Имя инструмента:** `Agent`. Прежнее имя `Task` по-прежнему принимается как псевдоним, если этот инструмент доступен в сессии.

4012 4018 

4013```typescript theme={null}4019```typescript theme={null}

4014type AgentOutput =4020type AgentOutput =


5208 5214 

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

5210 5216 

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

5212 5218 

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

5214 5220 


5551 5557 

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

5553 5559 

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

5561 

5554```typescript theme={null}5562```typescript theme={null}

5555type SDKHookStartedMessage = {5563type SDKHookStartedMessage = {

5556 type: "system";5564 type: "system";


6070| `allowManagedDomainsOnly` | `boolean` | `false` | Только управляемые параметры. Когда установлено в [управляемых параметрах](https://code.claude.com/docs/ru/managed-settings.md), только записи `allowedDomains` и правила разрешения `WebFetch(domain:...)` из управляемых параметров учитываются, а записи разрешения из пользовательских, проектных или локальных параметров игнорируются. Из SDK передайте это через опцию [`managedSettings`](#options) |6078| `allowManagedDomainsOnly` | `boolean` | `false` | Только управляемые параметры. Когда установлено в [управляемых параметрах](https://code.claude.com/docs/ru/managed-settings.md), только записи `allowedDomains` и правила разрешения `WebFetch(domain:...)` из управляемых параметров учитываются, а записи разрешения из пользовательских, проектных или локальных параметров игнорируются. Из SDK передайте это через опцию [`managedSettings`](#options) |

6071| `allowLocalBinding` | `boolean` | `false` | Разрешите процессам привязываться к локальным портам (например, для dev серверов) |6079| `allowLocalBinding` | `boolean` | `false` | Разрешите процессам привязываться к локальным портам (например, для dev серверов) |

6072| `allowUnixSockets` | `string[]` | `[]` | Пути Unix socket, к которым процессы могут получить доступ (например, Docker socket) |6080| `allowUnixSockets` | `string[]` | `[]` | Пути Unix socket, к которым процессы могут получить доступ (например, Docker socket) |

6073| `allowAllUnixSockets` | `boolean` | `false` | Разрешите доступ ко всем Unix sockets |6081| `allowAllUnixSockets` | `boolean` | `false` | Разрешите доступ ко всем Unix sockets, а на Linux — и к сокетам виртуальных машин (`AF_VSOCK`) |

6074| `httpProxyPort` | `number` | `undefined` | Порт HTTP прокси для сетевых запросов |6082| `httpProxyPort` | `number` | `undefined` | Порт HTTP прокси для сетевых запросов |

6075| `socksProxyPort` | `number` | `undefined` | Порт SOCKS прокси для сетевых запросов |6083| `socksProxyPort` | `number` | `undefined` | Порт SOCKS прокси для сетевых запросов |

6076 6084 

agent-view.md +8 −2

Details

320 320 

321#### Возврат прошлой сессии321#### Возврат прошлой сессии

322 322 

323Чтобы вернуть сессию в Claude Code v2.1.212 или новее, введите `/resume` в [поле отправки](#dispatch-an-agent-from-agent-view). Откроется окно выбора с прошлыми сессиями репозитория, из которого вы открыли agent view, начиная с самых новых, включая сессии, удалённые из списка. Сессии, у которых уже есть строка, не отображаются. Нажмите `Enter`, чтобы возобновить выбранную сессию как фоновую, и она снова появится в списке строкой.323Чтобы вернуть сессию, введите `/resume` в [поле отправки](#dispatch-an-agent-from-agent-view). Откроется окно выбора с прошлыми сессиями репозитория, из которого вы открыли agent view, начиная с самых новых, включая сессии, удалённые из списка. Сессии, у которых уже есть строка, не отображаются. Нажмите `Enter`, чтобы возобновить выбранную сессию как фоновую, и она снова появится в списке строкой.

324 324 

325`/resume` завершается с ошибкой `isn't available in agent view`, когда:325`/resume` завершается с ошибкой `isn't available in agent view`, когда:

326 326 


410* `/logout` выполняет выход из учётной записи410* `/logout` выполняет выход из учётной записи

411* `/model`, `/effort` и `/fast` задают [то, с чем запускаются сессии, которые вы отправите далее](#set-the-model-effort-and-fast-mode). Для `/effort` и `/fast` требуется Claude Code v2.1.299 или новее.411* `/model`, `/effort` и `/fast` задают [то, с чем запускаются сессии, которые вы отправите далее](#set-the-model-effort-and-fast-mode). Для `/effort` и `/fast` требуется Claude Code v2.1.299 или новее.

412* `/login` открывает диалоговое окно входа, чтобы вы могли войти снова без подключения к сессии412* `/login` открывает диалоговое окно входа, чтобы вы могли войти снова без подключения к сессии

413* `/resume` без аргументов или его псевдоним `/continue` открывает список прошлых сессий репозитория, чтобы [вернуть одну из них](#bring-back-a-past-session) как фоновую сессию. Требуется Claude Code v2.1.212 или новее413* `/resume` без аргументов или его псевдоним `/continue` открывает список прошлых сессий репозитория, чтобы [вернуть одну из них](#bring-back-a-past-session) как фоновую сессию

414 414 

415Скиллы, ваши собственные команды и встроенные команды, разворачивающиеся в промпт, такие как `/init`, отправляются в новую фоновую сессию как её первый промпт. Подсказка `isn't available in agent view` означает, что введённая вами встроенная команда не была выполнена. Чтобы выполнить её, [подключитесь к сессии](#attach-to-a-session) и введите её там. Всё, что вы ввели, остаётся в поле ввода рядом с подсказкой, чтобы вы могли это отредактировать.415Скиллы, ваши собственные команды и встроенные команды, разворачивающиеся в промпт, такие как `/init`, отправляются в новую фоновую сессию как её первый промпт. Подсказка `isn't available in agent view` означает, что введённая вами встроенная команда не была выполнена. Чтобы выполнить её, [подключитесь к сессии](#attach-to-a-session) и введите её там. Всё, что вы ввели, остаётся в поле ввода рядом с подсказкой, чтобы вы могли это отредактировать.

416 416 


454 454 

455Когда [agent view отключён](#turn-off-agent-view), `/fork` вместо копирования сессии запускает [ответвлённого субагента](https://code.claude.com/docs/ru/sub-agents.md#fork-the-current-conversation).455Когда [agent view отключён](#turn-off-agent-view), `/fork` вместо копирования сессии запускает [ответвлённого субагента](https://code.claude.com/docs/ru/sub-agents.md#fork-the-current-conversation).

456 456 

457##### Промпт для копии и открытие её сессии

458 

457Передайте промпт, например `/fork open a draft pull request with the work so far`, и копия сразу начнёт над ним работать. Без промпта копия ждёт первой инструкции: выделите её строку в `claude agents` и нажмите `Space`, чтобы отправить инструкцию, или выполните `claude attach <id>`. Пока копия ждёт, в выделенной строке отображается `space to send it a prompt`.459Передайте промпт, например `/fork open a draft pull request with the work so far`, и копия сразу начнёт над ним работать. Без промпта копия ждёт первой инструкции: выделите её строку в `claude agents` и нажмите `Space`, чтобы отправить инструкцию, или выполните `claude attach <id>`. Пока копия ждёт, в выделенной строке отображается `space to send it a prompt`.

458 460 

459Подтверждение `/fork` — это одна строка, показывающая состояние копии, например `session running`, имя её строки в agent view и её ID сессии для `claude attach`. Щёлкните имя, чтобы переключиться на копию: текущая сессия уходит в фон, как при нажатии `←`, а agent view открывает сессию копии.461Подтверждение `/fork` — это одна строка, показывающая состояние копии, например `session running`, имя её строки в agent view и её ID сессии для `claude attach`. Щёлкните имя, чтобы переключиться на копию: текущая сессия уходит в фон, как при нажатии `←`, а agent view открывает сессию копии.

460 462 

463##### Где запускается копия

464 

461Кроме случаев, когда копия [редактирует файлы на месте](#how-file-edits-are-isolated), Claude Code указывает ей создать собственный worktree перед внесением изменений в код. Вне Git-репозитория такую инструкцию получает только копия, вынесенная из worktree, созданного хуком; без [хука `WorktreeCreate`](https://code.claude.com/docs/ru/hooks#worktreecreate) копия редактирует файлы на месте. Копии, вынесенной из вашего worktree, также указывается никогда не редактировать файлы в этом worktree, не запускать в нём команды и не входить в него, независимо от настройки изоляции.465Кроме случаев, когда копия [редактирует файлы на месте](#how-file-edits-are-isolated), Claude Code указывает ей создать собственный worktree перед внесением изменений в код. Вне Git-репозитория такую инструкцию получает только копия, вынесенная из worktree, созданного хуком; без [хука `WorktreeCreate`](https://code.claude.com/docs/ru/hooks#worktreecreate) копия редактирует файлы на месте. Копии, вынесенной из вашего worktree, также указывается никогда не редактировать файлы в этом worktree, не запускать в нём команды и не входить в него, независимо от настройки изоляции.

462 466 

463Место запуска копии зависит от того, где выполняется текущая сессия:467Место запуска копии зависит от того, где выполняется текущая сессия:


467* Если вы запустили сессию внутри связанного worktree репозитория, у которого есть основное рабочее дерево, копия запускается в этом основном рабочем дереве с тем же правилом о собственном worktree, но без инструкции о ветке. Подтверждение и здесь заканчивается на `runs in the origin tree`.471* Если вы запустили сессию внутри связанного worktree репозитория, у которого есть основное рабочее дерево, копия запускается в этом основном рабочем дереве с тем же правилом о собственном worktree, но без инструкции о ветке. Подтверждение и здесь заканчивается на `runs in the origin tree`.

468* У сессии, запущенной внутри worktree в структуре с bare-репозиторием, нет основного рабочего дерева, куда можно вернуться, поэтому копия остаётся на месте, а подтверждение заканчивается на `edits this checkout`. То же примечание появляется, когда изоляция в worktree [отключена](#how-file-edits-are-isolated) в сессии, которая не находится внутри связанного worktree, поскольку тогда копия редактирует открытые вами файлы.472* У сессии, запущенной внутри worktree в структуре с bare-репозиторием, нет основного рабочего дерева, куда можно вернуться, поэтому копия остаётся на месте, а подтверждение заканчивается на `edits this checkout`. То же примечание появляется, когда изоляция в worktree [отключена](#how-file-edits-are-isolated) в сессии, которая не находится внутри связанного worktree, поскольку тогда копия редактирует открытые вами файлы.

469 473 

474##### Сессии, которые нельзя скопировать

475 

470Сессии, запущенные с флагами запуска, которые копия не унаследовала бы, например с заменённым системным промптом или списком разрешённых инструментов `--tools`, скопировать нельзя; Claude Code сообщает об этом, а не создаёт неполную копию. Сессия, отправленная из agent view, копируется как обычно: копия запускается с тем же [определением агента](https://code.claude.com/docs/ru/sub-agents.md) и теми же добавленными инструкциями, что и исходная сессия.476Сессии, запущенные с флагами запуска, которые копия не унаследовала бы, например с заменённым системным промптом или списком разрешённых инструментов `--tools`, скопировать нельзя; Claude Code сообщает об этом, а не создаёт неполную копию. Сессия, отправленная из agent view, копируется как обычно: копия запускается с тем же [определением агента](https://code.claude.com/docs/ru/sub-agents.md) и теми же добавленными инструкциями, что и исходная сессия.

471 477 

472#### Что переносится при отправке в фон478#### Что переносится при отправке в фон

agents.md +1 −1

Details

32 32 

33> [!NOTE]33> [!NOTE]

34>34>

35> Запуск нескольких сеансов или подагентов одновременно увеличивает использование токенов. Подробнее см. [Costs](https://code.claude.com/docs/ru/costs.md) для информации об использовании и ограничениях скорости.35> Одновременный запуск нескольких сессий или субагентов многократно увеличивает расход токенов. Подробнее об использовании и ограничениях частоты запросов см. в разделе [Затраты](https://code.claude.com/docs/ru/costs.md).

36 36 

37## Выберите подход37## Выберите подход

38 38 

Details

251| Основная модель | Opus 5.5, например `us.anthropic.claude-opus-5-5` в регионе `us-*` |251| Основная модель | Opus 5.5, например `us.anthropic.claude-opus-5-5` в регионе `us-*` |

252| Модель small/fast | Sonnet 4.5, например `us.anthropic.claude-sonnet-4-5-20250929-v1:0` в регионе `us-*` |252| Модель small/fast | Sonnet 4.5, например `us.anthropic.claude-sonnet-4-5-20250929-v1:0` в регионе `us-*` |

253 253 

254До v2.1.280 основная модель на Amazon Bedrock по умолчанию была Opus 5, и псевдоним `opus` разрешался в Opus 5 с v2.1.219.

255 

254Фоновые задачи, такие как генерация заголовка сеанса, используют модель small/fast, обычно модель класса Haiku. На Amazon Bedrock Claude Code использует модель Sonnet по умолчанию для фоновых задач, потому что Haiku может быть не включён в каждом аккаунте или регионе. Два выбора изменяют, какая модель их выполняет:256Фоновые задачи, такие как генерация заголовка сеанса, используют модель small/fast, обычно модель класса Haiku. На Amazon Bedrock Claude Code использует модель Sonnet по умолчанию для фоновых задач, потому что Haiku может быть не включён в каждом аккаунте или регионе. Два выбора изменяют, какая модель их выполняет:

255 257 

256* Когда вы выбираете основную модель с `--model`, `ANTHROPIC_MODEL` или параметром `model`, фоновые задачи используют эту модель. Когда Claude Code запускает сеанс на модели, которую вы установили с помощью [`ANTHROPIC_DEFAULT_MODEL`](https://code.claude.com/docs/ru/model-config#set-a-default-model-for-new-sessions), фоновые задачи также используют эту модель. Установка `ANTHROPIC_DEFAULT_OPUS_MODEL` без `ANTHROPIC_DEFAULT_SONNET_MODEL` также считается выбором, потому что встроенная модель Sonnet может быть не включена в аккаунте, который управляет своим собственным Opus.258* Когда вы выбираете основную модель с `--model`, `ANTHROPIC_MODEL` или параметром `model`, фоновые задачи используют эту модель. Когда Claude Code запускает сеанс на модели, которую вы установили с помощью [`ANTHROPIC_DEFAULT_MODEL`](https://code.claude.com/docs/ru/model-config#set-a-default-model-for-new-sessions), фоновые задачи также используют эту модель. Установка `ANTHROPIC_DEFAULT_OPUS_MODEL` без `ANTHROPIC_DEFAULT_SONNET_MODEL` также считается выбором, потому что встроенная модель Sonnet может быть не включена в аккаунте, который управляет своим собственным Opus.


260>262>

261> Модели Opus имеют более высокую цену за токен, чем модели Sonnet, поэтому, если вы не закрепите основную модель, оплата будет взиматься по цене Opus. Чтобы использовать Sonnet 4.5 в качестве основной модели, установите `ANTHROPIC_MODEL` на его полный ID модели. Развёртывание, которое управляет значением по умолчанию с помощью `ANTHROPIC_DEFAULT_SONNET_MODEL` и не устанавливает `ANTHROPIC_DEFAULT_OPUS_MODEL`, сохраняет свою управляемую модель Sonnet в качестве значения по умолчанию.263> Модели Opus имеют более высокую цену за токен, чем модели Sonnet, поэтому, если вы не закрепите основную модель, оплата будет взиматься по цене Opus. Чтобы использовать Sonnet 4.5 в качестве основной модели, установите `ANTHROPIC_MODEL` на его полный ID модели. Развёртывание, которое управляет значением по умолчанию с помощью `ANTHROPIC_DEFAULT_SONNET_MODEL` и не устанавливает `ANTHROPIC_DEFAULT_OPUS_MODEL`, сохраняет свою управляемую модель Sonnet в качестве значения по умолчанию.

262 264 

263До v2.1.280 основная модель на Amazon Bedrock по умолчанию была Opus 5, и псевдоним `opus` разрешался в Opus 5 с v2.1.219. В версиях с v2.1.207 по v2.1.218 основная модель на Amazon Bedrock по умолчанию была Opus 4.8, и псевдоним `opus` разрешался в Opus 4.8.

264 

265Чтобы дополнительно настроить модели, используйте один из этих методов:265Чтобы дополнительно настроить модели, используйте один из этих методов:

266 266 

267```bash theme={null}267```bash theme={null}

artifacts.md +2 −2

Details

95 95 

96Выберите артефакт, затем нажмите одну из следующих клавиш:96Выберите артефакт, затем нажмите одну из следующих клавиш:

97 97 

98* **`Enter`**: открывает его в браузере, если он уже прикреплен к текущей сессии, и прикрепляет его, если нет. В версиях до v2.1.216 `Enter` открывал его в браузере98* **`Enter`**: открывает его в браузере, если он уже прикреплен к текущей сессии, и прикрепляет его, если нет

99* **`o`**: открывает его в браузере99* **`o`**: открывает его в браузере

100* **`c`**: копирует его ссылку100* **`c`**: копирует его ссылку

101* **`d`**: вне [облачной сессии](https://code.claude.com/docs/ru/claude-code-on-the-web.md) безвозвратно удаляет принадлежащий вам артефакт после вашего подтверждения. Его ссылка перестает работать для всех, включая вас101* **`d`**: вне [облачной сессии](https://code.claude.com/docs/ru/claude-code-on-the-web.md) безвозвратно удаляет принадлежащий вам артефакт после вашего подтверждения. Его ссылка перестает работать для всех, включая вас


225 225 

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

227 227 

228* **Зритель не подключил коннектор**: коннекторы привязаны к учётной записи, поэтому каждому зрителю нужно своё подключение к каждому коннектору, который вызывает страница. Они могут добавить его в **Settings > Connectors** на claude.ai, а затем перезагрузить страницу.228* **Зритель не подключил коннектор**: коннекторы привязаны к учётной записи, поэтому каждому зрителю нужно своё подключение к каждому коннектору, который вызывает страница. Он может добавить его в [**Customize > Connectors**](https://claude.ai/customize/connectors) на claude.ai, а затем перезагрузить страницу.

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

230* **Вызовы коннекторов отключены для организации**: владелец управляет переключателем [**Enable artifact connectors**](#control-connector-calls-from-artifacts) в параметрах администратора.230* **Вызовы коннекторов отключены для организации**: владелец управляет переключателем [**Enable artifact connectors**](#control-connector-calls-from-artifacts) в параметрах администратора.

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

best-practices.md +416 −354

Details

4 4 

5# Лучшие практики для Claude Code5# Лучшие практики для Claude Code

6 6 

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

8 8 

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

10 10 

11Это меняет способ вашей работы. Вместо того чтобы писать код самостоятельно и просить Claude его проверить, вы описываете, что хотите, и Claude понимает, как это построить. Claude исследует, планирует и реализует.11Например:

12 12 

13Но эта автономность всё ещё требует кривой обучения. Claude работает в определённых ограничениях, которые вам нужно понимать.13* Чтобы команды выполнялись безопасно без вашего подтверждения каждой из них, новые сессии в терминале и VS Code запускаются в [авторежиме](https://code.claude.com/docs/ru/permission-modes.md#eliminate-prompts-with-auto-mode), где классификатор проверяет всё рискованное перед выполнением.

14* Чтобы ваш основной диалог оставался сфокусированным, пока независимая работа идёт параллельно, Claude делегирует задачи субагентам и обращается к вам только при необходимости.

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

14 16 

15Это руководство охватывает паттерны, которые доказали свою эффективность во внутренних командах Anthropic и для инженеров, использующих Claude Code в различных кодовых базах, языках и окружениях. Чтобы узнать, как агентивный цикл работает под капотом, см. [How Claude Code works](https://code.claude.com/docs/ru/how-claude-code-works.md).17На этой странице описано, что делать, когда значений по умолчанию недостаточно. Обычно это происходит, когда у вашего проекта есть знания, правила или ограничения, которые Claude не может увидеть из одного только кода:

16 18 

17***19* Процесс деплоя, который существует только в чьей-то голове

20* Файл, который никогда нельзя читать

21* Проверка, которая должна пройти, прежде чем что-либо будет считаться выполненным

22* Бюджет, который нельзя превышать

18 23 

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

20 25 

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

22 27 

23Это важно, потому что производительность LLM деградирует по мере заполнения контекста. Когда контекстное окно почти полное, Claude может начать «забывать» более ранние инструкции или делать больше ошибок. Контекстное окно — это самый важный ресурс для управления. Чтобы увидеть, как сеанс заполняется на практике, [посмотрите интерактивное пошаговое руководство](https://code.claude.com/docs/ru/context-window.md) того, что загружается при запуске и какие затраты на каждое чтение файла. Отслеживайте использование контекста непрерывно с помощью [пользовательской строки состояния](https://code.claude.com/docs/ru/statusline.md), и см. [Reduce token usage](https://code.claude.com/docs/ru/costs.md#reduce-token-usage) для стратегий по снижению использования токенов.28* Claude сделал не то, что вы имели в виду, или ему приходится заново выяснять один и тот же факт в начале каждой сессии. Ему не хватает информации, которую нельзя получить из чтения репозитория. См. [Сообщите Claude то, чего он не видит](#tell-claude-what-it-cant-see).

29* Claude сказал, что закончил, но это было не совсем так, обычно потому, что у него не было способа проверить свою работу. См. [Дайте Claude проверку для запуска](#give-claude-a-check-to-run).

30* Claude сделал то, чего никогда не должно происходить в этом репозитории, или пропустил шаг, который должен выполняться всегда. Один лишь промпт не может гарантировать ни того, ни другого. См. [Обеспечьте соблюдение правил без исключений](#enforce-the-rules-that-cant-have-exceptions).

31* Claude всё сделал правильно, но это потребовало больше времени, токенов или запросов разрешений, чем стоила задача. См. [Измените настройку по умолчанию](#change-a-default).

24 32 

25***33Раздел [Позвольте Claude работать без вас](#let-claude-run-without-you) применяет те же четыре пункта к запускам без присмотра, а в разделе [Что можно перестать делать](#what-you-can-stop-doing) перечислены советы, которые стали ненужными благодаря современным моделям.

26 34 

27## Дайте Claude способ проверить свою работу35> [!NOTE]

28 

29> [!TIP]

30>36>

31> Дайте Claude проверку, которую он может запустить: тесты, сборку, скриншот для сравнения. Это разница между сеансом, который вы наблюдаете, и тем, от которого вы можете отойти.37> Настройка для всей команды описана на отдельной странице: [Настройка Claude Code для вашей организации](https://code.claude.com/docs/ru/admin-setup.md).

32 38 

33Claude останавливается, когда работа выглядит завершённой. Без проверки, которую он может запустить, "выглядит завершённой" — это единственный доступный сигнал, и вы становитесь циклом проверки: каждая ошибка ждёт, пока вы её заметите. Дайте Claude что-то, что выдаёт сигнал успеха или неудачи, и цикл закроется самостоятельно. Claude выполняет работу, запускает проверку, читает результат и повторяет итерации до тех пор, пока проверка не пройдёт.39## Детерминированные и недетерминированные инструкции

34 40 

35Проверка — это всё, что возвращает сигнал, который Claude может прочитать в разговоре: набор тестов, код выхода сборки, линтер, скрипт, который сравнивает выходные данные с фиксчуром, или [скриншот браузера](https://code.claude.com/docs/ru/chrome.md), сравниваемый с дизайном. Запустите [`/verify`](https://code.claude.com/docs/ru/skills#run-and-verify-your-app) самостоятельно после того, как проверка Claude пройдёт, чтобы подтвердить изменение в работающем приложении.41Каждая инструкция, которую вы даёте Claude Code, относится к одному из двух видов:

36 42 

37| Стратегия | До | После |431. Недетерминированные: вы пишете инструкцию, а Claude (модель) её читает. Это может быть ваш промпт, `CLAUDE.md` или скилл. Затем модель решает, что делать с этой информацией. Обычно она следует вашим командам, и современные модели хорошо понимают ваше намерение без большого контекста, но нет *гарантии*, что она выполнит ваши инструкции. Она всё равно может решить чего-то не делать или сделать что-то другое.

38| - | - | - |442. Детерминированные: вы настраиваете инструкцию, и Claude Code (среда выполнения) *обязан* её выполнить. Это может быть хук, правило deny или управляемая настройка. Claude Code применяет это каждый раз, независимо от того, что решила модель.

39| **Предоставьте критерии проверки** | *"реализовать функцию, которая проверяет адреса электронной почты"* | *"написать функцию validateEmail. примеры тестовых случаев: [user@example.com](mailto:user@example.com) это true, invalid это false, [user@.com](mailto:user@.com) это false. запустить тесты после реализации"* |

40| **Проверьте изменения UI визуально** | *"сделать панель управления лучше"* | *"\[вставить скриншот] реализовать этот дизайн. сделать скриншот результата и сравнить его с оригиналом. перечислить различия и исправить их"* |

41| **Решайте коренные причины, а не симптомы** | *"сборка не работает"* | *"сборка не работает с этой ошибкой: \[вставить ошибку]. исправить и проверить, что сборка успешна. решить коренную причину, не подавлять ошибку"* |

42 45 

43После того как проверка существует, решите, насколько жёстко она должна блокировать остановку:46Большинство возможностей Claude Code существуют в обеих формах:

44 47 

45* **В одном запросе**: попросите Claude запустить проверку и повторить итерации в одном сообщении, как в таблице выше.48| | Недетерминированные (решает Claude) | Детерминированные (обеспечивает Claude Code) |

46* **На протяжении сеанса**: установите проверку как условие [`/goal`](https://code.claude.com/docs/ru/goal). Отдельный оценщик повторно проверяет её после каждого хода, и Claude продолжает работать, пока она не будет выполнена. Если Claude застопорится, Claude Code в конечном итоге остановит запуск с установленной целью — см. [как работает оценка /goal](https://code.claude.com/docs/ru/goal.md#how-evaluation-works).49| :- | :- | :- |

47* **Как детерминированный шлюз**: [Stop hook](https://code.claude.com/docs/ru/hooks.md#stop) запускает вашу проверку как скрипт и блокирует завершение хода до тех пор, пока она не пройдёт. [Stop input](https://code.claude.com/docs/ru/hooks.md#stop-input) охватывает ограничение на последовательные блокировки.50| Что делать | Ваш промпт, `CLAUDE.md`, скиллы, которые Claude подключает сам | Хуки, а также скиллы, которые можете запустить только вы |

48* **По второму мнению**: [verification subagent](https://code.claude.com/docs/ru/sub-agents.md) или [dynamic workflow](https://code.claude.com/docs/ru/workflows.md), который проверяет собственные выводы, имеет свежую модель, которая пытается опровергнуть результат, поэтому агент, выполняющий работу, не является тем, кто её оценивает.51| К чему есть доступ | Классификатор авторежима | Правила deny, песочница в [строгом режиме](https://code.claude.com/docs/ru/sandboxing.md#turn-off-the-retry-with-strict-sandbox-mode), управляемые настройки |

52| Когда работа завершена | Запрос доказательств, `/goal`, `/code-review` | Тесты, проверка типов, хук `Stop`, CI |

53| Сколько тратится | Уровень effort, собственный темп Claude | `--max-turns` или [`--max-budget-usd`](https://code.claude.com/docs/ru/cli-reference) с `-p`, установленный вами [лимит расходов](https://code.claude.com/docs/ru/costs.md) |

54| За кем последнее слово | Сводка Claude о том, что он сделал | Защита веток, человек, который одобряет слияние |

49 55 

50Каждый шаг обменивает настройку на внимание. Версия с запросом работает на любой задаче сегодня. Версии `/goal` и Stop hook — это то, что позволяет неконтролируемому запуску завершиться правильно без вас.56В большинстве случаев вы хотите, чтобы решал Claude. Почти у каждого правила есть исключения, а современные модели хорошо читают код перед собой и оценивают, подходит ли правило к ситуации. Имея перед собой реальный код, Claude обычно способен принять такое решение лучше, чем правило, написанное вами заранее.

51 57 

52Попросите Claude показать доказательства, а не утверждать успех: выходные данные теста, команду, которую он запустил, и то, что она вернула, или скриншот результата. Проверка доказательств происходит быстрее, чем повторный запуск проверки самостоятельно, и это работает для сеансов, которые вы не наблюдали.58Детерминированный вид нужен, когда вы хотите быть уверены, что определённые вещи *всегда* происходят (или никогда не происходят), что бы ни решила модель. Это не обязательно что-то драматичное. Авторежим уже [блокирует драматичные вещи](https://code.claude.com/docs/ru/permission-modes.md#what-the-classifier-blocks-by-default), вроде деплоя в продакшен или force push поверх чужой работы. Обычно это что-то специфичное для *вашего* проекта, и оно может быть сколь угодно узким:

53 59 

54***60* Никогда не редактировать сгенерированный клиент в `src/gen/`

61* Всегда запускать скрипт заголовков лицензии после создания файла

55 62 

56## Сначала исследуйте, потом планируйте, потом кодируйте63Любое из этих правил можно было бы записать строкой в `CLAUDE.md` или в промпте, и Claude следовал бы ему почти каждый раз. Но как бы настойчиво вы это ни формулировали, выполнит ли Claude эту строку на конкретном ходе, всё равно решает Claude.

57 64 

58> [!TIP]65> [!TIP]

59>66>

60> Отделите исследование и планирование от реализации, чтобы избежать решения неправильной проблемы.67> Если вы продолжаете добавлять акценты в строку `CLAUDE.md`, а Claude всё равно её пропускает, это признак того, что этой строке место в хуке. Верно и обратное: если у вас есть хуки для того, что является лишь предпочтениями, удалите их и позвольте Claude решать.

61 68 

62Позволение Claude сразу перейти к кодированию может привести к коду, который решает неправильную проблему. Используйте [Plan Mode](https://code.claude.com/docs/ru/permission-modes.md#analyze-before-you-edit-with-plan-mode) для отделения исследования от выполнения.69## Сообщите Claude то, чего он не видит

63 70 

64Рекомендуемый рабочий процесс имеет четыре фазы:71> [!TIP]

72>

73> Записывайте только то, что Claude не может найти, читая репозиторий, или то, на повторное выяснение чего он иначе тратил бы время в каждой сессии.

65 74 

66**1. Исследуйте**75Claude начинает каждую задачу с чтения вашего кода, и современные модели делают это *очень* хорошо. Они найдут структуру файлов, ваши соглашения, тестовый фреймворк и то, как устроены существующие компоненты, обычно быстрее, чем вы смогли бы это объяснить. Это значит, что Claude уже знает большую часть того, что вам, возможно, хотелось бы для него записать.

67 76 

68Войдите в Plan Mode, нажав `Shift+Tab` до тех пор, пока в строке состояния не появится `⏸ plan mode on`, или запустите сеанс с помощью `claude --permission-mode plan`. Claude читает файлы и отвечает на вопросы без внесения изменений.77Чего он не может найти, так это информации, которой никогда не было в репозитории:

69 78 

70```txt title="claude (plan mode)" wrap theme={null}79* Решение, которое ваша команда приняла на встрече

71read /src/auth and understand how we handle sessions and login.80* Процесс деплоя, который существует только в голове одного человека

72also look at how we manage environment variables for secrets.81* Переменная окружения, нужная вашим интеграционным тестам

73```

74 82 

75**2. Планируйте**83Есть также информация, которая *есть* в репозитории, но на её поиск уходит несколько минут, и Claude приходится повторять эти поиски в начале каждой сессии.

76 84 

77Попросите Claude создать подробный план реализации.85Хорошая проверка, прежде чем что-то записывать для Claude:

78 86 

79```txt title="claude (plan mode)" wrap theme={null}871. Может ли он найти это, читая код?

80I want to add Google OAuth. What files need to change?882. Станет ли он действительно это искать?

81What's the session flow? Create a plan.

82```

83 89 

84Нажмите `Ctrl+G`, чтобы открыть план в вашем текстовом редакторе для прямого редактирования перед тем, как Claude продолжит.90Если на оба вопроса ответ «да», не записывайте это.

85 91 

86**3. Реализуйте**92### Пишите конкретный промпт

87 93 

88Переключитесь из Plan Mode, одобрив план или нажав `Shift+Tab`, затем позвольте Claude кодировать, проверяя против его плана.94Конкретный промпт помогает по той же причине: он даёт Claude информацию, которой у него ещё нет. Если вы сразу назовёте файл, опишете симптом и скажете, как выглядит «исправлено», вы обычно избавите себя от лишнего круга исправлений позже.

89 95 

90```txt title="claude" wrap theme={null}96То же касается предпочтения между двумя разумными подходами: Claude не может вычитать его из кода, поэтому если вам важно, какой из них он выберет, скажите об этом сразу.

91implement the OAuth flow from your plan. write tests for the

92callback handler, run the test suite and fix any failures.

93```

94 97 

95**4. Зафиксируйте**98| Вместо | Попробуйте |

99| :- | :- |

100| *«исправить баг входа»* | *«пользователи сообщают, что вход не работает после истечения сессии. посмотреть обновление токена в src/auth/, написать падающий тест, который это воспроизводит, затем исправить»* |

101| *«добавить виджет календаря»* | *«следовать паттерну из HotDogWidget.php и сделать виджет календаря, который позволяет выбрать месяц и листать годы. без новых библиотек»* |

96 102 

97Попросите Claude зафиксировать с описательным сообщением и создать PR.103Если у вас уже есть то, что нужно Claude, передайте это напрямую, а не описывайте:

98 104 

99```txt title="claude" wrap theme={null}105* Файл: введите `@` и путь, чтобы [включить содержимое файла](https://code.claude.com/docs/ru/common-workflows.md#reference-files-and-directories) в сообщение.

100commit with a descriptive message and open a PR106* Изображение: вставьте скриншот макета или ошибки в промпт.

101```107* Вывод команды: передайте его из оболочки через `cat error.log | claude -p "what's going on here"`.

102 108 

103Plan Mode полезен, но также добавляет накладные расходы.109Фразы вроде `think step by step` или `be thorough` — это обычный текст промпта, а не ключевые слова. Основной способ управлять тем, насколько усердно думает Claude, — [уровень effort](https://code.claude.com/docs/ru/model-config.md#adjust-effort-level), о котором рассказывается в разделе [Измените модель и effort](#change-the-model-and-effort). Такие формулировки всё ещё могут слегка подтолкнуть Claude в пределах его настройки effort, но не поднимут его выше неё.

104 110 

105Для задач, где область видимости ясна и исправление небольшое (например, исправление опечатки, добавление строки логирования или переименование переменной), попросите Claude сделать это напрямую.111Одна фраза, которая по-прежнему помогает, — `be ambitious`. Claude склонен понимать запрос консервативно и делать минимум, который его удовлетворяет, поскольку не видит, на какой объём вы рассчитывали. Когда вам нужна более полная версия, с обработанными граничными случаями и естественным продолжением, скажите об этом:

106 112 

107Планирование наиболее полезно, когда вы не уверены в подходе, когда изменение модифицирует несколько файлов или когда вы не знакомы с кодом, который модифицируется. Если вы можете описать diff в одном предложении, пропустите план.113```text theme={null}

114build the settings page from the mockup. be ambitious: empty and error states, the save flow wired up, keyboard navigation, not just the layout

115```

108 116 

109***117Так вы сообщаете Claude об объёме работы, который знаете только вы, а не о том, насколько усердно думать.

110 118 

111## Предоставьте конкретный контекст в ваших подсказках119А когда вы исследуете, а не исправляете что-то конкретное, расплывчатый промпт вроде `what would you improve in this file?` вполне подходит. По ходу дела вам придётся чуть больше поправлять, и это разумный компромисс.

112 120 

113> [!TIP]121### Сначала проведите мозговой штурм с Claude

114>

115> Чем точнее ваши инструкции, тем меньше исправлений вам потребуется.

116 122 

117Claude может вывести намерение, но не может читать ваши мысли. Ссылайтесь на конкретные файлы, упоминайте ограничения и указывайте на примеры паттернов.123Когда вы ещё точно не знаете, чего хотите, не обязательно продумывать всё до промпта. Вместо этого попросите Claude взять у вас интервью:

118 124 

119| Стратегия | До | После |125```text theme={null}

120| - | - | - |126I want to add rate limiting to the public API but haven't thought it through yet. Interview me until you could write the spec, then write it to SPEC.md.

121| **Определите область задачи.** Укажите, какой файл, какой сценарий и предпочтения тестирования. | *"добавить тесты для foo.py"* | *"написать тест для foo.py, охватывающий граничный случай, когда пользователь вышел из системы. избегать мокирования."* |127```

122| **Укажите источники.** Направьте Claude к источнику, который может ответить на вопрос. | *"почему ExecutionFactory имеет такой странный api?"* | *"посмотреть через историю git ExecutionFactory и суммировать, как его api пришёл к этому"* |

123| **Ссылайтесь на существующие паттерны.** Укажите Claude на паттерны в вашей кодовой базе. | *"добавить виджет календаря"* | *"посмотреть, как существующие виджеты реализованы на домашней странице, чтобы понять паттерны. HotDogWidget.php — хороший пример. следовать паттерну для реализации нового виджета календаря, который позволяет пользователю выбрать месяц и переходить вперёд/назад для выбора года. строить с нуля без библиотек, кроме уже используемых в кодовой базе."* |

124| **Опишите симптом.** Предоставьте симптом, вероятное местоположение и то, как выглядит «исправленное». | *"исправить ошибку входа"* | *"пользователи сообщают, что вход не работает после истечения сеанса. проверить поток аутентификации в src/auth/, особенно обновление токена. написать тест, который не проходит и воспроизводит проблему, затем исправить её"* |

125 128 

126Расплывчатые подсказки могут быть полезны, когда вы исследуете и можете позволить себе изменить курс. Подсказка вроде `"что бы вы улучшили в этом файле?"` может выявить вещи, о которых вы не подумали бы спросить.129Claude вернётся с вопросами с вариантами ответа о том, что вы ещё не определили: лимиты на пользователя или на ключ, что происходит с запросами сверх лимита, что выходит за рамки задачи. Он продолжает спрашивать, пока ответы не сложатся в спецификацию.

127 130 

128### Предоставьте богатый контент131Когда `SPEC.md` готов, начните новую сессию, чтобы вести реализацию по нему, — так она начнётся с чистого контекста и письменного определения готовности. Это также файл, на который вы позже направите рецензента в разделе [Дайте Claude проверку для запуска](#give-claude-a-check-to-run).

129 132 

130> [!TIP]133### Держите CLAUDE.md коротким

131>

132> Используйте `@` для ссылки на файлы, вставляйте скриншоты/изображения или передавайте данные напрямую.

133 134 

134Вы можете предоставить богатые данные Claude несколькими способами:135Claude Code загружает [`CLAUDE.md`](https://code.claude.com/docs/ru/memory) в каждую сессию, а значит, каждая строка в нём забирает немного внимания Claude в *каждой* задаче, независимо от того, актуальна она или нет. Поэтому файл работает лучше всего, когда в нём только то, что Claude не смог бы вывести из самого кода:

135 136 

136* **Ссылайтесь на файлы с `@`** вместо описания того, где находится код. Claude читает файл перед ответом.137* Как проверить работу в этом репозитории: точные команды тестов, проверки типов и линтера, а также как запустить один тестовый файл

137* **Вставляйте изображения напрямую**. Скопируйте/вставьте или перетащите изображения в подсказку.138* Места, где код вводит в заблуждение: старый паттерн, который встречается повсюду, но который новый код не должен копировать, или каталог, который выглядит неиспользуемым, но на самом деле используется

138* **Дайте URL-адреса** для документации и справочников API. Используйте `/permissions`, чтобы добавить часто используемые домены в список разрешённых.139* Решения, которых нет в репозитории: на каком хелпере ошибок остановилась команда, как устроены деплои, что требует ревью миграций

139* **Передавайте данные** путём запуска `cat error.log | claude -p "explain this error"` для отправки содержимого файла напрямую.140* Всё, что вам уже дважды пришлось исправлять

140* **Позвольте Claude получить то, что ему нужно**. Скажите Claude вытащить контекст самостоятельно, используя команды Bash, MCP tools или читая файлы.

141 141 

142***142`CLAUDE.md`, прошедший эту проверку, остаётся коротким:

143 143 

144## Настройте ваше окружение144```markdown CLAUDE.md theme={null}

145# Commands

146- Install: pnpm install

147- Run one test file: pnpm vitest run path/to/file.test.ts

148- Typecheck: pnpm tsc --noEmit

145 149 

146Несколько шагов настройки делают Claude Code значительно более эффективным во всех ваших сеансах. Для полного обзора функций расширения и когда использовать каждую, см. [Extend Claude Code](https://code.claude.com/docs/ru/features-overview.md).150# Conventions

151- Use the error helpers in src/lib/errors.ts, never throw raw strings

152- src/legacy/ is still live but don't copy its patterns into new code

147 153 

148### Напишите эффективный CLAUDE.md154# Gotchas

155- Integration tests need DATABASE_URL set, see .env.example

156```

149 157 

150> [!TIP]158В сессии запустите `/context`, чтобы убедиться, что Claude загрузил файл.

151>

152> Запустите `/init` для генерации стартового файла CLAUDE.md на основе текущей структуры вашего проекта, затем уточняйте со временем.

153 159 

154CLAUDE.md — это специальный файл, который Claude читает в начале каждого разговора. Включите команды Bash, стиль кода и правила рабочего процесса. Это даёт Claude постоянный контекст, который он не может вывести только из кода.160Обратите внимание, что строка проверки типов — это только команда. Claude нужно знать команду, чтобы проверять свою работу по ходу дела. Если вы также хотите, чтобы Claude Code *обеспечивал* успешную проверку типов до того, как Claude закончит, это задача для [хука `Stop`](#enforce-the-check-with-a-stop-hook). Строка вроде `Always typecheck before you finish` в этом файле срабатывает в большинстве случаев, но не каждый раз.

155 161 

156Нет требуемого формата для файлов CLAUDE.md, но держите его коротким и удобочитаемым. Например:162Писать файл с нуля не обязательно:

157 163 

158```markdown CLAUDE.md theme={null}164* `/init` генерирует начальную версию на основе вашей кодовой базы. Дальше работа в основном сводится к удалению строк. [Руководство по памяти](https://code.claude.com/docs/ru/memory.md#write-effective-instructions) рекомендует не превышать 200.

159# Code style165* `/doctor` предлагает сокращения для всего, что Claude [может и так вывести из кода](https://code.claude.com/docs/ru/memory.md#my-claude-md-is-too-large).

160- Use ES modules (import/export) syntax, not CommonJS (require)166* `/doctor prompt-audit` помечает инструкции, которые были написаны для старых моделей, ссылаются на несуществующие файлы или [противоречат друг другу](https://code.claude.com/docs/ru/memory.md#audit-your-instruction-files).

161- Destructure imports when possible (eg. import { foo } from 'bar')

162 167 

163# Workflow168Ваши личные предпочтения помещаются в `CLAUDE.local.md`, а не в `CLAUDE.md`, и этот файл добавляется в `.gitignore`, чтобы он не попал в репозиторий.

164- Be sure to typecheck when you're done making a series of code changes

165- Prefer running single tests, and not the whole test suite, for performance

166```

167 169 

168Запустите `/context` для подтверждения того, что Claude загрузил файл. CLAUDE.md загружается каждый сеанс, поэтому включайте только то, что применяется широко. Для знаний о домене или рабочих процессов, которые актуальны только иногда, используйте [skills](https://code.claude.com/docs/ru/skills.md) вместо этого. Claude загружает их по требованию без раздувания каждого разговора.170> [!NOTE]

171>

172> Если Claude продолжает игнорировать строку, которая *есть* в `CLAUDE.md`, добавление IMPORTANT, скорее всего, не поможет. Либо файл стал настолько длинным, что строка теряется, либо эта строка — правило, не допускающее исключений, и тогда ей место в [хуке](#enforce-the-rules-that-cant-have-exceptions).

169 173 

170Держите это кратко. Для каждой строки спросите себя: *"Привело ли бы удаление этого к ошибкам Claude?"* Если нет, удалите. Раздутые файлы CLAUDE.md заставляют Claude игнорировать ваши фактические инструкции!174### Ограничьте правила одной частью кодовой базы

171 175 

172| ✅ Включите | ❌ Исключите |176Если правило важно только в одной части кодовой базы, поместите его в [`.claude/rules/`](https://code.claude.com/docs/ru/memory#path-specific-rules) с фильтром `paths:`, чтобы оно загружалось только тогда, когда Claude действительно работает там. Например, этот `.claude/rules/api.md` загружается для файлов TypeScript в `src/api/`:

173| - | - |

174| Команды Bash, которые Claude не может угадать | Всё, что Claude может понять, прочитав код |

175| Правила стиля кода, которые отличаются от стандартов | Стандартные соглашения языка, которые Claude уже знает |

176| Инструкции по тестированию и предпочитаемые тестовые бегуны | Подробная документация API (вместо этого ссылайтесь на документы) |

177| Этикет репозитория (именование ветвей, соглашения PR) | Информация, которая часто меняется |

178| Архитектурные решения, специфичные для вашего проекта | Длинные объяснения или учебники |

179| Особенности окружения разработчика (требуемые переменные окружения) | Описания файл-за-файлом кодовой базы |

180| Общие подводные камни или неочевидные поведения | Самоочевидные практики вроде "писать чистый код" |

181 177 

182Если Claude продолжает делать что-то, что вы не хотите, несмотря на наличие правила против этого, файл, вероятно, слишком длинный и правило теряется. Если Claude задаёт вам вопросы, которые ответены в CLAUDE.md, формулировка может быть неоднозначной. Относитесь к CLAUDE.md как к коду: проверяйте его, когда что-то идёт не так, регулярно обрезайте его и тестируйте изменения, наблюдая, действительно ли поведение Claude меняется. Для зафиксированного в git CLAUDE.md запустите [`/doctor`](https://code.claude.com/docs/ru/commands#all-commands) и Claude предложит сокращения для контента, который он может вывести из кодовой базы.178```markdown .claude/rules/api.md theme={null}

179---

180paths:

181 - "src/api/**/*.ts"

182---

183- Validate request bodies with the zod schemas in src/api/schemas/, don't hand-roll checks

184- Every new endpoint needs an entry in openapi.yaml, CI fails without it

185```

183 186 

184Если Claude продолжает пропускать одну инструкцию, добавьте акцент, такой как "IMPORTANT", только к этой строке. Если вы подчёркиваете много строк, ни одна из них не выделяется. Зафиксируйте CLAUDE.md в git, чтобы ваша команда могла внести свой вклад. Файл накапливает ценность со временем.187### Помещайте командные процедуры в скиллы

185 188 

186Файлы CLAUDE.md могут импортировать дополнительные файлы, используя синтаксис `@path/to/import`. Для правил импорта и мест, где могут находиться файлы CLAUDE.md, см. [CLAUDE.md files](https://code.claude.com/docs/ru/memory.md#claude-md-files).189Более способная модель больше знает об инженерии, но не то, как *ваша* команда делает релиз, что написано в вашем ранбуке инцидентов или как вы хотите писать документацию API. Такие знания помещаются в [скилл](https://code.claude.com/docs/ru/skills.md): процедуру или фрагмент командных знаний, сохранённые в `.claude/skills/<name>/SKILL.md`.

187 190 

188### Настройте разрешения191Для таких вещей скиллы к тому же меньше нагружают контекст, чем `CLAUDE.md`. Для скилла, который Claude может запустить сам, в каждой сессии он видит название и описание, но [читает полный файл](https://code.claude.com/docs/ru/skills.md#skill-content-lifecycle), только когда этого требует задача. Длинная процедура релиза в скилле не отягощает ваше несвязанное исправление бага так, как это было бы в `CLAUDE.md`.

189 192 

190> [!TIP]193> [!NOTE]

191>194>

192> Чтобы получить меньше подсказок без потери контроля, предварительно одобрите инструменты, которым вы доверяете, с помощью `/permissions` и позвольте изолированным командам работать без запроса с помощью `/sandbox`. Переключитесь в режим Manual, когда вы хотите одобрить правки и команды самостоятельно.195> Правило `CLAUDE.md` относится и к скиллам: записывайте только то, что Claude не может найти сам.

193 196 

194С Claude Code v2.1.283 или позже, auto mode — это [встроенный начальный режим разрешений](https://code.claude.com/docs/ru/permission-modes.md#eliminate-prompts-with-auto-mode) для интерактивных сеансов терминала и VS Code: отдельная модель-классификатор проверяет большинство действий вместо вас и блокирует только то, что выглядит рискованно, например расширение области, неизвестная инфраструктура или действия, вызванные враждебным контентом. На более ранних версиях, auto mode — это встроенный начальный режим разрешений только на планах Pro, Max и Team.197Для рабочего процесса с побочными эффектами, например реального выпуска этого релиза, добавьте `disable-model-invocation: true`. Тогда Claude [не сможет запустить скилл сам](https://code.claude.com/docs/ru/skills.md#control-who-invokes-a-skill), и он будет выполняться, только когда вы сами введёте `/release`. Сохранённый как `.claude/skills/release/SKILL.md`, он может выглядеть так:

195 198 

196В режиме Manual, Claude Code запрашивает разрешение перед действиями, которые могут модифицировать вашу систему: записи файлов, команды Bash, MCP tools. Это безопасно, но утомительно. После десятого одобрения вы кликаете, не совсем проверяя. Два инструмента сокращают эти прерывания в режиме Manual и применяются также в режиме auto:199```markdown .claude/skills/release/SKILL.md theme={null}

200---

201name: release

202description: Cut a new release. Bumps the version, writes the changelog entry, tags it and pushes the tag so CI can publish.

203disable-model-invocation: true

204---

2051. Make sure you're on main with a clean tree. If not, stop and ask.

2062. Run `pnpm changeset version` and commit the result.

2073. Summarize the PRs merged since the last tag into CHANGELOG.md, one line each, user-facing changes only.

2084. Tag `v<new version>` and push the tag. CI publishes from there, never publish from your machine.

209```

197 210 

198* **Белые списки разрешений**: разрешить конкретные инструменты, которые вы знаете, что безопасны, например `npm run lint` или `git commit`211### Подключите инструменты, которые нужны Claude

199* **Sandboxing**: включить изоляцию на уровне ОС, которая ограничивает доступ к файловой системе и сети, позволяя Claude работать более свободно в определённых границах

200 212 

201Прочитайте больше о [permission modes](https://code.claude.com/docs/ru/permission-modes.md), [permission rules](https://code.claude.com/docs/ru/permissions.md) и [sandboxing](https://code.claude.com/docs/ru/sandboxing.md).213Часть того, чего не видит Claude, находится совсем в другой системе, например в трекере задач или панели ошибок. Если у этой системы есть CLI, это обычно самый простой путь. Например, если `gh` установлен и вы в нём авторизованы, Claude будет открывать pull request и читать комментарии ревью без каких-либо объяснений с вашей стороны. Для CLI, который он раньше не видел, достаточно указать ему на `--help`.

202 214 

203### Используйте CLI tools215Для систем без CLI есть [MCP](https://code.claude.com/docs/ru/mcp.md). Сервер добавляется из оболочки:

204 216 

205> [!TIP]217```bash theme={null}

206>218claude mcp add --transport http notion https://mcp.notion.com/mcp

207> Скажите Claude Code использовать CLI tools, такие как `gh`, `aws`, `gcloud` и `sentry-cli`, при взаимодействии с внешними сервисами.219```

220 

221Затем сервер появляется в `/mcp` внутри сессии. Подключённые серверы добавляют названия своих инструментов и инструкции в контекст, даже когда вы их не используете, поэтому стоит там же [отключить ненужные](https://code.claude.com/docs/ru/mcp.md#disable-a-server-without-removing-it).

222 

223А если вы работаете с типизированным языком, [плагин code intelligence](https://code.claude.com/docs/ru/plugins/code-intelligence.md) позволяет Claude сразу переходить к определению, вместо того чтобы читать множество файлов в его поисках.

208 224 

209CLI tools — это наиболее контекстно-эффективный способ взаимодействия с внешними сервисами. Если вы используете GitHub, установите CLI `gh`. Claude знает, как его использовать для создания issues, открытия pull requests и чтения комментариев. Без `gh`, Claude всё ещё может использовать GitHub API, но неаутентифицированные запросы часто попадают на ограничения по частоте.225## Дайте Claude проверку для запуска

210 226 

211Claude также эффективен в изучении CLI tools, которые он не знает. Попробуйте подсказки вроде `Use 'foo-cli-tool --help' to learn about foo tool, then use it to solve A, B, C.`227Claude останавливается, когда работа выглядит завершённой. Если у него нет ничего, что можно запустить и узнать, *завершена* ли работа на самом деле, ему остаётся ориентироваться только на «выглядит завершённой». На практике это делает набором тестов вас, и каждая ошибка ждёт, пока вы случайно её не заметите.

212 228 

213### Подключите MCP servers229Если дать ему что-то, что возвращает «пройдено» или «не пройдено», Claude может замкнуть этот цикл сам. Он вносит изменение, запускает проверку и, если что-то сломалось, читает вывод и исправляет, прежде чем снова запустить проверку.

214 230 

215> [!TIP]231> [!TIP]

216>232>

217> Запустите `claude mcp add` с именем сервера и URL или командой для подключения внешних инструментов, таких как Notion, Figma или ваша база данных. Например: `claude mcp add --transport http notion https://mcp.notion.com/mcp`.233> Дайте Claude что-то, что он может запустить и что возвращает «пройдено» или «не пройдено». Когда это у него есть, он может продолжать сам, и вам не нужно наблюдать.

218 234 

219С [MCP servers](https://code.claude.com/docs/ru/mcp.md), вы можете попросить Claude реализовать функции из трекеров issues, запросить базы данных, анализировать данные мониторинга, интегрировать дизайны из Figma и автоматизировать рабочие процессы.235Проверкой может быть почти что угодно, лишь бы Claude мог прочитать результат:

220 236 

221### Установите hooks237* Тестовый файл

238* Код выхода сборки

239* Линтер

240* Скрипт, сравнивающий вывод с фикстурой

241* [Скриншот браузера](https://code.claude.com/docs/ru/chrome.md) рядом с макетом

222 242 

223> [!TIP]243Если в вашем репозитории уже есть что-то из этого, самая полезная строка в `CLAUDE.md` — команда, которая это запускает.

224>

225> Используйте hooks для действий, которые должны происходить каждый раз без исключений.

226 244 

227[Hooks](https://code.claude.com/docs/ru/hooks-guide.md) запускают скрипты автоматически в определённых точках рабочего процесса Claude. В отличие от инструкций CLAUDE.md, которые являются рекомендательными, hooks являются детерминированными и гарантируют, что действие происходит.245Насколько строгой сделать проверку, решать вам. Варианты простираются от решения самого Claude до обеспечения со стороны Claude Code:

228 246 

229Claude может писать hooks для вас. Попробуйте подсказки вроде *"Write a hook that runs eslint after every file edit"* или *"Write a hook that blocks writes to the migrations folder."* Отредактируйте `.claude/settings.json` напрямую для конфигурации hooks вручную, и запустите `/hooks` для просмотра того, что настроено.247* В промпте: `run the auth tests after, and keep going until they pass`. Claude сам решает, когда результат его устраивает. Это работает для любой задачи уже сегодня и без настройки.

248* Как цель: [`/goal all tests in tests/auth pass and lint is clean`](https://code.claude.com/docs/ru/goal) задаёт условие, которое отдельная модель проверяет по диалогу после каждого хода, и Claude продолжает, пока оно не выполнено. Вам самим в сессии это нужно редко. Это важно для длинных фоновых запусков, где Claude иногда завершает ход сводкой о прогрессе, хотя пункты ещё не закрыты, и цель отправляет его обратно к работе.

249* Как хук Stop: [хук `Stop`](https://code.claude.com/docs/ru/hooks#stop) запускает ваш скрипт каждый раз, когда Claude пытается завершить ход, и возвращает Claude к работе, если скрипт завершается с кодом выхода 2. Это обеспечивается Claude Code (средой выполнения), поэтому ход не закончится, пока проверка типов не пройдёт или не будет достигнут [лимит блокировок](https://code.claude.com/docs/ru/hooks.md#stop-input). [Пример приведён ниже](#enforce-the-check-with-a-stop-hook).

250* Тем, кто не писал код: в терминале [`/code-review`](https://code.claude.com/docs/ru/code-review-local) проверяет diff в новом субагенте, который никогда не видел ваш диалог. На него не влияют рассуждения, которые привели к этому коду.

230 251 

231### Создайте skills252Какой бы вариант вы ни выбрали, просите у Claude *доказательства*: команду, которую он запустил, и её вывод, или скриншот. «Все тесты проходят» само по себе мало что говорит, а прочитать вывод быстрее, чем перезапускать проверку самостоятельно. Для сессии, за которой вы не наблюдали, это ещё и единственное доказательство, которое у вас есть.

232 253 

233> [!TIP]254> [!TIP]

234>255>

235> Создайте файлы `SKILL.md` в `.claude/skills/` для предоставления Claude знаний о домене и переиспользуемых рабочих процессов.256> Когда Claude говорит, что закончил, вы также можете запустить в сессии [`/verify`](https://code.claude.com/docs/ru/skills#run-and-verify-your-app): Claude соберёт и запустит приложение и посмотрит на результат. Это выявляет проблемы, которые пропускают тесты и проверки типов.

236 257 

237[Skills](https://code.claude.com/docs/ru/skills.md) расширяют знания Claude информацией, специфичной для вашего проекта, команды или домена. Claude применяет их автоматически, когда они актуальны, или вы можете вызвать их напрямую с помощью `/skill-name`.258### Ревью на соответствие спецификации

238 259 

239Создайте skill, добавив директорию с `SKILL.md` в `.claude/skills/`:260Если вы хотите, чтобы ревью проверяло работу на соответствие вашему плану, а не искало ошибки в целом, напишите промпт для ревью сами:

240 261 

241```markdown .claude/skills/api-conventions/SKILL.md theme={null}262```text theme={null}

242name: api-conventions263use a subagent to review the rate limiter diff against SPEC.md, check every requirement is implemented and the listed edge cases have tests, report gaps that affect correctness and skip style

243description: REST API design conventions for our services

244# API Conventions

245- Use kebab-case for URL paths

246- Use camelCase for JSON properties

247- Always include pagination for list endpoints

248- Version APIs in the URL path (/v1/, /v2/)

249```264```

250 265 

251Skills также могут определять переиспользуемые рабочие процессы, которые вы вызываете напрямую:266> [!NOTE]

252 267>

253```markdown .claude/skills/fix-issue/SKILL.md theme={null}268> Не убирайте из этого промпта часть `skip style`. Рецензент, которого попросили найти проблемы, всегда найдёт *что-нибудь*. Если исправлять каждое замечание, в итоге получатся лишние слои абстракции и тесты для невозможных случаев.

254name: fix-issue269 

255description: Fix a GitHub issue270### Обеспечьте проверку с помощью хука Stop

256disable-model-invocation: true271 

257Analyze and fix the GitHub issue: $ARGUMENTS.272Версия правила проверки типов в виде хука `Stop` — это несколько строк в `.claude/settings.json`. Остановку блокирует код выхода 2. Всё, что команда выводит в stderr, возвращается Claude как причина, по которой он пока не может закончить, поэтому вывод компилятора перенаправляется туда:

258 273 

2591. Use `gh issue view` to get the issue details274```json .claude/settings.json theme={null}

2602. Understand the problem described in the issue275{

2613. Search the codebase for relevant files276 "hooks": {

2624. Implement the necessary changes to fix the issue277 "Stop": [

2635. Write and run tests to verify the fix278 {

2646. Ensure code passes linting and type checking279 "hooks": [

2657. Create a descriptive commit message280 { "type": "command", "command": "pnpm tsc --noEmit 1>&2 || exit 2" }

2668. Push and create a PR281 ]

282 }

283 ]

284 }

285}

267```286```

268 287 

269Запустите `/fix-issue 1234` для вызова. Используйте `disable-model-invocation: true` для рабочих процессов с побочными эффектами, которые вы хотите запустить вручную.288Чтобы увидеть это в действии, попросите Claude внести изменение, которое ломает тип: вместо завершения он получит ошибки компилятора и продолжит работу, пока `tsc` не пройдёт. Если хук блокирует [восемь остановок подряд](https://code.claude.com/docs/ru/hooks.md#stop-input) без вызова инструмента между ними, Claude Code переопределяет следующую блокировку и завершает ход. Чтобы поднять этот предел, задайте [`CLAUDE_CODE_STOP_HOOK_BLOCK_CAP`](https://code.claude.com/docs/ru/env-vars).

270 289 

271### Создайте пользовательские subagents290## Обеспечьте соблюдение правил без исключений

272 291 

273> [!TIP]292> [!TIP]

274>293>

275> Определите специализированных помощников в `.claude/agents/`, которых Claude может делегировать для изолированных задач.294> Если что-то должно происходить каждый раз, сделайте это хуком, правилом deny или управляемой настройкой. `CLAUDE.md` предназначен для рекомендаций, и Claude вправе решить, что рекомендация неприменима.

276 295 

277[Subagents](https://code.claude.com/docs/ru/sub-agents.md) запускаются в своём собственном контексте с собственным набором разрешённых инструментов. Они полезны для задач, которые читают много файлов или нуждаются в специализированном внимании без загромождения вашего основного разговора.296Возьмите три правила, которые у вас, возможно, сейчас есть в `CLAUDE.md`: `Never read .env`, `Always run the formatter after editing`, `Don't touch the migrations folder`. Claude будет соблюдать их почти каждый раз. Те немногие, для которых «почти» недостаточно, перенесите из `CLAUDE.md` в конфигурацию, которую Claude Code (среда выполнения) применяет сам. С этого момента результат не зависит от того, что модель помнит или решает.

278 297 

279```markdown .claude/agents/security-reviewer.md theme={null}298### Обеспечьте выполнение шагов с помощью хуков

280name: security-reviewer299 

281description: Reviews code for security vulnerabilities300[Хуки](https://code.claude.com/docs/ru/hooks-guide.md) запускают что-то ваше в фиксированных точках цикла Claude: до или после вызова инструмента, когда Claude пытается остановиться, при запуске сессии и так далее. Этим может быть:

282tools: Read, Grep, Glob, Bash301 

283model: opus302* Shell-команда (обычный случай)

284You are a senior security engineer. Review code for:303* POST-запрос к HTTP-эндпоинту

285- Injection vulnerabilities (SQL, XSS, command injection)304* Вызов инструмента на одном из ваших MCP-серверов

286- Authentication and authorization flaws305* [Хук `prompt` или `agent`](https://code.claude.com/docs/ru/hooks#hook-handler-fields), который позволяет решать модели

287- Secrets or credentials in code306 

288- Insecure data handling307Хук `prompt` или `agent` просит решить *другую модель*, поэтому он тоже не детерминирован. Для настоящего обеспечения используйте хук `command` или `http` и добавьте [`onFailure: "block"`](https://code.claude.com/docs/ru/hooks#block-the-action-when-a-hook-fails), если действие должно быть остановлено и тогда, когда сам хук падает или превышает тайм-аут. Например, для хука, который сканирует коммиты на наличие секретов, лучше заблокировать коммит, чем пропустить его непросканированным, пока сканер не работает.

308 

309Вот правило форматирования в виде хука `PostToolUse`. Он запускается после каждого `Edit` или `Write`, и то, помнит ли Claude это правило, больше не важно, потому что запускает его не Claude:

289 310 

290Provide specific line references and suggested fixes.311```json .claude/settings.json theme={null}

312{

313 "hooks": {

314 "PostToolUse": [

315 {

316 "matcher": "Edit|Write",

317 "hooks": [

318 { "type": "command", "command": "npx prettier --write --ignore-unknown \"$(jq -r '.tool_input.file_path')\"" }

319 ]

320 }

321 ]

322 }

323}

291```324```

292 325 

293Скажите Claude использовать subagents явно: *"Use a subagent to review this code for security issues."*326Чтобы проверить хук, попросите Claude добавить строку с неправильным отступом в файл, который форматирует Prettier. Сохранённый файл вернётся с исправленным отступом.

294 327 

295### Установите plugins328Правило миграций становится [хуком `PreToolUse`](https://code.claude.com/docs/ru/hooks-guide#block-edits-to-protected-files), который завершается с кодом выхода 2 для любого пути в `migrations/`. Писать его самостоятельно не нужно: `write a hook that blocks edits to the migrations folder` работает как промпт, а `/hooks` показывает результат. Но не перестарайтесь: хук предназначен для правила с *нулём* исключений, а у `Prefer named exports` их множество, поэтому оно остаётся в `CLAUDE.md`.

296 329 

297> [!TIP]330### Ограничьте доступ с помощью правил разрешений и песочницы

298>

299> Запустите `/plugin` для просмотра маркетплейса. Plugins добавляют skills, tools и интеграции без конфигурации.

300 331 

301[Plugins](https://code.claude.com/docs/ru/plugins/overview.md) объединяют skills, hooks, subagents и MCP servers в единый устанавливаемый модуль из сообщества и Anthropic. Если вы работаете с типизированным языком, установите [code intelligence plugin](https://code.claude.com/docs/ru/plugins/code-intelligence.md) для предоставления Claude точной навигации по символам и автоматического обнаружения ошибок после редактирования.332[Правила разрешений](https://code.claude.com/docs/ru/permissions.md) определяют, что Claude разрешено запускать, читать и загружать. Правила `deny` действуют в любом режиме разрешений, включая auto и `bypassPermissions`, и именно поэтому правилу для `.env` место там:

302 333 

303Для руководства по выбору между skills, subagents, hooks и MCP, см. [Extend Claude Code](https://code.claude.com/docs/ru/features-overview.md#match-features-to-your-goal).334```json .claude/settings.json theme={null}

335{

336 "permissions": {

337 "allow": ["Bash(pnpm tsc --noEmit)"],

338 "ask": ["Bash(git push *)"],

339 "deny": ["Read(./.env)", "Read(./.env.local)", "Read(./secrets/**)"]

340 }

341}

342```

304 343 

305***344С сохранённой конфигурацией просьба к Claude показать содержимое `.env` завершится неудачей — как через инструмент `Read`, так и через `cat .env`.

306 345 

307## Общайтесь эффективно346Правила сопоставляются с вызовами инструментов, а не с намерениями, поэтому стоит знать, где проходят границы:

308 347 

309Задавайте Claude вопросы, которые вы задали бы другому инженеру, и для более крупных функций позвольте Claude взять интервью у вас и написать спецификацию перед тем, как вы начнёте реализацию.348* Правило `Read` *действительно* перехватывает `cat .env`, потому что Claude Code распознаёт [распространённые команды чтения файлов](https://code.claude.com/docs/ru/permissions.md#read-and-edit).

349* Оно не перехватит скрипт, который открывает файл.

350* Правило deny для `WebFetch` на домен ничего не делает с `curl` к тому же домену, если не включена песочница.

310 351 

311### Задавайте вопросы о кодовой базе352Для ограничения доступа к файловой системе или сети на уровне ОС включите [песочницу](https://code.claude.com/docs/ru/sandboxing.md) командой `/sandbox` в сессии. Она ограничивает shell-команды Claude в macOS, Linux и WSL2 и также [учитывает ваши правила deny для `Read` и правила `WebFetch(domain:...)`](https://code.claude.com/docs/ru/sandboxing#permission-rules), поэтому для всего, что связано с безопасностью, нужно и то, и другое.

312 353 

313> [!TIP]354По умолчанию Claude всё ещё может попросить повторить заблокированную команду вне песочницы, и этот запрос проходит обычный процесс разрешений. [Строгий режим песочницы](https://code.claude.com/docs/ru/sandboxing.md#turn-off-the-retry-with-strict-sandbox-mode) на вкладке **Overrides** в `/sandbox` отключает такую повторную попытку.

355 

356> [!WARNING]

314>357>

315> Задавайте Claude вопросы, которые вы задали бы старшему инженеру.358> Авторежим — это модель-классификатор, оценивающая каждое действие, а не жёсткое правило. Она хорошо с этим справляется, но, как любое суждение, может ошибаться. Кроме того, вы можете настраивать, что она считает рискованным, а ваша организация может полностью отключить авторежим, поэтому вашим правилам «никогда» место в правилах deny или хуках.

359 

360### Выберите, к кому применяется правило

316 361 

317При адаптации к новой кодовой базе используйте Claude Code для обучения и исследования. Вы можете задавать Claude те же вопросы, которые задали бы другому инженеру:362То, где находится правило, определяет, к кому оно применяется:

318 363 

319* Как работает логирование?364* `.claude/settings.local.json` и `~/.claude/settings.json` принадлежат только вам. Когда вы выбираете **Yes, and don't ask again** для команды, Claude Code сохраняет это правило в локальный файл.

320* Как мне создать новую конечную точку API?365* `.claude/settings.json` и хуки в нём принадлежат репозиторию. После коммита они применяются ко всем, кто работает в репозитории. Его правила deny действуют сразу. Его правила `allow` ждут, пока каждый человек не примет [диалоговое окно доверия](https://code.claude.com/docs/ru/permissions.md#what-runs-before-you-trust-a-folder) для этой папки, а [доверие к рабочему пространству](https://code.claude.com/docs/ru/hooks.md#workspace-trust) также определяет, когда его хуки начнут выполняться на их машине.

321* Что делает `async move { ... }` на строке 134 файла `foo.rs`?366* [Управляемые настройки](https://code.claude.com/docs/ru/managed-settings.md) принадлежат организации. Они поступают из консоли администратора, MDM или файла `managed-settings.json`, и никакой личный файл настроек не может их переопределить, что делает их единственным местом для политики команды безопасности. Если именно вы их задаёте, см. [Настройка Claude Code для вашей организации](https://code.claude.com/docs/ru/admin-setup.md).

322* Какие граничные случаи обрабатывает `CustomerOnboardingFlowImpl`?

323* Почему этот код вызывает `foo()` вместо `bar()` на строке 333?

324 367 

325Использование Claude Code таким образом — это эффективный рабочий процесс адаптации, улучшающий время рамп-апа и снижающий нагрузку на других инженеров. Специальное формирование подсказок не требуется: задавайте вопросы напрямую.368Какой бы ни была область действия, держите набор принудительных правил небольшим. Каждый хук и каждое правило deny иногда срабатывает, когда не должно, и кому-то приходится поддерживать каждое из них. Если у вас их накопилось сорок, большинство из них, вероятно, предпочтения, которые Claude мог бы взвесить сам.

326 369 

327### Позвольте Claude взять интервью у вас370## Измените настройку по умолчанию

328 371 

329> [!TIP]372> [!TIP]

330>373>

331> Для более крупных функций позвольте Claude взять интервью у вас в первую очередь. Начните с минимальной подсказки и попросите Claude взять интервью у вас, используя инструмент `AskUserQuestion`.374> Значения по умолчанию достаточно хороши, чтобы их не трогать, пока задача не начнёт стоить больше времени, токенов или прерываний, чем следует. Когда это происходит, запустите `/usage` в сессии, чтобы увидеть, куда всё ушло.

332 375 

333Claude задаёт вопросы о вещах, которые вы, возможно, не рассмотрели, включая техническую реализацию, UI/UX, граничные случаи и компромиссы. Замените `[brief description]` описанием вашей функции перед отправкой подсказки.376Новая сессия уже принимает за вас несколько решений:

334 377 

335```text wrap theme={null}378* Интерактивные сессии в терминале и VS Code запускаются в авторежиме.

336I want to build [brief description]. Interview me in detail using the AskUserQuestion tool.379* На большинстве тарифов и у большинства провайдеров используется [Claude Opus 5.5 с effort medium](https://code.claude.com/docs/ru/model-config.md#default-model-setting).

380* Работа делегируется субагентам, когда для этого есть причина.

381* Диалог сжимается по мере роста.

337 382 

338Ask about technical implementation, UI/UX, edge cases, concerns, and tradeoffs. Don't ask obvious questions, dig into the hard parts I might not have considered.383Чаще всего вы об этом даже не задумываетесь. Когда задача всё же обходится дороже, чем следует, причина обычно в одном из этих четырёх пунктов.

339 384 

340Keep interviewing until we've covered everything, then write a complete spec to SPEC.md.385### Измените режим разрешений

341```

342 386 

343Как только спецификация завершена, начните свежий сеанс для её выполнения. Новый сеанс имеет чистый контекст, сосредоточенный полностью на реализации, и у вас есть письменная спецификация для справки.387У обоих концов диапазона разрешений есть своя цена:

344 388 

345Наиболее полезные спецификации являются самодостаточными: они называют задействованные файлы и интерфейсы, указывают, что находится вне области действия, и заканчиваются этапом сквозной проверки, который доказывает, что функция работает. Время, потраченное на уточнение спецификации, окупается больше, чем время, потраченное на наблюдение за реализацией.389* **Режим Manual**: вы сами подтверждаете каждую правку и каждую команду, которая выходит за рамки чтения. Безопасно, но после десятого запроса вы начинаете подтверждать не читая, и ничего не движется, пока вас нет за клавиатурой.

390* **`bypassPermissions`**: подтверждает всё, что не покрыто вашими правилами deny и ask, что имеет смысл только в одноразовом контейнере.

346 391 

347***392[Авторежим](https://code.claude.com/docs/ru/permission-modes.md#eliminate-prompts-with-auto-mode) находится между ними, и именно в нём [запускаются](https://code.claude.com/docs/ru/permission-modes.md#which-mode-a-session-starts-in) интерактивные сессии в терминале и VS Code. Claude работает, не останавливаясь ради рутинных подтверждений, а отдельная модель-классификатор проверяет действия в [фиксированном порядке](https://code.claude.com/docs/ru/permission-modes.md#how-the-classifier-evaluates-actions) перед их выполнением. Он сосредоточен на [том, что вы хотели бы, чтобы остановил человек](https://code.claude.com/docs/ru/permission-modes.md#what-the-classifier-blocks-by-default):

348 393 

349## Управляйте вашим сеансом394* `curl | bash`

395* Деплои и миграции в продакшене

396* Force push поверх чужой работы

397* Отправка конфиденциальных данных на внешние эндпоинты

398* Действия, которые выглядят так, будто ими управляет контент, прочитанный Claude, а не вы

350 399 

351Разговоры являются постоянными и обратимыми. Используйте это в своих интересах!400Когда он всё же что-то блокирует, вы получаете уведомление, а действие появляется в разделе **Recently denied** в `/permissions`, где его можно повторить с ручным подтверждением. После [трёх блокировок подряд](https://code.claude.com/docs/ru/permission-modes.md#when-auto-mode-falls-back) (или двадцати в сумме) авторежим приостанавливается и снова начинает спрашивать вас.

352 401 

353### Исправляйте курс рано и часто402Ничто из этого не заменяет ваши детерминированные механизмы, потому что классификатор работает *после* них. Правила deny и ask, а также хуки `PreToolUse` применяются до того, как классификатор что-либо увидит, поэтому правило deny блокирует в авторежиме точно так же, как и везде. Песочница по-прежнему ограничивает [shell-команды, которые она оборачивает](https://code.claude.com/docs/ru/sandboxing.md#what-runs-outside-the-sandbox).

354 403 

355> [!TIP]404> [!NOTE]

356>405>

357> Исправьте Claude, как только заметите, что он идёт не в том направлении.406> Вы также можете сказать в диалоге `don't push until I've reviewed`, и классификатор [воспримет это как сигнал блокировки](https://code.claude.com/docs/ru/permission-modes.md#boundaries-you-state-in-conversation). Но это всё ещё модель, читающая транскрипт, и фраза может потеряться при сжатии диалога, поэтому всему важному место в правиле deny.

407 

408Обратная проблема — классификатор, который раз за разом останавливает то, что в вашей среде является рутиной. Вместо того чтобы каждый раз подтверждать вручную, добавьте это в `autoMode.allow` или опишите вашу доверенную инфраструктуру в [конфигурации авторежима](https://code.claude.com/docs/ru/auto-mode-config.md). Это обычный английский текст, а не шаблоны, и [`/auto-mode-setup`](https://code.claude.com/docs/ru/auto-mode-config#generate-environment-entries) может подготовить для вас раздел `environment` на основе вашего проекта и недавних сессий:

409 

410```json ~/.claude/settings.json theme={null}

411{

412 "autoMode": {

413 "environment": [

414 "$defaults",

415 "Source control: github.com/example-org and every repo under it",

416 "Trusted internal domains: *.internal.example.com"

417 ],

418 "allow": [

419 "$defaults",

420 "Deploying to the staging namespace is fine, it's isolated from production and resets nightly"

421 ]

422 }

423}

424```

358 425 

359Лучшие результаты получаются из плотных циклов обратной связи. Хотя Claude иногда решает проблемы идеально с первой попытки, быстрое исправление обычно даёт лучшие решения быстрее.426> [!WARNING]

427>

428> Сохраняйте `"$defaults"` в каждом заданном вами списке, потому что без него ваши записи *заменяют* встроенные правила этого списка, а не дополняют их. Для `environment` и `allow` вы потеряете встроенный контекст и исключения, а список `soft_deny` без него лишается встроенных блокировок force push и деплоев в продакшен.

429>

430> Блок `autoMode` также должен находиться в `~/.claude/settings.json`, а не в проекте, потому что классификатор игнорирует `autoMode` в настройках проекта.

360 431 

361* **`Esc`**: остановите Claude в середине действия клавишей `Esc`. Контекст сохраняется, поэтому вы можете перенаправить.432Если вы предпочитаете видеть каждую правку и команду до их выполнения, `Shift+Tab` в сессии переключает режимы разрешений, включая Manual, или можно запустить `claude --permission-mode manual` из оболочки. А если Manual затем спрашивает слишком часто, `/fewer-permission-prompts` просматривает ваши недавние транскрипты на предмет частых вызовов Bash и MCP только для чтения и добавляет их в список разрешённых в `.claude/settings.json`.

362* **`Esc + Esc` или `/rewind`**: нажмите `Esc` дважды или запустите `/rewind` для открытия меню перемотки и восстановления предыдущего разговора и состояния кода, или суммируйте из выбранного сообщения.

363* **`"Undo that"`**: попросите Claude отменить его изменения.

364* **`/clear`**: сбросить контекст между несвязанными задачами. Длинные сеансы с нерелевантным контекстом могут снизить производительность.

365 433 

366Если вы исправили Claude более двух раз на одну и ту же проблему в одном сеансе, контекст загромождён неудачными подходами. Запустите `/clear` и начните заново с более конкретной подсказкой, которая включает то, что вы узнали. Чистый сеанс с лучшей подсказкой почти всегда превосходит длинный сеанс с накопленными исправлениями.434### Измените модель и effort

367 435 

368### Управляйте контекстом агрессивно436[Effort](https://code.claude.com/docs/ru/model-config.md#adjust-effort-level) — основной способ управлять тем, как долго думает Claude, и он заменяет большую часть того, что раньше делали формулировками промпта. Claude Opus 5.5, Sonnet 5.5 и Haiku 5.5 по умолчанию используют `medium`, чего вполне достаточно для повседневной работы над функциями с понятным объёмом. Случаи, когда стоит его менять с помощью `/effort` в сессии:

369 437 

370> [!TIP]438* Повысьте его через `/effort high` или `/effort xhigh`, когда правильный результат зависит от случаев, которые легко упустить. Например, баг в коде, который писали не вы, нестабильный тест или изменение схемы, при котором Claude должен найти всех, кто читает старую структуру. Тогда Claude проверяет больше граничных случаев и тщательнее перепроверяет свою работу перед ответом — на это и уходят дополнительное время и токены.

371>439* Понизьте его через `/effort low`, когда вы быстро обмениваетесь репликами и всё равно просматриваете каждый результат: мозговой штурм, первый набросок, переименование в нескольких файлах. Claude быстрее даст вам отправную точку, а поскольку вы направляете каждый шаг, дополнительные размышления почти ничего бы не изменили, кроме времени ожидания.

372> Запустите `/clear` между несвязанными задачами для сброса контекста.440* Оставьте `max` для сложной задачи, которую Claude должен проработать без вас, например поиска уязвимости. На обычных задачах он склонен размышлять избыточно, так что вы платите больше за ответ, который может оказаться не лучше, чем дал бы `high`.

441* Когда это нужно только для следующего сообщения, например для одного хитрого вопроса посреди в остальном рутинной работы, добавьте в этот промпт [`ultrathink`](https://code.claude.com/docs/ru/model-config#use-ultrathink-for-one-off-deep-reasoning), вместо того чтобы менять настройку.

373 442 

374Claude Code автоматически компактирует историю разговора, когда вы приближаетесь к ограничениям контекста, что сохраняет важный код и решения, освобождая место.443Что касается самой модели, Opus 5.5 по умолчанию хорошо справляется с большинством задач программирования, а Sonnet стоит дешевле на рутинной работе. [Claude Fable 5.1](https://code.claude.com/docs/ru/model-config.md#work-with-fable) доступна, когда вы явно выбираете её через `/model fable`, а Haiku хорошо подходит для субагентов, выполняющих простые задания. Полный список по тарифам и провайдерам — в разделе [Конфигурация модели](https://code.claude.com/docs/ru/model-config.md).

375 444 

376Во время длинных сеансов контекстное окно Claude может заполниться нерелевантным разговором, содержимым файлов и командами. Это может снизить производительность и иногда отвлечь Claude.445### Знайте, во что обходятся субагенты

377 446 

378* Используйте `/clear` часто между задачами для полного сброса контекстного окна447Claude сам делегирует работу [субагентам](https://code.claude.com/docs/ru/sub-agents.md):

379* Когда автоматическое компактирование срабатывает, Claude суммирует то, что имеет значение, включая паттерны кода, состояния файлов и ключевые решения

380* Для большего контроля запустите `/compact <instructions>`, например `/compact Focus on the API changes`

381* Для компактирования только части разговора используйте `Esc + Esc` или `/rewind`, выберите контрольную точку сообщения и выберите **Summarize from here** или **Summarize up to here**. Первый вариант сжимает сообщения с этой точки вперёд, сохраняя более ранний контекст нетронутым; второй сжимает более ранние сообщения, сохраняя недавние в полном объёме. См. [меню перемотки с опциями суммирования](https://code.claude.com/docs/ru/checkpointing.md#rewind-and-summarize).

382* Настройте поведение компактирования в CLAUDE.md с инструкциями вроде `"When compacting, always preserve the full list of modified files and any test commands"` для обеспечения того, что критический контекст выживает при суммировании

383* Для вопросов, которые не нужно оставлять в контексте, используйте [`/btw`](https://code.claude.com/docs/ru/interactive-mode#side-questions-with-%2Fbtw). Ответ никогда не входит в историю разговора, поэтому вы можете проверить деталь без увеличения контекста.

384 448 

385### Используйте subagents для исследования449* Широкий поиск по кодовой базе передаётся встроенному агенту Explore.

450* Побочные задачи [ответвляются](https://code.claude.com/docs/ru/sub-agents.md#fork-the-current-conversation), пока включён режим fork (по умолчанию).

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

386 452 

387> [!TIP]453Просить об этом вам придётся редко, но полезно знать, что вы получаете и сколько это стоит.

388>

389> Делегируйте исследование с помощью `"use subagents to investigate X"`. Они исследуют в отдельном контексте, сохраняя ваш основной разговор чистым для реализации.

390 454 

391Поскольку контекст — это ваше фундаментальное ограничение, используйте subagents для того, чтобы держать исследование вне его. Когда Claude исследует кодовую базу, он читает много файлов, все из которых потребляют ваш контекст. Subagents запускаются в отдельных контекстных окнах и сообщают обратно суммарные данные:455Субагенты окупаются в следующих ситуациях:

392 456 

393```text wrap theme={null}457* Одновременное выполнение независимых частей работы, чтобы вся задача завершилась быстрее

394Use subagents to investigate how our authentication system handles token458* Вынос длинного вывода, например полного прогона тестов или широкого поиска, из основного диалога, где иначе он оставался бы до конца сессии

395refresh, and whether we have any existing OAuth utilities I should reuse.459* Получение рецензента, который не видел, как писался код

396```460* Предоставление задаче меньшего набора инструментов, чем у основной сессии, например рецензент, который может читать, но не редактировать

397 461 

398Вы также можете использовать subagents для проверки после того, как Claude что-то реализует. См. [Добавьте шаг состязательного рецензирования](#add-an-adversarial-review-step).462Обходятся они вам в основном в токены, поскольку каждый субагент отправляет собственные запросы, и они учитываются в том же объёме использования, что и основной диалог. Иногда это ещё и время: новому субагенту сначала нужно собрать контекст, который в вашем диалоге уже был, поэтому он может оказаться *медленнее*, чем выполнение задачи на месте.

399 463 

400### Перемотайте с контрольными точками464И по умолчанию это та же модель (или меньшая) на той же задаче. Вы получаете параллелизм или свежий взгляд, но не более умный ответ.

401 465 

402> [!TIP]466Чтобы тратить на них меньше:

403>

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

405 467 

406Claude автоматически создаёт снимки файлов перед каждым изменением, поэтому контрольная точка может восстановить их. Дважды нажмите `Escape` или запустите `/rewind` для открытия меню перемотки. Вы можете восстановить только разговор, восстановить только код, восстановить оба или суммировать из выбранного сообщения. См. [Checkpointing](https://code.claude.com/docs/ru/checkpointing.md) для деталей.468* Задайте [`model: haiku`](https://code.claude.com/docs/ru/sub-agents#choose-a-model) в определении субагента, если его работа проста, например собрать файлы, импортирующие модуль, или проверить ссылки в документации. Такой работе не нужна большая модель, а Haiku стоит намного дешевле за запрос.

469* Просите возвращать короткие сводки, чтобы двадцать результатов всё равно не заполнили ваш контекст.

470* Смотрите `/usage`, чтобы увидеть, какую долю использования занимает каждый тип субагентов, и понять, какие из них оправдывают свою стоимость.

471* Дайте пользовательскому субагенту в `.claude/agents/` только `tools: Read, Grep, Glob`. Теперь это рецензент, который ничего не может редактировать, и это ограничение обеспечивается Claude Code, а не запрашивается в промпте.

407 472 

408Вместо тщательного планирования каждого хода, вы можете сказать Claude попробовать что-то рискованное. Если это не сработает, перемотайте и попробуйте другой подход. Контрольные точки сохраняются между сеансами, поэтому вы можете закрыть ваш терминал и всё ещё перемотать позже.473Такой рецензент — это один короткий файл, `.claude/agents/reviewer.md`:

409 474 

410> [!WARNING]475```markdown .claude/agents/reviewer.md theme={null}

411>476---

412> Контрольные точки отслеживают только изменения, сделанные через инструменты редактирования файлов Claude. Изменения, сделанные через команды Bash или внешние процессы, не захватываются. Это не замена git.477name: reviewer

478description: Reviews changed files against the spec they were built from. Use after implementing a feature, before opening the PR.

479tools: Read, Grep, Glob

480---

481You're reviewing code you didn't write. Compare the changed files against the spec you're given,

482check that every requirement is implemented and the listed edge cases have tests,

483and report only the gaps that affect correctness. Skip style.

484```

413 485 

414### Возобновите разговоры486Попросите Claude `have the reviewer compare the rate limiter against SPEC.md`, и пробелы вернутся в вашу сессию, где Claude сможет их исправить.

415 487 

416> [!TIP]488### Сокращайте расходы и контекст

417>

418> Назовите сеансы с помощью `/rename` и относитесь к ним как к ветвям: каждый рабочий поток получает свой собственный постоянный контекст.

419 489 

420Claude Code сохраняет разговоры локально, поэтому когда задача охватывает несколько сеансов, вам не нужно переобъяснять контекст. Запустите [`claude --continue`](https://code.claude.com/docs/ru/sessions#resume-a-session) для продолжения с самого последнего сеанса или `claude --resume` для выбора из списка. Дайте сеансам описательные имена, такие как `oauth-migration`, чтобы вы могли найти их позже. См. [Manage sessions](https://code.claude.com/docs/ru/sessions.md) для полного набора управления возобновлением, ветвлением и именованием.490При окне в 1M токенов у большинства современных моделей и сжатии вблизи его верхней границы контекст у вас будет заканчиваться редко. Но вы всё равно можете *платить* за контекст, который вам не нужен. Каждый запрос отправляет весь диалог, поэтому сессия, в которой накопились три несвязанные задачи, перечитывает все три на каждом ходу четвёртой. Это [стоит дешевле, пока кэш тёплый](https://code.claude.com/docs/ru/costs.md#why-usage-climbs-in-a-long-session), и по полной цене после его истечения.

421 491 

422***492[`/usage`](https://code.claude.com/docs/ru/costs) — первое место, куда стоит заглянуть. На Pro, Max, Team и Enterprise он разбивает ваше использование по скиллам, субагентам, плагинам и MCP-серверам. Он также помечает такие паттерны, как длинный контекст или частые промахи кэша, когда один из них превышает 10% вашего использования. Дальше — обычные способы исправления:

423 493 

424## Автоматизируйте и масштабируйте494* `/clear` между несвязанными задачами. Это ничего не стоит и означает, что следующая задача не продолжает платить за историю предыдущей. `/clear oauth-migration` даёт имя сессии, которую вы покидаете, чтобы позже к ней можно было вернуться.

495* `/compact` с фокусом, например `/compact keep the API changes and the test commands`. В длинной сессии `/compact` сам по себе является большим запросом, поскольку читает весь диалог, чтобы его обобщить, и тем более после истечения кэша.

496* Следите за фоновой работой: `/loop`, проверка цели после каждого хода и собственные субагенты Claude продолжают отправлять запросы, пока вы ничего не вводите.

425 497 

426Как только вы научитесь эффективно работать с одним Claude, умножьте свою производительность с помощью параллельных сессий, неинтерактивного режима и паттернов fan-out.498> [!NOTE]

499>

500> [Кэш промптов](https://code.claude.com/docs/ru/prompt-caching.md) живёт около часа при подписке и пять минут при использовании API-ключа, облачного провайдера или кредитов использования. Субагенты получают пять минут, если вы это не измените.

501>

502> При часовом кэше простаивающая сессия объёмом более примерно 200K токенов сжимается незадолго до истечения кэша, поэтому после обеда вы продолжите со сводки. Если история вам вообще не нужна, новая сессия всё равно обойдётся дешевле.

427 503 

428### Запустите неинтерактивный режим504## Управляйте сессией

429 505 

430> [!TIP]506> [!TIP]

431>507>

432> Используйте `claude -p "prompt"` в CI, pre-commit хуках или скриптах. Добавьте `--output-format stream-json --verbose` для потокового вывода JSON.508> Следите за первой минутой, нажимайте `Esc`, как только Claude отклоняется от курса, а после двух неудачных исправлений запустите `/clear` и напишите промпт получше вместо третьего исправления.

433 509 

434С `claude -p "your prompt"` вы можете запустить Claude неинтерактивно, без интерактивного промпта. Запуск по-прежнему создаёт возобновляемую сессию, если вы не передадите `--no-session-persistence`. [Неинтерактивный режим](https://code.claude.com/docs/ru/headless.md) — это способ интегрировать Claude в CI-конвейеры, pre-commit хуки или любой автоматизированный рабочий процесс. Форматы вывода позволяют анализировать результаты программно: простой текст, JSON или потоковый JSON.510Никакая конфигурация не заменит наблюдения за первой минутой и вмешательства, когда Claude направляется не туда, куда вы хотели. Для этого есть всего несколько средств управления, и их стоит знать наизусть:

435 511 

436```bash theme={null}512* `Esc` останавливает Claude посреди действия и сохраняет всё сделанное до этого момента, поэтому его можно перенаправить без потери работы.

437# One-off queries513* `/rewind` или двойное нажатие `Esc` при пустом промпте открывает [меню перемотки](https://code.claude.com/docs/ru/checkpointing.md#rewind-and-summarize), где можно откатить код, диалог или и то, и другое к более раннему промпту. Благодаря этому можно с небольшим риском сначала попробовать более смелый подход и откатиться, если он не сработает. То же меню может обобщить часть диалога, если она устарела.

438claude -p "Explain what this project does"514* `/clear` начинает заново. Если вы дважды исправили одно и то же, а всё по-прежнему неправильно, третье исправление в основном лишь добавится к диалогу, который уже содержит две неудачные попытки, которые Claude продолжит перечитывать. `/clear` плюс один новый промпт, учитывающий то, что вы узнали, почти всегда работает лучше.

439 

440# Structured output for scripts

441claude -p "List all API endpoints" --output-format json

442 515 

443# Streaming for real-time processing516> [!WARNING]

444claude -p "Analyze this log file" --output-format stream-json --verbose517>

445```518> Чекпоинты охватывают файлы, которые Claude редактировал собственными инструментами работы с файлами в основном диалоге, поэтому файл, который затронула только команда Bash, [не восстанавливается](https://code.claude.com/docs/ru/checkpointing.md#bash-command-changes-not-tracked). Они работают вместе с git, а не заменяют его.

446 519 

447Первая команда выводит простой текст. Формат `json` возвращает один объект JSON с полем `result`. Формат `stream-json` выводит один объект JSON на строку, начиная с события инициализации.520Ещё два средства поменьше: [`/btw`](https://code.claude.com/docs/ru/interactive-mode#side-questions-with-%2Fbtw) отвечает на быстрый вопрос, ничего не добавляя в историю. А для работы, растянутой на несколько дней, `/rename oauth-migration` в сессии даёт ей имя, чтобы позже [`claude --resume oauth-migration`](https://code.claude.com/docs/ru/sessions#resume-by-session-id-or-name) из оболочки подхватил её снова, вместе с чекпоинтами. `claude --continue` возобновляет самую последнюю сессию.

448 521 

449### Запустите несколько сессий Claude522## Позвольте Claude работать без вас

450 523 

451> [!TIP]524> [!TIP]

452>525>

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

454 

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

456 527 

457* [Worktrees](https://code.claude.com/docs/ru/worktrees.md): запускайте отдельные сессии CLI в изолированных git checkouts, чтобы правки не конфликтовали528Всё на этой странице становится немного важнее, когда вас нет рядом, чтобы заметить ошибки. Пока вы наблюдаете, отсутствие у Claude какой-то части контекста не страшно: вы заметите это за одно-два сообщения и скажете ему. В запуске, который вы начали перед сном, никто ему ничего не скажет, и утром вы узнаете, что он всю ночь строил работу на неверном предположении.

458* [Cross-session messaging](https://code.claude.com/docs/ru/cross-session-messaging.md): позвольте сессиям, которые вы запускаете самостоятельно, передавать результаты друг другу

459* [Desktop app](https://code.claude.com/docs/ru/desktop.md#work-in-parallel-with-sessions): управляйте несколькими локальными сессиями визуально, при желании каждой в своём worktree

460* [Use Claude Code in the cloud](https://code.claude.com/docs/ru/claude-code-on-the-web.md): по умолчанию запускайте сессии на инфраструктуре, управляемой Anthropic

461* [Agent view](https://code.claude.com/docs/ru/agent-view.md): research preview. Запустите `claude agents`, чтобы отправлять сессии, которые продолжают работать в фоне, и наблюдать за ними с одного экрана

462* [Agent teams](https://code.claude.com/docs/ru/agent-teams.md): экспериментальная функция, отключена по умолчанию. Автоматизированная координация нескольких сессий с общими задачами, обменом сообщениями и лидером команды

463 529 

464Помимо параллелизации работы, несколько сессий позволяют выстраивать рабочие процессы, ориентированные на качество. Свежий контекст улучшает код-ревью, поскольку Claude не будет предвзят к коду, который он только что написал.530Прежде чем оставить задачу выполняться самостоятельно, стоит пройтись по этим пяти вопросам применительно к конкретной задаче:

465 531 

466Например, используйте паттерн Writer/Reviewer:5321. Знает ли он, как выглядит готовый результат? Условие цели, файл спецификации или падающий тест, который он должен сделать зелёным.

5332. Может ли он проверить свою работу? Набор тестов, хук `Stop`, какой-либо этап ревью.

5343. К чему ему разрешено прикасаться? Правила разрешений, `dontAsk`, песочница, worktree, единственная ветка, в которую он может делать push.

5354. Что его остановит? `--max-turns`, `--max-budget-usd`, лимит расходов.

5365. Куда идёт результат и кто его утверждает? PR, комментарий или сводка, а затем человек, одобряющий слияние, деплой или что-либо ещё необратимое.

467 537 

468| Session A (Writer) | Session B (Reviewer) |538После запуска Claude сам доведёт длинную задачу до конца. За вами остаётся запустить её, решить, что «готово» означает на этот раз, и одобрить слияние в конце.

469| - | - |

470| `Implement a rate limiter for our API endpoints` | |

471| | `Review the rate limiter implementation in @src/middleware/rateLimiter.ts. Look for edge cases, race conditions, and consistency with our existing middleware patterns.` |

472| `Here's the review feedback: [Session B output]. Address these issues.` | |

473 539 

474Вы можете сделать нечто подобное с тестами: пусть один Claude напишет тесты, а другой — код, который их пройдёт.540### Запускайте Claude из скрипта

475 541 

476### Fan out через файлы542[`claude -p "prompt"`](https://code.claude.com/docs/ru/headless) выполняется один раз и завершается — именно так Claude Code оказывается в задачах CI, git-хуках и циклах оболочки.

477 

478> [!TIP]

479>

480> Перебирайте задачи в цикле, вызывая `claude -p` для каждой. Используйте `--allowedTools`, чтобы заранее разрешить инструменты для пакетных операций.

481 543 

482Для больших миграций или анализов вы можете распределить работу между множеством параллельных вызовов Claude. Запустите [`/batch <instruction>`](https://code.claude.com/docs/ru/commands#all-commands), чтобы Claude разделил изменение между 5–30 субагентами. Каждый субагент работает в своём worktree. Чтобы вместо этого управлять fan-out из собственного скрипта, перебирайте `claude -p` в цикле:544В скрипте вам почти всегда понадобятся ещё несколько флагов:

483 545 

484**1. Сгенерируйте список задач**546* [`--bare`](https://code.claude.com/docs/ru/headless#start-faster-with-bare-mode) пропускает хуки, скиллы, плагины, MCP-серверы и файлы `CLAUDE.md` — как из репозитория, так и с машины, — поэтому запуск ведёт себя одинаково, где бы он ни выполнялся. Он также никогда не использует ваш вход в claude.ai: аутентификация берётся из `ANTHROPIC_API_KEY`, `apiKeyHelper` в файле, переданном через `--settings`, или из учётных данных вашего облачного провайдера.

547* `--append-system-prompt`, `--mcp-config` и `--settings` явно передают всё, что запуску *действительно* нужно.

548* `--allowedTools` заранее разрешает его инструменты, а [`--permission-mode dontAsk`](https://code.claude.com/docs/ru/permission-modes#allow-only-pre-approved-tools-with-dontask-mode) отклоняет всё остальное, что потребовало бы подтверждения.

549* `--output-format json` даёт единый объект результата для разбора, а `stream-json` с `--verbose` передаёт события по мере их возникновения.

485 550 

486Попросите Claude записать список файлов, которые нужно мигрировать, в файл, чтобы цикл на следующем шаге мог его прочитать, с помощью промпта вроде `list all 2,000 Python files that need migrating and save the list to files.txt`551Вместе это выглядит так:

487 

488**2. Напишите скрипт для перебора списка**

489 552 

490```bash theme={null}553```bash theme={null}

491for file in $(cat files.txt); do554for file in $(cat files.txt); do

492 claude -p "Migrate $file from Python 2 to Python 3. Return OK or FAIL." \555 claude --bare -p "Migrate $file to the new logger API and commit. Reply OK or FAIL." \

493 --allowedTools "Edit,Bash(git commit *)" \556 --allowedTools "Read,Edit,Bash(git add *),Bash(git commit *)" \

494 --permission-mode dontAsk557 --permission-mode dontAsk \

558 --max-turns 20

495done559done

496```560```

497 561 

498**3. Протестируйте на нескольких файлах, затем запустите на всех**562Когда запуск завершается, Claude отвечает `OK` или `FAIL`, а запуск, достигший лимита ходов, вместо этого завершается с ошибкой. Сначала попробуйте на трёх файлах, посмотрите, что пошло не так, исправьте промпт, а затем запустите остальные.

499 

500Уточните свой промпт с учётом того, что пошло не так с первыми 2–3 файлами, затем запустите на полном наборе. Флаг `--allowedTools` заранее разрешает инструменты, необходимые для миграции. [`--permission-mode dontAsk`](https://code.claude.com/docs/ru/permission-modes#allow-only-pre-approved-tools-with-dontask-mode) отклоняет всё остальное, что потребовало бы подтверждения, — это важно, когда вы запускаете работу без присмотра, хотя установленный вами [мод](https://code.claude.com/docs/ru/plugins/mods/overview.md) всё же может подтвердить некоторые из этих вызовов.

501 563 

502Вы также можете интегрировать Claude в существующие конвейеры данных/обработки:564Авторежим работает и с `-p`, если передать `--permission-mode auto`. В неинтерактивном запуске блокировка классификатором запрещает только это одно действие, и Claude продолжает работу, а повторные блокировки не приостанавливают запуск, как это происходит в терминале. Прочитайте, [как там применяются пороговые значения](https://code.claude.com/docs/ru/permission-modes.md#repeated-block-thresholds), прежде чем полагаться на это.

503 565 

504```bash theme={null}566### Запускайте по расписанию или по событию

505claude -p "<your prompt>" --output-format json | your_command

506```

507 567 

508### Запустите автономно с авторежимом568Когда запуск идёт, Claude может справиться с остальным сам. Единственное, чего он не может, — решить *начать*, поэтому это должно сделать что-то другое: вы, таймер или событие вроде упавшей проверки CI или нового PR.

509 569 

510Для непрерывного выполнения с фоновыми проверками безопасности используйте [авторежим](https://code.claude.com/docs/ru/permission-modes.md#eliminate-prompts-with-auto-mode). Модель-классификатор проверяет команды перед их запуском, блокируя выход за пределы задачи, неизвестную инфраструктуру и действия, вызванные враждебным контентом, и при этом позволяя рутинной работе продолжаться без запросов.570Внутри открытой сессии это [`/loop`](https://code.claude.com/docs/ru/scheduled-tasks#run-a-prompt-repeatedly-with-%2Floop), который повторяет промпт с заданным интервалом:

511 571 

512```bash theme={null}572```text theme={null}

513claude --permission-mode auto -p "fix all lint errors"573/loop 15m check CI on this branch, and if it's red pull the failing job's log, fix it and push

514```574```

515 575 

516Когда классификатор повторно блокирует действия в неинтерактивном запуске с флагом `-p`, Claude Code не останавливает запуск. О том, что происходит вместо этого, и о пороговых значениях см. в разделе [когда авторежим переключается на резервный вариант](https://code.claude.com/docs/ru/permission-modes.md#when-auto-mode-falls-back).576Каждый запуск — это ещё один ход в той же сессии, поэтому не оставляйте его работать в длинном диалоге. Для всего, что должно происходить, пока ваш ноутбук закрыт, [`/schedule`](https://code.claude.com/docs/ru/routines#create-from-the-cli) настраивает [облачную запланированную задачу](https://code.claude.com/docs/ru/routines.md), которая запускается по таймеру. Для неё нужен вход в claude.ai, а не API-ключ. Триггер по событию GitHub можно добавить, попросив об этом Claude, а API-триггер — на [claude.ai/code/routines](https://claude.ai/code/routines).

517 

518### Добавьте шаг состязательного ревью

519 577 

520> [!TIP]578> [!WARNING]

521>579>

522> Прежде чем считать задачу выполненной, попросите субагента проверить diff в свежем контексте и сообщить о пробелах.580> Прежде чем оставить облачную запланированную задачу работать, защитите `main` с помощью [правила ветки GitHub, которое задача не может обойти](https://code.claude.com/docs/ru/routines.md#repositories-and-branch-permissions). И понаблюдайте за первыми несколькими запусками чего-либо нового, прежде чем доверять ему работу без присмотра.

523 

524Чем дольше Claude работает без присмотра, тем важнее независимая проверка, прежде чем вы сочтёте работу выполненной. Рецензент, работающий в свежем контексте [субагента](https://code.claude.com/docs/ru/sub-agents.md), видит только diff и критерии, которые вы ему даёте, но не рассуждения, приведшие к изменению, поэтому он оценивает результат сам по себе.

525 581 

526Для проверки корректности запустите встроенный [скилл `/code-review`](https://code.claude.com/docs/ru/commands), который проверяет текущий diff на наличие ошибок в свежем субагенте и возвращает результаты в сессию. Чтобы вместо этого проверить diff на соответствие вашему плану, напишите промпт для ревью самостоятельно. Укажите, какую работу проверить, по какому плану её проверять и что считается замечанием:582### Запускайте сессии параллельно

527 583 

528```text wrap theme={null}584Когда у вас одновременно идут отдельные части работы, дайте каждой собственную рабочую копию, чтобы правки не конфликтовали. [`claude -w feature-auth`](https://code.claude.com/docs/ru/worktrees#start-claude-in-a-worktree) запускает сессию в новом worktree, [десктопное приложение](https://code.claude.com/docs/ru/desktop.md#work-in-parallel-with-sessions) запускает несколько таких сессий рядом, а [облачные сессии](https://code.claude.com/docs/ru/claude-code-on-the-web.md) выполняют их в облаке, а не на вашей машине.

529Use a subagent to review the rate limiter diff against PLAN.md. Check that

530every requirement is implemented, the listed edge cases have tests, and

531nothing outside the task's scope changed. Report gaps, not style preferences.

532```

533 585 

534Поскольку рецензент работает как субагент, реализующая сессия получает пробелы напрямую и может исправить их и провести повторное ревью без того, чтобы вы копировали результаты между окнами.586Worktree — это свежая рабочая копия, а значит, файлов из gitignore, таких как `.env`, там нет, и зависимости не установлены. Для первого перечислите нужные файлы из gitignore в [`.worktreeinclude`](https://code.claude.com/docs/ru/worktrees#copy-gitignored-files-into-worktrees) в корне репозитория (синтаксис как у `.gitignore`), и Claude Code скопирует их в каждый создаваемый worktree:

535 587 

536Рецензент, которого попросили найти пробелы, обычно сообщит хотя бы о некоторых, даже если работа выполнена качественно, потому что именно это его попросили сделать. Попытки устранить каждое замечание приводят к чрезмерному усложнению: лишним слоям абстракции, защитному коду и тестам для случаев, которые не могут произойти. Попросите рецензента помечать только пробелы, влияющие на корректность или заявленные требования, а остальное считайте необязательным.588```text .worktreeinclude theme={null}

589.env

590.env.local

591config/dev-credentials.json

592```

537 593 

538***594Ограничьтесь небольшими файлами: они копируются, а не связываются ссылками, поэтому `node_modules` там означал бы полную копию на каждый worktree. Для больших каталогов есть настройка [`worktree.symlinkDirectories`](https://code.claude.com/docs/ru/settings-reference#worktree-symlinkdirectories); также можно держать команду установки в `CLAUDE.md`, чтобы Claude запускал её каждый раз, когда начинает работу в новой копии.

539 595 

540## Избегайте общих паттернов отказа596Убирать за всем этим самостоятельно вам придётся редко:

541 597 

542Это общие ошибки. Их раннее распознавание экономит время:598* Когда вы выходите из безымянной сессии в worktree, Claude Code [удаляет worktree](https://code.claude.com/docs/ru/worktrees.md#clean-up-worktrees), если в нём ничего нет. Для именованной сессии или сессии с изменениями он спрашивает, что делать.

599* Worktree субагентов исчезают, когда субагент завершает работу без изменений.

600* Оставшиеся worktree субагентов и фоновых сессий удаляются, когда они старше `cleanupPeriodDays` и не содержат работы.

543 601 

544* **Сеанс кухонной раковины.** Вы начинаете с одной задачи, затем спрашиваете Claude что-то несвязанное, затем возвращаетесь к первой задаче. Контекст полон нерелевантной информации.602> [!NOTE]

545 > **Исправление**: `/clear` между несвязанными задачами.603>

546* **Исправление снова и снова.** Claude делает что-то неправильно, вы исправляете, это всё ещё неправильно, вы исправляете снова. Контекст загромождён неудачными подходами.604> За запуском `claude -p --worktree` придётся убирать самостоятельно, поскольку он завершается без вопросов. Удаляйте такие worktree с помощью `git worktree remove <path>`, а если git отказывает, потому что worktree заблокирован, сначала выполните `git worktree unlock <path>`.

547 > **Исправление**: После двух неудачных исправлений, `/clear` и напишите лучшую начальную подсказку, включающую то, что вы узнали.

548* **Переопределённый CLAUDE.md.** Если ваш CLAUDE.md слишком длинный, Claude игнорирует половину его, потому что важные правила теряются в шуме.

549 > **Исправление**: Безжалостно обрезайте. Если Claude уже делает что-то правильно без инструкции, удалите это или преобразуйте в hook.

550* **Разрыв доверия-затем-проверки.** Claude создаёт правдоподобно выглядящую реализацию, которая не обрабатывает граничные случаи.

551 > **Исправление**: Всегда предоставляйте проверку (тесты, скрипты, скриншоты). Если вы не можете это проверить, не отправляйте это.

552* **Бесконечное исследование.** Вы просите Claude "исследовать" что-то без определения области. Claude читает сотни файлов, заполняя контекст.

553 > **Исправление**: Определите исследования узко или используйте subagents, чтобы исследование не потребляло ваш основной контекст.

554 605 

555***606Для одного большого механического изменения во многих файлах [`/batch migrate every handler to the v2 response helpers`](https://code.claude.com/docs/ru/commands) разбивает работу на 5–30 частей и показывает вам план. Затем он выполняет каждую часть в собственном worktree и открывает для неё PR. Из оболочки [`claude agents`](https://code.claude.com/docs/ru/agent-view) (пока research preview) даёт вам один экран для всего, что работает в фоне на вашей машине.

556 607 

557## Развивайте вашу интуицию608Вторая сессия — это также самый простой независимый рецензент, которого можно получить. Одна сессия пишет ограничитель частоты запросов, другая проверяет `@src/middleware/rateLimiter.ts`, не наблюдая за его написанием, а вы вставляете замечания обратно в первую. Та же идея, что и у `/code-review`, только сообщения переносите вы.

558 609 

559Паттерны в этом руководстве не высечены в камне. Они являются отправными точками, которые хорошо работают в целом, но могут быть не оптимальны для каждой ситуации.610## Что можно перестать делать

560 611 

561Иногда вы *должны* позволить контексту накапливаться, потому что вы глубоко в одной сложной проблеме и история ценна. Иногда вы должны пропустить планирование и позволить Claude понять это, потому что задача исследовательская. Иногда расплывчатая подсказка — это именно то, что нужно, потому что вы хотите увидеть, как Claude интерпретирует проблему перед её ограничением.612Каждый из этих советов был хорошим, когда его написали. Большинство были обходными путями для того, что модель тогда ещё не умела делать надёжно, и с тех пор модели это наверстали. Если некоторые из них всё ещё остаются у вас привычками, вот почему от них можно безопасно отказаться.

562 613 

563Обратите внимание на то, что работает. Когда Claude создаёт отличный выход, заметьте, что вы сделали: структуру подсказки, контекст, который вы предоставили, режим, в котором вы были. Когда Claude борется, спросите почему. Был ли контекст слишком шумным? Подсказка слишком расплывчатой? Задача слишком большой для одного прохода?614| Старый совет | Почему он устарел |

615| :- | :- |

616| Контекстное окно — ваше главное ограничение, управляйте им агрессивно | У большинства современных моделей окно в 1M токенов, а сжатие происходит само, поэтому контекст заканчивается редко. `/clear` между задачами по-прежнему стоит делать, потому что сфокусированный контекст даёт лучшие ответы и стоит дешевле. |

617| Добавляйте IMPORTANT или ВЕРХНИЙ РЕГИСТР к инструкциям, которые Claude продолжает пропускать | Старым моделям иногда требовались акценты. Современные следуют просто сформулированной строке, а нагромождение акцентов в основном заставляет Claude применять правило чрезмерно. Если это правило, которое не может гнуться, превратите его в хук или правило deny. Если строка теряется в длинном файле, файл нужно сократить. |

618| Используйте субагентов, чтобы защитить контекстное окно | Нехватка контекста теперь редко бывает проблемой. Субагенты по-прежнему отлично подходят для параллельной работы, выноса шумного вывода и независимого ревью, но каждое из этого стоит дополнительных токенов. |

619| Делегируйте субагенту, чтобы получить лучший ответ | Передача той же задачи субагенту не делает ответ лучше. Свежий рецензент действительно помогает, потому что не видел ваших рассуждений, но это не то же самое, что делегирование. |

620| `think hard`, `think harder`, `be thorough` в промпте | Для этого есть effort. Эти фразы — обычный текст промпта, который слегка подталкивает Claude в пределах его настройки effort, а не ключевые слова, которые её повышают. `ultrathink` по-прежнему работает: он запрашивает более глубокие рассуждения на этом одном ходе, не меняя вашу настройку effort. |

621| Говорите Claude продолжать, повторять до готовности, не лениться | Современные модели обычно доводят согласованную задачу до конца без напоминаний, а такие строки скорее вызовут лишнюю работу, чем устранят остановку. Дать Claude проверку, которую нужно пройти, — это другое, и это по-прежнему стоит делать. Если запуск всё же останавливается раньше времени, скажите `continue`, а для запусков без присмотра это обеспечат `/goal` или хук `Stop`. |

622| Описывайте архитектуру и структуру файлов в `CLAUDE.md` | Claude сам читает репозиторий. Записывайте только то, чего там нет. |

564 623 

565Со временем вы разовьёте интуицию, которую никакое руководство не может захватить. Вы будете знать, когда быть конкретным и когда быть открытым, когда планировать и когда исследовать, когда очищать контекст и когда позволить ему накапливаться.624Если какой-либо другой совет на этой странице когда-нибудь начнёт казаться пустой тратой сил, это, вероятно, признак того, что ему тоже место в этой таблице.

566 625 

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

568 627 

569* [How Claude Code works](https://code.claude.com/docs/ru/how-claude-code-works.md): агентивный цикл, инструменты и управление контекстом628* [Как работает Claude Code](https://code.claude.com/docs/ru/how-claude-code-works.md): цикл, инструменты и то, что загружается при запуске

570* [Extend Claude Code](https://code.claude.com/docs/ru/features-overview.md): skills, hooks, MCP, subagents и plugins629* [Изучите контекстное окно](https://code.claude.com/docs/ru/context-window.md): что занимает место в сессии и когда оно загружается

571* [Common workflows](https://code.claude.com/docs/ru/common-workflows.md): пошаговые рецепты для отладки, тестирования, PRs и многого другого630* [Расширьте Claude Code](https://code.claude.com/docs/ru/features-overview.md): выбор между скиллами, хуками, MCP, субагентами и плагинами

572* [CLAUDE.md](https://code.claude.com/docs/ru/memory.md): сохранять соглашения проекта и постоянный контекст631* [Выберите режим разрешений](https://code.claude.com/docs/ru/permission-modes.md) и [Настройте разрешения](https://code.claude.com/docs/ru/permissions.md)

632* [Эффективно управляйте расходами](https://code.claude.com/docs/ru/costs.md)

633* [Запускайте Claude Code программно](https://code.claude.com/docs/ru/headless.md) и [Автоматизируйте работу с облачными запланированными задачами](https://code.claude.com/docs/ru/routines.md)

634* Для руководителей команд и администраторов: [Настройка Claude Code для вашей организации](https://code.claude.com/docs/ru/admin-setup.md)

chrome.md +1 −1

Details

43 43 

44В организациях Enterprise, где включён HIPAA, Claude in Chrome по умолчанию отключён, и [Owner](https://code.claude.com/docs/ru/server-managed-settings.md#access-control) может включить его в [**Organization settings > Claude in Chrome**](https://claude.ai/admin-settings/browser-extension). Ваше соглашение с деловым партнёром (Business Associate Agreement, BAA) с Anthropic не распространяется на данные, отправляемые на сторонние сайты через Claude in Chrome. Список соответствующих требованиям сервисов (Eligible Services) см. в [руководстве по внедрению](https://trust.anthropic.com/resources?s=l1wrssd9hsbi4gak0tp5a6\&name=%5Banthropic%5D-hipaa-ready-offering-implementation-guide).44В организациях Enterprise, где включён HIPAA, Claude in Chrome по умолчанию отключён, и [Owner](https://code.claude.com/docs/ru/server-managed-settings.md#access-control) может включить его в [**Organization settings > Claude in Chrome**](https://claude.ai/admin-settings/browser-extension). Ваше соглашение с деловым партнёром (Business Associate Agreement, BAA) с Anthropic не распространяется на данные, отправляемые на сторонние сайты через Claude in Chrome. Список соответствующих требованиям сервисов (Eligible Services) см. в [руководстве по внедрению](https://trust.anthropic.com/resources?s=l1wrssd9hsbi4gak0tp5a6\&name=%5Banthropic%5D-hipaa-ready-offering-implementation-guide).

45 45 

46Для интеграции с Chrome также требуется вход с помощью `/login`. Если вы проходите аутентификацию с помощью API-ключа или долгоживущего токена из [`claude setup-token`](https://code.claude.com/docs/ru/authentication#generate-a-long-lived-token), Claude Code оставляет интеграцию с Chrome выключенной, даже если вы передаёте `--chrome`, поскольку расширение браузера не может пройти аутентификацию с этими учётными данными. До версии v2.1.216 такие сессии могли включать интеграцию с Chrome, но каждая попытка подключиться к расширению браузера завершалась ошибкой 403.46Для интеграции с Chrome также требуется вход с помощью `/login`. Если вы проходите аутентификацию с помощью API-ключа или долгоживущего токена из [`claude setup-token`](https://code.claude.com/docs/ru/authentication#generate-a-long-lived-token), Claude Code оставляет интеграцию с Chrome выключенной, даже если вы передаёте `--chrome`. Расширение браузера не может пройти аутентификацию с этими учётными данными.

47 47 

48> [!NOTE]48> [!NOTE]

49>49>

Details

996 996 

997В разделе [Запоминание подтверждений](https://code.claude.com/docs/ru/server-managed-settings.md#approval-memory) описано, как долго действует подтверждение и когда диалоговое окно появляется снова.997В разделе [Запоминание подтверждений](https://code.claude.com/docs/ru/server-managed-settings.md#approval-memory) описано, как долго действует подтверждение и когда диалоговое окно появляется снова.

998 998 

999Некоторые доставленные переменные `env`, например настройки выбора модели и числовые ограничения, Claude Code применяет без показа разработчику диалогового окна подтверждения. Другие доставленные переменные могут требовать подтверждения разработчика, прежде чем вступят в силу; непустое значение прокси, базового URL или `OTEL_EXPORTER_OTLP_ENDPOINT` требует его всегда. Когда доставленная переменная требует подтверждения, диалоговое окно её называет.999Некоторые доставленные переменные `env`, например настройки выбора модели и числовые ограничения, Claude Code применяет, не показывая разработчику диалоговое окно подтверждения. Другие доставленные переменные могут требовать подтверждения разработчика; непустое значение прокси, базового URL или `OTEL_EXPORTER_OTLP_ENDPOINT` требует его всегда. Когда доставленная переменная требует подтверждения, она указывается в диалоговом окне. Подробности, включая четыре переключателя конфиденциальности, для которых необходимость подтверждения зависит от доставленного значения, приведены в разделе [Переменные окружения и диалоговое окно подтверждения](https://code.claude.com/docs/ru/server-managed-settings.md#environment-variables-and-the-approval-dialog).

1000 

1001Подробности, включая четыре переключателя конфиденциальности, для которых от доставленного значения зависит, требуется ли подтверждение, приведены в разделе [Переменные окружения и диалоговое окно подтверждения](https://code.claude.com/docs/ru/server-managed-settings.md#environment-variables-and-the-approval-dialog). До v2.1.218 Claude Code применял без запроса разработчику меньше переменных, поэтому диалоговое окно вызывало больше доставленных переменных.

1002 1000 

1003Конфигурация [телеметрии](#telemetry) шлюза передаёт `OTEL_EXPORTER_OTLP_ENDPOINT`, поэтому установка `telemetry.forward_to` вызывает диалоговое окно на каждом интерактивном клиенте. Диалоговое окно защищает машину разработчика от скомпрометированного или враждебного шлюза, а не организацию от разработчика.1001Конфигурация [телеметрии](#telemetry) шлюза передаёт `OTEL_EXPORTER_OTLP_ENDPOINT`, поэтому установка `telemetry.forward_to` вызывает диалоговое окно на каждом интерактивном клиенте. Диалоговое окно защищает машину разработчика от скомпрометированного или враждебного шлюза, а не организацию от разработчика.

1004 1002 

Details

264* **Полное пошаговое руководство, включая создание PR**: см. [Просмотр и итерация](https://code.claude.com/docs/ru/web-quickstart.md#review-and-iterate)264* **Полное пошаговое руководство, включая создание PR**: см. [Просмотр и итерация](https://code.claude.com/docs/ru/web-quickstart.md#review-and-iterate)

265* **Автоматическое отслеживание Claude сбоев CI и комментариев рецензии в PR**: см. [Автоматическое исправление pull requests](#auto-fix-pull-requests)265* **Автоматическое отслеживание Claude сбоев CI и комментариев рецензии в PR**: см. [Автоматическое исправление pull requests](#auto-fix-pull-requests)

266 266 

267#### Устранение проблемы с отсутствующим файлом в представлении diff

268 

269Ожидаемый файл может отсутствовать в списке файлов представления diff при сравнении с базовой веткой, независимо от того, отправила ли сессия изменения:

270 

271* **Изменения ещё не отправлены**: список содержит собственные правки Claude, но не изменения, внесённые командами, которые запускал Claude, например средством форматирования

272* **Изменения отправлены**: список содержит отправленные коммиты, но не изменения, внесённые после последней отправки

273 

274Чтобы добавить отсутствующее изменение в список, попросите Claude сделать коммит и отправить изменения.

275 

267### Управление контекстом276### Управление контекстом

268 277 

269Облачные сеансы поддерживают [встроенные команды](https://code.claude.com/docs/ru/commands.md), которые выводят текстовый результат. Команды, которые работают только в интерфейсе терминала, такие как `/plugin` или `/resume`, недоступны. Команды, которые открывают средство выбора или панель в терминале, ведут себя иначе в облачных сеансах:278Облачные сеансы поддерживают [встроенные команды](https://code.claude.com/docs/ru/commands.md), которые выводят текстовый результат. Команды, которые работают только в интерфейсе терминала, такие как `/plugin` или `/resume`, недоступны. Команды, которые открывают средство выбора или панель в терминале, ведут себя иначе в облачных сеансах:

270 279 

271* **`/model`, `/effort`, `/color` и `/rename`**: передайте значение как аргумент, например `/model sonnet`, вместо открытия средства выбора терминала или ползунка. Формы аргументов следуют [примечаниям доступности](https://code.claude.com/docs/ru/commands.md#all-commands) каждой команды.280* **`/model`, `/effort`, `/color` и `/rename`**: передайте значение как аргумент, например `/model sonnet`, вместо открытия средства выбора терминала или ползунка. Формы аргументов следуют [примечаниям доступности](https://code.claude.com/docs/ru/commands.md#all-commands) каждой команды.

272* **`/fast`**: переключает [быстрый режим](https://code.claude.com/docs/ru/fast-mode.md#use-fast-mode-in-cloud-sessions) для сеанса, когда быстрый режим [доступен в вашей учётной записи](https://code.claude.com/docs/ru/fast-mode.md#requirements). Требует Claude Code v2.1.271 или более поздней версии в окружении сеанса.281* **`/fast`**: переключает [быстрый режим](https://code.claude.com/docs/ru/fast-mode.md#use-fast-mode-in-cloud-sessions) для сеанса, когда быстрый режим [доступен в вашей учётной записи](https://code.claude.com/docs/ru/fast-mode.md#requirements). Требует Claude Code v2.1.271 или более поздней версии в окружении сеанса.

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

274 283 

275Для управления контекстом в облачной сессии вне [тредов проекта](https://code.claude.com/docs/ru/claude-projects.md#choose-models-and-let-claude-manage-context):284Для управления контекстом в облачной сессии вне [тредов проекта](https://code.claude.com/docs/ru/claude-projects.md#choose-models-and-let-claude-manage-context):

276 285 


337* **Доступ к репозиторию**: проверка не включена по умолчанию346* **Доступ к репозиторию**: проверка не включена по умолчанию

338* **Конфиденциальное содержимое**: проверьте свою сессию перед тем, как поделиться ею. Сессии могут содержать код и учётные данные из приватных репозиториев GitHub347* **Конфиденциальное содержимое**: проверьте свою сессию перед тем, как поделиться ею. Сессии могут содержать код и учётные данные из приватных репозиториев GitHub

339 348 

340Чтобы потребовать от получателей наличие доступа к репозиторию или скрыть своё имя из совместно используемых сеансов, перейдите в [**Settings > Claude Code > Sharing settings**](https://claude.ai/settings/claude-code).349Чтобы потребовать от получателей наличие доступа к репозиторию или скрыть своё имя из совместно используемых сессий, откройте Settings на claude.ai, затем:

350 

351* **Если в меню Settings отображается Code вместо Claude Code**: перейдите в [**Privacy**](https://claude.ai/settings/data-privacy-controls), где находятся эти настройки

352* **В противном случае**: перейдите в [**Claude Code > Sharing settings**](https://claude.ai/settings/claude-code)

341 353 

342### Архивирование сеансов354### Архивирование сеансов

343 355 

Details

53}53}

54```54```

55 55 

56Claude Code также запускает эту команду при запуске, когда не может проверить ваши существующие учетные данные AWS, и показывает вывод команды на панели `Authentication` до завершения входа.56Claude Code также запускает эту команду при запуске, когда не может проверить ваши существующие учётные данные AWS, и показывает вывод команды на панели `Authentication` до завершения входа.

57 57 

58С настроенным `awsAuthRefresh` запустите `/login`, выберите **3rd-party platform**, затем выберите **Claude Platform on AWS · refresh credentials** в разделе **Using 3rd-party platforms**. Claude Code запускает настроенную команду и повторно читает ваши учетные данные AWS без перезагрузки.58С настроенным `awsAuthRefresh` запустите `/login`, выберите **3rd-party platform**, затем выберите **Claude Platform on AWS · refresh credentials** в разделе **Using 3rd-party platforms**. Claude Code запускает настроенную команду и повторно читает ваши учетные данные AWS без перезагрузки.

59 59 


93 93 

94Claude Platform on AWS использует те же идентификаторы моделей, что и прямой API Claude.94Claude Platform on AWS использует те же идентификаторы моделей, что и прямой API Claude.

95 95 

96Псевдонимы по умолчанию `fable`, `opus`, `sonnet` и `haiku` разрешаются во встроенные значения по умолчанию Claude Code для Claude Platform on AWS, которые могут отставать от последнего выпуска. Без `ANTHROPIC_DEFAULT_OPUS_MODEL` псевдоним `opus` разрешается в Opus 5.5. До версии v2.1.280 он разрешался в Opus 5 с версии v2.1.219 и в Opus 4.8 с версии v2.1.207.96Псевдонимы по умолчанию `fable`, `opus`, `sonnet` и `haiku` разрешаются во встроенные значения по умолчанию Claude Code для Claude Platform on AWS, которые могут отставать от последнего выпуска. Без `ANTHROPIC_DEFAULT_OPUS_MODEL` псевдоним `opus` разрешается в Opus 5.5. До версии v2.1.280 он разрешался в Opus 5 с версии v2.1.219.

97 97 

98Если вы развертываете Claude Code для команды, явно закрепите идентификаторы моделей, чтобы новый выпуск не переместил всех сразу:98Если вы развертываете Claude Code для команды, явно закрепите идентификаторы моделей, чтобы новый выпуск не переместил всех сразу:

99 99 

claude-projects.md +16 −10

Details

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

71 71 

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

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

74 74 

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

76 76 


113 113 

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

115 115 

116Если облачная сессия, которую вы запустили сами, выполняет работу, которая относится к проекту, откройте ее меню на боковой панели, выберите **Move to project**, а затем выберите вариант в подменю:116Если облачная сессия, которую вы запустили сами, выполняет работу, которая относится к проекту, откройте ее меню на боковой панели, выберите **Continue in project**, а затем выберите вариант в подменю:

117 117 

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

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


262 262 

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

264 264 

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

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

267 267 

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

269 269 

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

271 271 

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

273 273 

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

275 275 

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

277 277 

278Пока поток работает, значок ноутбука в его заголовке показывает, подключен ли ваш компьютер. Нажмите на него, чтобы увидеть, какую папку использует поток, или отключить соединение. Поток приостанавливается, пока этот компьютер спит, и останавливается, если приложение для рабочего стола или `claude remote-control` завершает работу. [Lost contact with your folder](#lost-contact-with-your-folder) охватывает его запуск снова. В приложении для рабочего стола включите **Keep this computer awake for Remote Control** в **Settings > Claude Code**, чтобы компьютер не спал самостоятельно.278Пока поток работает, значок ноутбука в его заголовке показывает, подключен ли ваш компьютер. Нажмите на него, чтобы увидеть, какую папку использует поток, или отключить соединение. Поток приостанавливается, пока этот компьютер спит, и останавливается, если приложение для рабочего стола или `claude remote-control` завершает работу.

279 

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

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

279 282 

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

281 284 


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

428 431 

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

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

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

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

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


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

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

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

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

449 452 

450## Troubleshooting453## Troubleshooting

451 454 


489 492 

490### Потеря контакта с вашей папкой493### Потеря контакта с вашей папкой

491 494 

492Поток, работающий на вашем компьютере, показывает это, когда сеанс Claude Code там перестал отвечать, обычно потому, что компьютер перешел в режим сна или настольное приложение или `claude remote-control` завершилось. Разбудите компьютер, и если настольное приложение или `claude remote-control` больше не работает там, запустите его снова: переоткройте приложение и подтвердите, что **Use this computer from your phone and claude.ai** все еще включено в **Settings > Claude Code**, или запустите `claude remote-control` снова в той же папке.495Поток, работающий на вашем компьютере, показывает это, когда сессия Claude Code там перестала отвечать, обычно потому, что компьютер перешел в режим сна или настольное приложение либо `claude remote-control` завершили работу. Выведите компьютер из режима сна. Если настольное приложение или `claude remote-control` там больше не работает, запустите его снова:

496 

497* **Настольное приложение**: снова откройте приложение и убедитесь, что **Use this computer from your phone and claude.ai** по-прежнему включено в **Settings > Code** или **Settings > Claude Code**

498* **Терминал**: снова запустите `claude remote-control` в той же папке

493 499 

494### Другие сообщения500### Другие сообщения

495 501 

Details

71* В сессии терминала, где `/code-review` запускает ревью как [ответвлённый субагент](https://code.claude.com/docs/ru/skills.md#run-skills-in-a-subagent)71* В сессии терминала, где `/code-review` запускает ревью как [ответвлённый субагент](https://code.claude.com/docs/ru/skills.md#run-skills-in-a-subagent)

72* При запуске с `-p` с текстовым выводом или выводом в JSON72* При запуске с `-p` с текстовым выводом или выводом в JSON

73 73 

74В хост-приложении, которое запрашивает список результатов, например в [десктопном приложении](https://code.claude.com/docs/ru/desktop.md#review-your-code), Claude вместо этого сообщает о результатах ревью через [инструмент `ReportFindings`](https://code.claude.com/docs/ru/tools-reference). Отчёт отображается как список результатов, и каждая запись показывает расположение в файле, краткое описание в одно предложение и тег категории, например `correctness`, если он есть у результата. Запрос хоста применяется на любом уровне effort и требует Claude Code v2.1.218 или более поздней версии.74В хост-приложении, которое запрашивает список результатов, например в [десктопном приложении](https://code.claude.com/docs/ru/desktop.md#review-your-code), Claude вместо этого сообщает о результатах ревью через [инструмент `ReportFindings`](https://code.claude.com/docs/ru/tools-reference). Отчёт отображается как список результатов, и каждая запись показывает расположение в файле, краткое описание в одно предложение и тег категории, например `correctness`, если он есть у результата. Запрос хоста применяется на любом уровне effort.

75 75 

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

77 77 


104После уровня effort и флагов Claude Code читает остаток строки как цель ревью. Аргумент `ultra` меняет эту интерпретацию:104После уровня effort и флагов Claude Code читает остаток строки как цель ревью. Аргумент `ultra` меняет эту интерпретацию:

105 105 

106* **С `ultra`**: Claude Code интерпретирует одно слово как базовую ветку или номер PR. Более длинный текст, не являющийся именем ветки или PR, становится [заметкой, прикреплённой к ревью](https://code.claude.com/docs/ru/ultrareview.md#pass-a-request-in-plain-words). `/code-review ultra check my auth changes` проверяет вашу текущую ветку, и Claude соотносит результаты с вашей заметкой.106* **С `ultra`**: Claude Code интерпретирует одно слово как базовую ветку или номер PR. Более длинный текст, не являющийся именем ветки или PR, становится [заметкой, прикреплённой к ревью](https://code.claude.com/docs/ru/ultrareview.md#pass-a-request-in-plain-words). `/code-review ultra check my auth changes` проверяет вашу текущую ветку, и Claude соотносит результаты с вашей заметкой.

107* **Без `ultra`**: всё оставшееся является целью ревью, даже если начинается с имени другой команды. `/code-review /fix-issue 123` проводит ревью с `/fix-issue 123` в качестве текста цели, а не загружает `/fix-issue` как второй [составной скилл](https://code.claude.com/docs/ru/skills.md#stack-several-skills-in-one-message). До версии v2.1.218 команда, указанная после `/code-review`, раскрывалась как отдельный скилл.107* **Без `ultra`**: всё оставшееся является целью ревью, даже если начинается с имени другой команды. `/code-review /fix-issue 123` проводит ревью с `/fix-issue 123` в качестве текста цели, а не загружает `/fix-issue` как второй [составной скилл](https://code.claude.com/docs/ru/skills.md#stack-several-skills-in-one-message).

108 108 

109## Запуск в основном режиме109## Запуск в основном режиме

110 110 


114* Установите [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS`](https://code.claude.com/docs/ru/env-vars) в `1`, что также отключает другие функции фоновых задач114* Установите [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS`](https://code.claude.com/docs/ru/env-vars) в `1`, что также отключает другие функции фоновых задач

115* Снова запустите `/code-review`, пока предыдущее ревью ещё выполняется115* Снова запустите `/code-review`, пока предыдущее ревью ещё выполняется

116 116 

117До версии v2.1.218 ревью выполнялось внутри вашего диалога.

118 

119## Запуск ревью самим Claude117## Запуск ревью самим Claude

120 118 

121Claude может запустить `/code-review` самостоятельно, без ввода команды с вашей стороны:119Claude может запустить `/code-review` самостоятельно, без ввода команды с вашей стороны:

commands.md +3 −3

Details

37* **[Скилл](https://code.claude.com/docs/ru/skills.md#bundled-skills)**: встроенный скилл. Он работает так же, как скиллы, которые вы пишете сами: это промпт, передаваемый Claude.37* **[Скилл](https://code.claude.com/docs/ru/skills.md#bundled-skills)**: встроенный скилл. Он работает так же, как скиллы, которые вы пишете сами: это промпт, передаваемый Claude.

38 * `/verify` запускается только по вашему вызову. До v2.1.215 Claude также мог запускать `/verify` самостоятельно.38 * `/verify` запускается только по вашему вызову. До v2.1.215 Claude также мог запускать `/verify` самостоятельно.

39* **[Рабочий процесс](https://code.claude.com/docs/ru/workflows.md#bundled-workflows)**: встроенный [динамический рабочий процесс](https://code.claude.com/docs/ru/workflows.md), который распределяет работу между множеством субагентов и выполняется в фоновом режиме.39* **[Рабочий процесс](https://code.claude.com/docs/ru/workflows.md#bundled-workflows)**: встроенный [динамический рабочий процесс](https://code.claude.com/docs/ru/workflows.md), который распределяет работу между множеством субагентов и выполняется в фоновом режиме.

40 * `/deep-research` запускается только по вашему вызову. До v2.1.218 Claude также мог запускать его самостоятельно.40 * `/deep-research` запускается только по вашему вызову.

41 41 

42Чтобы добавить собственные команды, см. [скиллы](https://code.claude.com/docs/ru/skills.md).42Чтобы добавить собственные команды, см. [скиллы](https://code.claude.com/docs/ru/skills.md).

43 43 


54| `/agents` | Вывести напоминание о том, что можно попросить Claude создать [субагентов](https://code.claude.com/docs/ru/sub-agents.md) или управлять ими, либо напрямую редактировать `.claude/agents/` или `~/.claude/agents/`. В v2.1.197 и более ранних версиях открывает интерактивный интерфейс для создания конфигураций субагентов и управления ими |54| `/agents` | Вывести напоминание о том, что можно попросить Claude создать [субагентов](https://code.claude.com/docs/ru/sub-agents.md) или управлять ими, либо напрямую редактировать `.claude/agents/` или `~/.claude/agents/`. В v2.1.197 и более ранних версиях открывает интерактивный интерфейс для создания конфигураций субагентов и управления ими |

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

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

57| `/artifacts` | Показать список [артефактов](https://code.claude.com/docs/ru/artifacts.md#find-an-artifact-again), которыми вы владеете или которые вам предоставлены, затем прикрепить один из них к сессии, открыть его в браузере или скопировать ссылку на него. Доступно там, где доступны [артефакты](https://code.claude.com/docs/ru/artifacts.md#availability). Требуется Claude Code v2.1.208 или новее; для прикрепления с помощью `Enter` требуется v2.1.216 |57| `/artifacts` | Показать список [артефактов](https://code.claude.com/docs/ru/artifacts.md#find-an-artifact-again), которыми вы владеете или которые вам предоставлены, затем прикрепить один из них к сессии, открыть его в браузере или скопировать ссылку на него. Доступно там, где доступны [артефакты](https://code.claude.com/docs/ru/artifacts.md#availability) |

58| `/auto-mode-setup` | [Составить черновик записей `autoMode.environment`](https://code.claude.com/docs/ru/auto-mode-config#generate-environment-entries) на основе вашего проекта и недавних сессий, затем просмотреть черновик и сохранить его в пользовательские настройки. На тарифе Pro, Max или Team требуется Claude Code v2.1.228 или новее либо v2.1.233 или новее в нативной Windows. На тарифе Enterprise или с API-ключом Claude Console требуется v2.1.283 или новее. Если команда отсутствует, см. [`/auto-mode-setup` возвращает "Unknown command"](https://code.claude.com/docs/ru/auto-mode-config#auto-mode-setup-returns-unknown-command) |58| `/auto-mode-setup` | [Составить черновик записей `autoMode.environment`](https://code.claude.com/docs/ru/auto-mode-config#generate-environment-entries) на основе вашего проекта и недавних сессий, затем просмотреть черновик и сохранить его в пользовательские настройки. На тарифе Pro, Max или Team требуется Claude Code v2.1.228 или новее либо v2.1.233 или новее в нативной Windows. На тарифе Enterprise или с API-ключом Claude Console требуется v2.1.283 или новее. Если команда отсутствует, см. [`/auto-mode-setup` возвращает "Unknown command"](https://code.claude.com/docs/ru/auto-mode-config#auto-mode-setup-returns-unknown-command) |

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

60| `/autofix-pr [prompt]` | Запустить [облачную сессию](https://code.claude.com/docs/ru/claude-code-on-the-web.md#auto-fix-pull-requests), которая отслеживает PR текущей ветки и отправляет исправления, когда CI завершается с ошибкой или ревьюеры оставляют комментарии. Определяет открытый PR по вашей текущей ветке с помощью `gh pr view`; чтобы отслеживать другой PR, сначала переключитесь на его ветку. По умолчанию облачной сессии поручено исправлять каждую ошибку CI и каждый комментарий ревью; передайте промпт, чтобы дать ей другие инструкции, например `/autofix-pr only fix lint and type errors`. Требуется CLI `gh` и доступ к [облачным сессиям](https://code.claude.com/docs/ru/claude-code-on-the-web.md) |60| `/autofix-pr [prompt]` | Запустить [облачную сессию](https://code.claude.com/docs/ru/claude-code-on-the-web.md#auto-fix-pull-requests), которая отслеживает PR текущей ветки и отправляет исправления, когда CI завершается с ошибкой или ревьюеры оставляют комментарии. Определяет открытый PR по вашей текущей ветке с помощью `gh pr view`; чтобы отслеживать другой PR, сначала переключитесь на его ветку. По умолчанию облачной сессии поручено исправлять каждую ошибку CI и каждый комментарий ревью; передайте промпт, чтобы дать ей другие инструкции, например `/autofix-pr only fix lint and type errors`. Требуется CLI `gh` и доступ к [облачным сессиям](https://code.claude.com/docs/ru/claude-code-on-the-web.md) |


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

86| `/diff` | Просмотреть изменения в рабочем дереве, включая правки, внесённые Claude к этому моменту. См. [Просмотр изменений с помощью /diff](https://code.claude.com/docs/ru/interactive-mode.md#review-changes-with-%2Fdiff) |86| `/diff` | Просмотреть изменения в рабочем дереве, включая правки, внесённые Claude к этому моменту. См. [Просмотр изменений с помощью /diff](https://code.claude.com/docs/ru/interactive-mode.md#review-changes-with-%2Fdiff) |

87| `/doctor [prompt-audit [path]]` | **[Скилл](https://code.claude.com/docs/ru/skills.md#bundled-skills).** Запустить проверку настройки, которая диагностирует проблемы с установкой, настройками, расширениями и `CLAUDE.md` и предлагает исправления, которые Claude применяет после вашего подтверждения. Что охватывает проверка или как вместо этого проверить ваши инструкции с помощью `prompt-audit`, см. в разделе [Проверка настройки с помощью `/doctor`](https://code.claude.com/docs/ru/skills#check-your-setup-with-/doctor). Для подкоманды `prompt-audit` требуется Claude Code v2.1.283 или новее. Псевдоним: `/checkup` |87| `/doctor [prompt-audit [path]]` | **[Скилл](https://code.claude.com/docs/ru/skills.md#bundled-skills).** Запустить проверку настройки, которая диагностирует проблемы с установкой, настройками, расширениями и `CLAUDE.md` и предлагает исправления, которые Claude применяет после вашего подтверждения. Что охватывает проверка или как вместо этого проверить ваши инструкции с помощью `prompt-audit`, см. в разделе [Проверка настройки с помощью `/doctor`](https://code.claude.com/docs/ru/skills#check-your-setup-with-/doctor). Для подкоманды `prompt-audit` требуется Claude Code v2.1.283 или новее. Псевдоним: `/checkup` |

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

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

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

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

computer-use.md +1 −1

Details

178| Функция | Desktop | CLI |178| Функция | Desktop | CLI |

179| :- | :- | :- |179| :- | :- | :- |

180| Платформы | macOS и Windows | только macOS |180| Платформы | macOS и Windows | только macOS |

181| Включение | Переключатель в **Settings > This computer > System** | Включите `computer-use` в `/mcp` |181| Включение | Переключатель в [Settings](https://code.claude.com/docs/ru/desktop.md#enable-computer-use) | Включите `computer-use` в `/mcp` |

182| Список запрещённых приложений | Настраивается в Settings | Пока недоступно |182| Список запрещённых приложений | Настраивается в Settings | Пока недоступно |

183| Auto-unhide toggle | Опционально | Всегда включено |183| Auto-unhide toggle | Опционально | Всегда включено |

184| Dispatch integration | Сеансы, запущенные через Dispatch, могут использовать computer use | Не применимо |184| Dispatch integration | Сеансы, запущенные через Dispatch, могут использовать computer use | Не применимо |

Details

70* [Расширьте Claude Code](https://code.claude.com/docs/ru/features-overview.md): когда использовать CLAUDE.md против skills против правил против hooks против MCP70* [Расширьте Claude Code](https://code.claude.com/docs/ru/features-overview.md): когда использовать CLAUDE.md против skills против правил против hooks против MCP

71* [Сохраняйте инструкции и воспоминания](https://code.claude.com/docs/ru/memory.md): иерархия CLAUDE.md и автоматическая память71* [Сохраняйте инструкции и воспоминания](https://code.claude.com/docs/ru/memory.md): иерархия CLAUDE.md и автоматическая память

72* [Subagents](https://code.claude.com/docs/ru/sub-agents.md): делегируйте исследование отдельному контекстному окну72* [Subagents](https://code.claude.com/docs/ru/sub-agents.md): делегируйте исследование отдельному контекстному окну

73* [Лучшие практики](https://code.claude.com/docs/ru/best-practices.md): управление контекстом как вашим основным ограничением73* [Лучшие практики](https://code.claude.com/docs/ru/best-practices.md#keep-cost-and-context-down): поддерживайте сессии сфокусированными, а затраты — низкими

74* [Prompt caching](https://code.claude.com/docs/ru/prompt-caching.md): какие действия инвалидируют кэшированный префикс74* [Prompt caching](https://code.claude.com/docs/ru/prompt-caching.md): какие действия инвалидируют кэшированный префикс

75* [Снизьте использование токенов](https://code.claude.com/docs/ru/costs.md#reduce-token-usage): стратегии для поддержания низкого использования контекста75* [Снизьте использование токенов](https://code.claude.com/docs/ru/costs.md#reduce-token-usage): стратегии для поддержания низкого использования контекста

Details

174Полный текст можно увидеть любым из следующих способов:174Полный текст можно увидеть любым из следующих способов:

175 175 

176* Нажмите `Ctrl+O` для открытия [средства просмотра расшифровки](https://code.claude.com/docs/ru/interactive-mode.md#transcript-viewer) и прочитайте полный текст под именем сеанса отправителя.176* Нажмите `Ctrl+O` для открытия [средства просмотра расшифровки](https://code.claude.com/docs/ru/interactive-mode.md#transcript-viewer) и прочитайте полный текст под именем сеанса отправителя.

177 

178 Если Claude занят и еще не получил сообщение, прокрутите транскрипт до конца, где сообщение указано в разделе `Waiting to be delivered`. Требуется Claude Code v2.1.309 или более поздней версии.

179 

177* В [полноэкранном режиме отображения](https://code.claude.com/docs/ru/fullscreen.md#use-the-mouse) щёлкните строку предпросмотра, в которой опущена часть сообщения, чтобы развернуть её на месте.180* В [полноэкранном режиме отображения](https://code.claude.com/docs/ru/fullscreen.md#use-the-mouse) щёлкните строку предпросмотра, в которой опущена часть сообщения, чтобы развернуть её на месте.

181 

178* В сеансе, запущенном с [`--verbose`](https://code.claude.com/docs/ru/cli-reference#cli-flags), Claude Code показывает полный текст вместо предпросмотра.182* В сеансе, запущенном с [`--verbose`](https://code.claude.com/docs/ru/cli-reference#cli-flags), Claude Code показывает полный текст вместо предпросмотра.

179 183 

180Предпросмотр сокращает только то, что вы видите. Независимо от того, расширяете ли вы его, Claude читает полное сообщение.184Предпросмотр сокращает только то, что вы видите. Независимо от того, расширяете ли вы его, Claude читает полное сообщение.

desktop.md +31 −22

Details

69* **Использовать предложение**: нажмите **Tab** или **Стрелку вправо**, чтобы поместить его в поле промпта, при желании отредактируйте, затем нажмите **Enter** для отправки. Нажатие **Enter** до того, как вы примете предложение, не отправляет его.69* **Использовать предложение**: нажмите **Tab** или **Стрелку вправо**, чтобы поместить его в поле промпта, при желании отредактируйте, затем нажмите **Enter** для отправки. Нажатие **Enter** до того, как вы примете предложение, не отправляет его.

70* **Написать собственный промпт**: начните вводить текст. Предложение отображается, только пока поле промпта пустое и в нём нет вложенных файлов.70* **Написать собственный промпт**: начните вводить текст. Предложение отображается, только пока поле промпта пустое и в нём нет вложенных файлов.

71 71 

72Перейдите в **Settings > Claude Code** и отключите **Prompt suggestions** в разделе **Sessions**, чтобы предложения перестали появляться в каждой сессии со следующего её запуска или возобновления.72Отключите **Prompt suggestions** в **Settings > Code** или **Settings > Claude Code**, чтобы предложения перестали появляться. Каждая сессия перестаёт их показывать при следующем запуске или возобновлении.

73 73 

74### Добавляйте файлы и контекст в промпты74### Добавляйте файлы и контекст в промпты

75 75 


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

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

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

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

96 96 

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

98 98 


100 100 

101> [!TIP]101> [!TIP]

102>102>

103> Начните сложные задачи в Plan, чтобы Claude наметил подход перед внесением изменений. После того как вы утвердите план, переключитесь на Accept edits или Manual для его выполнения. См. [explore first, then plan, then code](https://code.claude.com/docs/ru/best-practices.md#explore-first-then-plan-then-code) для получения дополнительной информации об этом рабочем процессе.103> Начните сложные задачи в Plan, чтобы Claude наметил подход перед внесением изменений. После того как вы утвердите план, переключитесь на Accept edits или Manual для его выполнения. См. [режим планирования](https://code.claude.com/docs/ru/permission-modes.md#analyze-before-you-edit-with-plan-mode) для получения дополнительной информации об этом рабочем процессе.

104 104 

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

106 106 


133 133 

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

135 135 

136Чтобы очистить сохранённые данные Browser, выберите **Clear browsing data** в меню **⋮** панели Browser. Чтобы полностью отключить Browser, выключите **Browser tools** в **Settings > Claude Code**.136Чтобы очистить сохранённые данные Browser, выберите **Clear browsing data** в меню **⋮** панели Browser. Чтобы полностью отключить Browser, выключите **Browser tools** в **Settings > Code** или **Settings > Claude Code**.

137 137 

138### Просмотр внешних сайтов138### Просмотр внешних сайтов

139 139 


164 164 

165### Проверьте изменения с помощью представления diff165### Проверьте изменения с помощью представления diff

166 166 

167После того как Claude вносит изменения в ваш код, представление diff позволяет вам проверить изменения файл за файлом перед созданием pull request. Чтобы открыть представление diff, нажмите на счётчики строк, например `+12 -1`, в карточке **Changes** [панели сведений о сессии](#see-session-details). Вы также можете нажать **Changes** в строке заголовка сессии.167После того как Claude вносит изменения в ваш код, представление diff позволяет вам проверить изменения файл за файлом перед созданием pull request. Чтобы открыть представление diff, нажмите на счётчики строк, например `+12 -1`, в карточке **Changes** [панели сведений о сессии](#see-session-details). Вы также можете нажать **Changes** в строке заголовка сессии. Diff облачной сессии относительно базовой ветки может [не включать изменения, которые ещё не отправлены](https://code.claude.com/docs/ru/claude-code-on-the-web.md#troubleshoot-a-missing-file-in-the-diff-view).

168 168 

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

170 170 

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

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


194 * **Если репозиторий не разрешает auto-merge**: **Merge when ready** не включается, поэтому сначала включите auto-merge в [настройках вашего репозитория GitHub](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/managing-auto-merge-for-pull-requests-in-your-repository)194 * **Если репозиторий не разрешает auto-merge**: **Merge when ready** не включается, поэтому сначала включите auto-merge в [настройках вашего репозитория GitHub](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/managing-auto-merge-for-pull-requests-in-your-repository)

195* **[Предыдущий макет](#check-which-layout-you-have)**: когда у сессии появится pull request, нажмите **CI** в её строке статуса.195* **[Предыдущий макет](#check-which-layout-you-have)**: когда у сессии появится pull request, нажмите **CI** в её строке статуса.

196 196 

197Чтобы автоматически архивировать сессию после слияния или закрытия PR, включите [auto-archive](#archive-a-session) в **Settings > Claude Code**.197Чтобы автоматически архивировать сессию после слияния или закрытия PR, включите [auto-archive](#archive-a-session) в **Settings > Code** или **Settings > Claude Code**.

198 198 

199> [!NOTE]199> [!NOTE]

200>200>


275* **Cmd+Ctrl**: нажимайте **Ctrl+Alt**275* **Cmd+Ctrl**: нажимайте **Ctrl+Alt**

276* **Cmd**: нажимайте **Ctrl**276* **Cmd**: нажимайте **Ctrl**

277 277 

278Циклическое переключение сессий, переключение терминала и переключение режима просмотра используют **Ctrl** на каждой платформе.278Сочетания клавиш, начинающиеся с `Ctrl`, одинаковы на всех платформах.

279 279 

280| Сочетание клавиш | Действие |280| Сочетание клавиш | Действие |

281| - | - |281| - | - |


284| `Cmd` `Option` `1`–`9` | На экране новой сессии в [текущем макете](#check-which-layout-you-have) выбрать окружение |284| `Cmd` `Option` `1`–`9` | На экране новой сессии в [текущем макете](#check-which-layout-you-have) выбрать окружение |

285| `Cmd` `Option` `0` | На экране новой сессии в текущем макете открыть [диалог **New environment**](#create-a-saved-environment) |285| `Cmd` `Option` `0` | На экране новой сессии в текущем макете открыть [диалог **New environment**](#create-a-saved-environment) |

286| `Cmd` `W` | Закрыть сессию |286| `Cmd` `W` | Закрыть сессию |

287| `Ctrl` `Tab` / `Ctrl` `Shift` `Tab` | Следующая или предыдущая сессия |287| `Ctrl` `Tab` / `Ctrl` `Shift` `Tab` | Переключиться между сессиями |

288| `Cmd` `Shift` `]` / `Cmd` `Shift` `[` | Следующая или предыдущая сессия |288| `Cmd` `Shift` `]` / `Cmd` `Shift` `[` | Следующая или предыдущая сессия |

289| `Esc` | Остановить ответ Claude |289| `Esc` | Остановить ответ Claude |

290| `Tab` / `Right arrow` | [Принять предложенный промпт](#accept-a-suggested-prompt) в пустом поле ввода промпта |290| `Tab` / `Right arrow` | [Принять предложенный промпт](#accept-a-suggested-prompt) в пустом поле ввода промпта |


352 352 

353**2. Включение переключателя**353**2. Включение переключателя**

354 354 

355В приложении desktop перейдите в **Settings > This computer > System**. В разделе **Computer use** включите **Enable computer use**. На Windows переключатель вступает в силу немедленно и настройка завершена. На macOS продолжите к следующему шагу.355В приложении desktop откройте **Settings**, затем:

356 

357* **Если в меню Settings есть пункт This computer**: перейдите в **This computer > System**

358* **В противном случае**: перейдите в **Capabilities**

359 

360В разделе **Computer use** включите **Enable computer use**:

361 

362* **Windows**: переключатель вступает в силу немедленно, и настройка завершена

363* **macOS**: перейдите к следующему шагу

356 364 

357Если вы не видите переключатель, подтвердите, что вы на macOS или Windows с планом Pro или Max, затем обновите и перезагрузите приложение.365Если вы не видите переключатель, подтвердите, что вы на macOS или Windows с планом Pro или Max, затем обновите и перезагрузите приложение.

358 366 


379 387 

380Приложения с широким охватом, такие как терминалы, Finder или File Explorer и System Settings или Settings, показывают дополнительное предупреждение в подсказке, чтобы вы знали, что даёт одобрение.388Приложения с широким охватом, такие как терминалы, Finder или File Explorer и System Settings или Settings, показывают дополнительное предупреждение в подсказке, чтобы вы знали, что даёт одобрение.

381 389 

382Раздел **Computer use** в **Settings > This computer > System** включает следующие параметры:390В Settings раздел **Computer use**, в котором вы [включили использование компьютера](#enable-computer-use), содержит следующие параметры:

383 391 

384* **Denied apps**: добавьте приложения сюда, чтобы отклонить их без подсказки. Claude может всё ещё косвенно влиять на отклонённое приложение через действия в разрешённом приложении, но не может взаимодействовать с отклонённым приложением напрямую.392* **Denied apps**: добавьте приложения сюда, чтобы отклонить их без подсказки. Claude может всё ещё косвенно влиять на отклонённое приложение через действия в разрешённом приложении, но не может взаимодействовать с отклонённым приложением напрямую.

385* **Unhide apps when Claude finishes**: когда использование компьютера не работает в фоновом режиме, Claude скрывает ваши другие окна, пока он работает, чтобы он взаимодействовал только с одобренным приложением. Когда Claude заканчивает, скрытые окна восстанавливаются, если вы не отключите этот параметр.393* **Unhide apps when Claude finishes**: когда использование компьютера не работает в фоновом режиме, Claude скрывает ваши другие окна, пока он работает, чтобы он взаимодействовал только с одобренным приложением. Когда Claude заканчивает, скрытые окна восстанавливаются, если вы не отключите этот параметр.


390 398 

391### Параллельная работа с сессиями399### Параллельная работа с сессиями

392 400 

393Нажмите **+ New** в боковой панели или нажмите **Cmd+N** на macOS или **Ctrl+N** на Windows, чтобы работать над несколькими задачами параллельно. Нажимайте **Ctrl+Tab** и **Ctrl+Shift+Tab**, чтобы циклически переключаться между сессиями в боковой панели.401Нажмите **+ New** в боковой панели или нажмите **Cmd+N** на macOS или **Ctrl+N** на Windows, чтобы работать над несколькими задачами параллельно. Нажимайте **Ctrl+Tab** и **Ctrl+Shift+Tab**, чтобы переключаться между сессиями.

394 402 

395Вы также можете открыть вторую сессию рядом с текущей или в отдельном окне:403Вы также можете открыть вторую сессию рядом с текущей или в отдельном окне:

396 404 


401 409 

402#### Запуск сессии в собственном worktree410#### Запуск сессии в собственном worktree

403 411 

404В проекте, который является Git-репозиторием, включите **Worktree** перед запуском сессии, чтобы запустить её в собственном [Git worktree](https://code.claude.com/docs/ru/worktrees.md) — изолированной копии проекта. По умолчанию **Worktree** отключён, и Claude работает непосредственно в папке проекта. Нажмите на элемент управления папкой проекта в [строке под полем промпта](#start-a-session) и включите **Worktree**.412В проекте, который является Git-репозиторием, включите **Worktree** перед запуском сессии, чтобы запустить её в собственном [Git worktree](https://code.claude.com/docs/ru/worktrees.md) — изолированной копии проекта. По умолчанию **Worktree** отключён, и Claude работает непосредственно в папке проекта. В [текущем макете](#check-which-layout-you-have) включите кнопку **Worktree** в [строке под полем промпта](#start-a-session).

405 413 

406* **С [сохранённым окружением](#create-a-saved-environment)**: задайте **Worktree** при создании или редактировании окружения414* **Со [сторонним поставщиком](https://code.claude.com/docs/ru/third-party-integrations.md)**: если в строке под полем промпта отображается элемент управления папкой проекта, но нет кнопки **Worktree**, нажмите на этот элемент управления и включите **Worktree**

415* **По умолчанию для [сохранённого локального окружения или окружения SSH](#create-a-saved-environment)**: задайте **Worktree** при создании или редактировании окружения

407* **[Прежний макет](#check-which-layout-you-have)**: установите флажок **worktree** рядом с названием ветки над полем промпта416* **[Прежний макет](#check-which-layout-you-have)**: установите флажок **worktree** рядом с названием ветки над полем промпта

408 417 

409Worktrees по умолчанию хранятся в `<project-root>/.claude/worktrees/`. Чтобы вместо этого хранить их в пользовательском каталоге:418Worktrees по умолчанию хранятся в `<project-root>/.claude/worktrees/`. Чтобы вместо этого хранить их в пользовательском каталоге:

410 419 

411* **Локальные сессии**: задайте **Worktree location** в **Settings > Claude Code**420* **Локальные сессии**: задайте **Worktree location** в **Settings > Code** или **Settings > Claude Code**

412* **Сессии SSH**: задайте **Worktree folder** в [SSH-подключении](#choose-where-ssh-session-worktrees-go)421* **Сессии SSH**: задайте **Worktree folder** в [SSH-подключении](#choose-where-ssh-session-worktrees-go)

413 422 

414Вы также можете задать **Branch prefix** в **Settings > Claude Code**. Desktop добавляет его в начало имени каждой ветки worktree, что полезно для упорядочивания веток, созданных Claude.423Вы также можете задать **Branch prefix** в **Settings > Code** или **Settings > Claude Code**. Desktop добавляет его в начало имени каждой ветки worktree, что полезно для упорядочивания веток, созданных Claude.

415 424 

416Чтобы включить файлы из gitignore, такие как `.env`, в новые worktrees, создайте [файл `.worktreeinclude`](https://code.claude.com/docs/ru/worktrees#copy-gitignored-files-into-worktrees) в корне вашего проекта. Сведения о том, откуда сессия в worktree читает настройки проекта, хуки и скиллы, см. в разделе [Что worktrees разделяют с основной рабочей копией](https://code.claude.com/docs/ru/worktrees.md#what-worktrees-share-with-the-main-checkout).425Чтобы включить файлы из gitignore, такие как `.env`, в новые worktrees, создайте [файл `.worktreeinclude`](https://code.claude.com/docs/ru/worktrees#copy-gitignored-files-into-worktrees) в корне вашего проекта. Сведения о том, откуда сессия в worktree читает настройки проекта, хуки и скиллы, см. в разделе [Что worktrees разделяют с основной рабочей копией](https://code.claude.com/docs/ru/worktrees.md#what-worktrees-share-with-the-main-checkout).

417 426 


430 439 

431Прежде чем архивировать сессию, в worktree которой есть незакоммиченные изменения, см. раздел [Сохранение незакоммиченных изменений при архивировании сессии](#keep-uncommitted-changes-when-a-session-is-archived). Чтобы архивировать сессию, наведите на неё курсор в боковой панели, откройте её меню и выберите **Archive**. Сессия перемещается в ваши [архивированные сессии](#organize-and-find-sessions).440Прежде чем архивировать сессию, в worktree которой есть незакоммиченные изменения, см. раздел [Сохранение незакоммиченных изменений при архивировании сессии](#keep-uncommitted-changes-when-a-session-is-archived). Чтобы архивировать сессию, наведите на неё курсор в боковой панели, откройте её меню и выберите **Archive**. Сессия перемещается в ваши [архивированные сессии](#organize-and-find-sessions).

432 441 

433Чтобы сессии автоматически архивировались при слиянии или закрытии их pull request, включите **Auto-archive after PR merge or close** в **Settings > Claude Code**. Облачные сессии и сессии, которые ещё выполняются, не архивируются автоматически.442Чтобы сессии автоматически архивировались при слиянии или закрытии их pull request, включите **Auto-archive after PR merge or close** в **Settings > Code** или **Settings > Claude Code**. Облачные сессии и сессии, которые ещё выполняются, не архивируются автоматически.

434 443 

435#### Сохранение незакоммиченных изменений при архивировании сессии444#### Сохранение незакоммиченных изменений при архивировании сессии

436 445 


527Локальная сессия подключается, когда вы включаете для неё Remote Control или когда она подключается автоматически при запуске:536Локальная сессия подключается, когда вы включаете для неё Remote Control или когда она подключается автоматически при запуске:

528 537 

529* **Вы включаете его для этой сессии**: с помощью переключателя **Remote Control** сессии или введя `/remote-control` в её поле промпта.538* **Вы включаете его для этой сессии**: с помощью переключателя **Remote Control** сессии или введя `/remote-control` в её поле промпта.

530* **Она подключается при запуске**: новые сессии подключаются автоматически, пока включён параметр **Connect new sessions to Remote Control** в **Settings > Claude Code**. Если вы никогда не меняли эту настройку, Desktop следует [`remoteControlAtStartup`](https://code.claude.com/docs/ru/settings-reference#remotecontrolatstartup) в ваших пользовательских или управляемых настройках, а затем значению по умолчанию вашей организации.539* **Она подключается при запуске**: новые сессии подключаются автоматически, пока включён параметр **Connect new sessions to Remote Control** в **Settings > Code** или **Settings > Claude Code**. Если вы никогда не меняли эту настройку, Desktop следует [`remoteControlAtStartup`](https://code.claude.com/docs/ru/settings-reference#remotecontrolatstartup) в ваших пользовательских или управляемых настройках, а затем значению по умолчанию вашей организации.

531 540 

532Чтобы узнать, подключена ли сессия, посмотрите на переключатель **Remote Control** в карточке **Environment** её [панели сведений о сессии](#see-session-details).541Чтобы узнать, подключена ли сессия, посмотрите на переключатель **Remote Control** в карточке **Environment** её [панели сведений о сессии](#see-session-details).

533 542 

534Чтобы сессии не появлялись на других ваших устройствах, отключите Remote Control на нужном уровне:543Чтобы сессии не появлялись на других ваших устройствах, отключите Remote Control на нужном уровне:

535 544 

536* **Одна сессия**: отключите её переключатель **Remote Control**. В сессии, которая подключилась при запуске, ввод `/remote-control` оставляет Remote Control включённым и показывает `Remote Control is already on. This session connected automatically when it started.` Нажмите **Turn off** в этой строке, чтобы отключиться.545* **Одна сессия**: отключите её переключатель **Remote Control**. В сессии, которая подключилась при запуске, ввод `/remote-control` оставляет Remote Control включённым и показывает `Remote Control is already on. This session connected automatically when it started.` Нажмите **Turn off** в этой строке, чтобы отключиться.

537* **Новые сессии Desktop на этом компьютере**: отключите **Connect new sessions to Remote Control** в **Settings > Claude Code**. Если параметр уже отображается отключённым, включите его, а затем отключите, чтобы Desktop сохранил ваш выбор. После сохранения он имеет приоритет над `remoteControlAtStartup` и значениями по умолчанию.546* **Новые сессии Desktop на этом компьютере**: отключите **Connect new sessions to Remote Control** в **Settings > Code** или **Settings > Claude Code**. Если параметр уже отображается отключённым, включите его, а затем отключите, чтобы Desktop сохранил ваш выбор. После сохранения он имеет приоритет над `remoteControlAtStartup` и значениями по умолчанию.

538* **Любая сессия на этом компьютере, включая CLI**: задайте для [`disableRemoteControl`](https://code.claude.com/docs/ru/settings-reference#disableremotecontrol) значение `true` в `~/.claude/settings.json`, чтобы сессии не подключались. Сессия, которая уже была подключена, когда вы сохранили файл, остаётся подключённой, пока вы не отключите для неё Remote Control.547* **Любая сессия на этом компьютере, включая CLI**: задайте для [`disableRemoteControl`](https://code.claude.com/docs/ru/settings-reference#disableremotecontrol) значение `true` в `~/.claude/settings.json`, чтобы сессии не подключались. Сессия, которая уже была подключена, когда вы сохранили файл, остаётся подключённой, пока вы не отключите для неё Remote Control.

539 548 

540Чтобы скрыть сессию, которая уже отображается на других ваших устройствах, архивируйте её в Desktop. Desktop также архивирует копию сессии в Remote Control, поэтому она исчезает из списка сессий по умолчанию на этих устройствах. Чтобы просмотреть или удалить её там, см. [Архивирование сессий](https://code.claude.com/docs/ru/claude-code-on-the-web.md#archive-sessions).549Чтобы скрыть сессию, которая уже отображается на других ваших устройствах, архивируйте её в Desktop. Desktop также архивирует копию сессии в Remote Control, поэтому она исчезает из списка сессий по умолчанию на этих устройствах. Чтобы просмотреть или удалить её там, см. [Архивирование сессий](https://code.claude.com/docs/ru/claude-code-on-the-web.md#archive-sessions).


576> * **Пункт Connectors неактивен (выделен серым) в WSL-сессии**: см. [Если терминал или коннекторы недоступны](https://code.claude.com/docs/ru/desktop-wsl.md#check-for-the-terminal-and-connectors)585> * **Пункт Connectors неактивен (выделен серым) в WSL-сессии**: см. [Если терминал или коннекторы недоступны](https://code.claude.com/docs/ru/desktop-wsl.md#check-for-the-terminal-and-connectors)

577> * **Облачные сессии**: см. [Как коннекторы попадают в Claude Code](https://code.claude.com/docs/ru/mcp.md#how-connectors-reach-claude-code)586> * **Облачные сессии**: см. [Как коннекторы попадают в Claude Code](https://code.claude.com/docs/ru/mcp.md#how-connectors-reach-claude-code)

578 587 

579После подключения Claude может читать ваш календарь, отправлять сообщения, создавать задачи и взаимодействовать с вашими инструментами напрямую. Вы можете спросить Claude, какие коннекторы настроены в вашей сессии. Чтобы управлять коннекторами или отключить их, перейдите в **Settings > Connectors** в приложении desktop.588После подключения Claude может читать ваш календарь, отправлять сообщения, создавать задачи и взаимодействовать с вашими инструментами напрямую. Вы можете спросить Claude, какие коннекторы настроены в вашей сессии. Чтобы управлять коннекторами или отключить их, нажмите **Customize** на боковой панели и откройте **Connectors**.

580 589 

581Для интеграций, не указанных в Connectors, добавьте MCP-серверы вручную через [файлы настроек](https://code.claude.com/docs/ru/mcp.md#installing-mcp-servers). Вы также можете [создать пользовательские коннекторы](https://support.claude.com/en/articles/11175166-getting-started-with-custom-connectors-using-remote-mcp).590Для интеграций, не указанных в Connectors, добавьте MCP-серверы вручную через [файлы настроек](https://code.claude.com/docs/ru/mcp.md#installing-mcp-servers). Вы также можете [создать пользовательские коннекторы](https://support.claude.com/en/articles/11175166-getting-started-with-custom-connectors-using-remote-mcp).

582 591 


2028| `--model sonnet` | Выбор модели в строке под полем промпта |2037| `--model sonnet` | Выбор модели в строке под полем промпта |

2029| `--resume`, `--continue` | Нажмите на сессию в боковой панели или введите `/resume` в поле промпта, чтобы продолжить сессию, запущенную из CLI |2038| `--resume`, `--continue` | Нажмите на сессию в боковой панели или введите `/resume` в поле промпта, чтобы продолжить сессию, запущенную из CLI |

2030| `--permission-mode` | Выбор режима в строке под полем промпта |2039| `--permission-mode` | Выбор режима в строке под полем промпта |

2031| `--dangerously-skip-permissions` | Режим обхода разрешений. На тарифах Pro и Max включите его в Settings → Claude Code → "Allow bypass permissions mode"; на тарифах Team и Enterprise им управляет политика организации |2040| `--dangerously-skip-permissions` | Режим обхода разрешений. На тарифах Pro и Max включите «Allow bypass permissions mode» в **Settings > Code** или **Settings > Claude Code**; на тарифах Team и Enterprise им управляет политика организации |

2032| `--add-dir` | [Добавьте папки в сессию](#add-folders-to-a-session) в локальных сессиях и сессиях SSH или выберите [несколько репозиториев](#run-long-running-tasks-in-the-cloud) в облачной сессии |2041| `--add-dir` | [Добавьте папки в сессию](#add-folders-to-a-session) в локальных сессиях и сессиях SSH или выберите [несколько репозиториев](#run-long-running-tasks-in-the-cloud) в облачной сессии |

2033| `--allowedTools`, `--disallowedTools` | Эквивалента на уровне сессии нет. Правила разрешений в [файлах настроек](https://code.claude.com/docs/ru/settings.md) по-прежнему применяются. |2042| `--allowedTools`, `--disallowedTools` | Эквивалента на уровне сессии нет. Правила разрешений в [файлах настроек](https://code.claude.com/docs/ru/settings.md) по-прежнему применяются. |

2034| `--verbose` | [Подробный режим просмотра](#switch-view-modes) |2043| `--verbose` | [Подробный режим просмотра](#switch-view-modes) |


2088* **Команды агентов**: скоординированные команды агентов, в которых Claude в роли лидера команды назначает задачи участникам команды из общего списка задач, доступны в [CLI](https://code.claude.com/docs/ru/agent-teams.md), но не в Desktop. Для многоагентной работы внутри одной сессии используйте [динамические рабочие процессы](https://code.claude.com/docs/ru/workflows.md), которые работают в Desktop; Claude также может напрямую [отправлять сообщения вашим другим сессиям и управлять ими](#work-across-sessions).2097* **Команды агентов**: скоординированные команды агентов, в которых Claude в роли лидера команды назначает задачи участникам команды из общего списка задач, доступны в [CLI](https://code.claude.com/docs/ru/agent-teams.md), но не в Desktop. Для многоагентной работы внутри одной сессии используйте [динамические рабочие процессы](https://code.claude.com/docs/ru/workflows.md), которые работают в Desktop; Claude также может напрямую [отправлять сообщения вашим другим сессиям и управлять ими](#work-across-sessions).

2089* **Команды с диалоговыми окнами терминала**: встроенные команды, открывающие интерактивную панель в терминале, во вкладке Code ведут себя иначе. Редактируйте [файлы настроек](https://code.claude.com/docs/ru/settings.md) напрямую, чтобы управлять правилами разрешений и конфигурацией, или выполняйте эти команды в автономном CLI.2098* **Команды с диалоговыми окнами терминала**: встроенные команды, открывающие интерактивную панель в терминале, во вкладке Code ведут себя иначе. Редактируйте [файлы настроек](https://code.claude.com/docs/ru/settings.md) напрямую, чтобы управлять правилами разрешений и конфигурацией, или выполняйте эти команды в автономном CLI.

2090 * Команды, которые не принимают аргументов, например `/permissions`, отвечают сообщением `isn't available in this environment`.2099 * Команды, которые не принимают аргументов, например `/permissions`, отвечают сообщением `isn't available in this environment`.

2091 * `/config` открывает **Settings > Claude Code**.2100 * `/config` открывает **Settings > Code** или **Settings > Claude Code**.

2092 2101 

2093## Устранение неполадок2102## Устранение неполадок

2094 2103 

Details

135 135 

136Локальные запланированные задачи запускаются на вашем компьютере. Desktop проверяет расписание каждую минуту при открытом приложении и запускает новую сессию, когда наступает время задачи, независимо от любых открытых вами ручных сессий. Каждая задача получает небольшую задержку в несколько минут после запланированного времени для распределения трафика API. Задержка детерминирована: одна и та же задача всегда запускается с одинаковым смещением.136Локальные запланированные задачи запускаются на вашем компьютере. Desktop проверяет расписание каждую минуту при открытом приложении и запускает новую сессию, когда наступает время задачи, независимо от любых открытых вами ручных сессий. Каждая задача получает небольшую задержку в несколько минут после запланированного времени для распределения трафика API. Задержка детерминирована: одна и та же задача всегда запускается с одинаковым смещением.

137 137 

138Задачи запускаются только при работающем приложении Desktop и включенном компьютере. Если ваш компьютер находится в спящем режиме в запланированное время, запуск пропускается. Чтобы предотвратить переход в спящий режим при бездействии, включите **Keep computer awake** в **Settings > This computer > System**. Закрытие крышки ноутбука все равно переводит его в спящий режим.138Задачи запускаются, только пока приложение Desktop работает, а компьютер не находится в спящем режиме. Если ваш компьютер находится в спящем режиме в запланированное время, запуск пропускается. Чтобы предотвратить переход в спящий режим при бездействии, включите **Keep computer awake** в **Settings > Desktop app** или **Settings > This computer > System**. Закрытие крышки ноутбука все равно переводит его в спящий режим.

139 139 

140> [!NOTE]140> [!NOTE]

141>141>

env-vars.md +2 −0

Details

291| `CLAUDE_CODE_ENABLE_TASKS` | Определяет, какие инструменты отслеживания задач Claude Code предоставляет в [сессиях, где они доступны](https://code.claude.com/docs/ru/tools-reference.md#task-tool-availability). По умолчанию Claude Code предоставляет инструменты Task `TaskCreate`, `TaskUpdate`, `TaskGet` и `TaskList`. Установите `0`, чтобы вместо них получить устаревший инструмент `TodoWrite`. См. [Список задач](https://code.claude.com/docs/ru/interactive-mode.md#task-list) |291| `CLAUDE_CODE_ENABLE_TASKS` | Определяет, какие инструменты отслеживания задач Claude Code предоставляет в [сессиях, где они доступны](https://code.claude.com/docs/ru/tools-reference.md#task-tool-availability). По умолчанию Claude Code предоставляет инструменты Task `TaskCreate`, `TaskUpdate`, `TaskGet` и `TaskList`. Установите `0`, чтобы вместо них получить устаревший инструмент `TodoWrite`. См. [Список задач](https://code.claude.com/docs/ru/interactive-mode.md#task-list) |

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

293| `CLAUDE_CODE_ENABLE_TODO_TOOLS` | Установите `1`, чтобы получить инструменты отслеживания задач на любой модели. Без неё Claude Code по умолчанию предоставляет их только на моделях, перечисленных в разделе [Доступность инструмента Task](https://code.claude.com/docs/ru/tools-reference.md#task-tool-availability). `CLAUDE_CODE_ENABLE_TASKS` по-прежнему выбирает между инструментами Task и `TodoWrite`. Требуется Claude Code v2.1.233 или новее |293| `CLAUDE_CODE_ENABLE_TODO_TOOLS` | Установите `1`, чтобы получить инструменты отслеживания задач на любой модели. Без неё Claude Code по умолчанию предоставляет их только на моделях, перечисленных в разделе [Доступность инструмента Task](https://code.claude.com/docs/ru/tools-reference.md#task-tool-availability). `CLAUDE_CODE_ENABLE_TASKS` по-прежнему выбирает между инструментами Task и `TodoWrite`. Требуется Claude Code v2.1.233 или новее |

294| `CLAUDE_CODE_EVEN_MORE_DANGEROUSLY_SKIP_PERMISSIONS` | Установите `1`, чтобы [выполнять опасные команды `rm` без запроса подтверждения](https://code.claude.com/docs/ru/permission-modes#turn-off-the-critical-path-removal-prompt-in-bypasspermissions-mode) в режиме `bypassPermissions`; это убирает защитный запрос подтверждения для разрушительных удалений. В указанном разделе перечислены случаи, когда переменная не действует. [Задавайте её в окружении, из которого запускается Claude Code](#set-variables-in-your-shell), поскольку Claude Code [игнорирует её в блоке `env` настроек](https://code.claude.com/docs/ru/settings-reference#variables-claude-code-ignores-in-env). Требуется Claude Code v2.1.311 или новее |

294| `CLAUDE_CODE_EXIT_AFTER_STOP_DELAY` | Время ожидания в миллисекундах после перехода цикла запросов в состояние простоя перед автоматическим завершением. Полезно для автоматизированных рабочих процессов и скриптов, использующих режим SDK |295| `CLAUDE_CODE_EXIT_AFTER_STOP_DELAY` | Время ожидания в миллисекундах после перехода цикла запросов в состояние простоя перед автоматическим завершением. Полезно для автоматизированных рабочих процессов и скриптов, использующих режим SDK |

295| `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` | Установите `1`, чтобы включить [команды агентов](https://code.claude.com/docs/ru/agent-teams.md). Команды агентов являются экспериментальными и по умолчанию отключены |296| `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` | Установите `1`, чтобы включить [команды агентов](https://code.claude.com/docs/ru/agent-teams.md). Команды агентов являются экспериментальными и по умолчанию отключены |

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


368| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` | Установите `1`, чтобы автоматически возобновлять работу, если предыдущая сессия завершилась посреди хода. Используется в режиме SDK, чтобы модель продолжала работу без повторной отправки промпта из SDK. Чтобы отключить это, удалите переменную или установите `0`. Для панели чата VS Code см. [Продолжение диалогов после перезагрузки](https://code.claude.com/docs/ru/vs-code.md#continue-conversations-after-a-reload) |369| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` | Установите `1`, чтобы автоматически возобновлять работу, если предыдущая сессия завершилась посреди хода. Используется в режиме SDK, чтобы модель продолжала работу без повторной отправки промпта из SDK. Чтобы отключить это, удалите переменную или установите `0`. Для панели чата VS Code см. [Продолжение диалогов после перезагрузки](https://code.claude.com/docs/ru/vs-code.md#continue-conversations-after-a-reload) |

369| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN_MAX_AGE_MS` | Максимальный возраст в миллисекундах последнего сообщения транскрипта, при котором сессия, завершившаяся посреди хода, автоматически продолжается при возобновлении. Если последнее сообщение старше этого предела, Claude Code пропускает автоматическое возобновление `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` и его сообщение продолжения `CLAUDE_CODE_RESUME_PROMPT`, и сессия запускается в режиме простоя, чтобы вы продолжили явно. Незаданное значение или `0` не устанавливают предела, за исключением того, что некоторые ходы возобновляются только в течение шести часов после их последнего сообщения, например ход, завершившийся ошибкой API. Положительное значение ограничивает все ходы, включая эти; отрицательное или нечисловое значение применяет предел в один час. Скрипты запуска долгоработающих агентов могут задать её, чтобы перезапуск со старым транскриптом не выполнял повторно устаревший промпт. Claude Code сам устанавливает предел в один час, когда перезапускает аварийно завершившуюся сессию [agent view](https://code.claude.com/docs/ru/agent-view.md), унаследовавшую диалог от интерактивной сессии. Требуется Claude Code v2.1.211 или новее |370| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN_MAX_AGE_MS` | Максимальный возраст в миллисекундах последнего сообщения транскрипта, при котором сессия, завершившаяся посреди хода, автоматически продолжается при возобновлении. Если последнее сообщение старше этого предела, Claude Code пропускает автоматическое возобновление `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` и его сообщение продолжения `CLAUDE_CODE_RESUME_PROMPT`, и сессия запускается в режиме простоя, чтобы вы продолжили явно. Незаданное значение или `0` не устанавливают предела, за исключением того, что некоторые ходы возобновляются только в течение шести часов после их последнего сообщения, например ход, завершившийся ошибкой API. Положительное значение ограничивает все ходы, включая эти; отрицательное или нечисловое значение применяет предел в один час. Скрипты запуска долгоработающих агентов могут задать её, чтобы перезапуск со старым транскриптом не выполнял повторно устаревший промпт. Claude Code сам устанавливает предел в один час, когда перезапускает аварийно завершившуюся сессию [agent view](https://code.claude.com/docs/ru/agent-view.md), унаследовавшую диалог от интерактивной сессии. Требуется Claude Code v2.1.211 или новее |

370| `CLAUDE_CODE_RESUME_PROMPT` | Переопределяет сообщение продолжения, которое Claude Code отправляет Claude, когда `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` продолжает прерванный ход вместо повторной отправки его промпта, или когда вы возобновляете [отложенный вызов инструмента](https://code.claude.com/docs/ru/hooks.md#defer-a-tool-call-for-later) с `-p`. По умолчанию `Continue from where you left off.`. При пустой строке используется значение по умолчанию |371| `CLAUDE_CODE_RESUME_PROMPT` | Переопределяет сообщение продолжения, которое Claude Code отправляет Claude, когда `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` продолжает прерванный ход вместо повторной отправки его промпта, или когда вы возобновляете [отложенный вызов инструмента](https://code.claude.com/docs/ru/hooks.md#defer-a-tool-call-for-later) с `-p`. По умолчанию `Continue from where you left off.`. При пустой строке используется значение по умолчанию |

372| `CLAUDE_CODE_RESUME_SHOWS_CUT_OFF_CALLS` | Установите значение `1`, чтобы сохранять [прерванные вызовы инструментов](https://code.claude.com/docs/ru/sessions.md#what-a-resumed-session-restores), помеченные как оборванные, в ходе, который продолжает `CLAUDE_CODE_RESUME_INTERRUPTED_TURN`. Если не задана, такие вызовы удаляются перед продолжением хода. Некоторые вызовы удаляются в любом случае, например вызовы субагентов, скиллов, рабочих процессов и инструментов, ожидающих действий человека. Для панели чата VS Code см. [Продолжение диалогов после перезагрузки](https://code.claude.com/docs/ru/vs-code.md#continue-conversations-after-a-reload). Требуется Claude Code v2.1.309 или новее |

371| `CLAUDE_CODE_RETRY_WATCHDOG` | Установите `1` для автономных сессий, таких как обвязки для оценки, задания CI или удалённые обработчики. Бесконечно повторяет попытки при ошибках нехватки мощности `429` и `529` вместо сбоя после `CLAUDE_CODE_MAX_RETRIES` попыток. Claude Code сразу завершается с ошибкой, когда запрос со стандартной скоростью получает `429`, сообщающий о лимите расходов или исчерпании кредитов использования, даже если это [ограничение расходов шлюза](https://code.claude.com/docs/ru/errors.md#spend-limit-reached), которое сбрасывается по расписанию. До v2.1.239 watchdog бесконечно повторял такие запросы. Для запросов в быстром режиме см. [Обработка ограничений частоты запросов](https://code.claude.com/docs/ru/fast-mode.md#handle-rate-limits). Watchdog увеличивает паузу между попытками до 5 минут или до сброса лимита, если ответ содержит время сброса ограничения частоты запросов, поэтому сессия, достигшая лимита использования, пережидает оставшееся окно. В v2.1.199 и новее он также повышает количество повторных попыток по умолчанию для других временных ошибок, таких как ошибки сервера, таймауты и разрывы соединения, до 300, что соответствует примерно трём часам ожидания, и снимает ограничение в 15 для `CLAUDE_CODE_MAX_RETRIES`, если вы задали эту переменную явно. Требуется Claude Code v2.1.186 или новее |373| `CLAUDE_CODE_RETRY_WATCHDOG` | Установите `1` для автономных сессий, таких как обвязки для оценки, задания CI или удалённые обработчики. Бесконечно повторяет попытки при ошибках нехватки мощности `429` и `529` вместо сбоя после `CLAUDE_CODE_MAX_RETRIES` попыток. Claude Code сразу завершается с ошибкой, когда запрос со стандартной скоростью получает `429`, сообщающий о лимите расходов или исчерпании кредитов использования, даже если это [ограничение расходов шлюза](https://code.claude.com/docs/ru/errors.md#spend-limit-reached), которое сбрасывается по расписанию. До v2.1.239 watchdog бесконечно повторял такие запросы. Для запросов в быстром режиме см. [Обработка ограничений частоты запросов](https://code.claude.com/docs/ru/fast-mode.md#handle-rate-limits). Watchdog увеличивает паузу между попытками до 5 минут или до сброса лимита, если ответ содержит время сброса ограничения частоты запросов, поэтому сессия, достигшая лимита использования, пережидает оставшееся окно. В v2.1.199 и новее он также повышает количество повторных попыток по умолчанию для других временных ошибок, таких как ошибки сервера, таймауты и разрывы соединения, до 300, что соответствует примерно трём часам ожидания, и снимает ограничение в 15 для `CLAUDE_CODE_MAX_RETRIES`, если вы задали эту переменную явно. Требуется Claude Code v2.1.186 или новее |

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

373| `CLAUDE_CODE_RETRY_WATCHDOG_USAGE_LIMIT_RECHECK_MS` | Минимальный интервал в миллисекундах между проверками того, не снят ли уже [лимит использования](https://code.claude.com/docs/ru/errors.md#youve-hit-your-session-limit), пока запрос ожидает сброса этого лимита при заданной `CLAUDE_CODE_RETRY_WATCHDOG`. Когда проверка обнаруживает, что лимит снят, запрос отправляется сразу. Укажите целое число цифрами от `60000` (одна минута) до `10800000` (три часа). Проверки выполняются только для сессионного или недельного лимита подписки claude.ai, когда кредиты использования не задействованы, и не выполняются, пока задана `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`. Если эта переменная не задана или её значение выходит за пределы этого диапазона, проверки не выполняются. Требуется Claude Code v2.1.305 или новее |375| `CLAUDE_CODE_RETRY_WATCHDOG_USAGE_LIMIT_RECHECK_MS` | Минимальный интервал в миллисекундах между проверками того, не снят ли уже [лимит использования](https://code.claude.com/docs/ru/errors.md#youve-hit-your-session-limit), пока запрос ожидает сброса этого лимита при заданной `CLAUDE_CODE_RETRY_WATCHDOG`. Когда проверка обнаруживает, что лимит снят, запрос отправляется сразу. Укажите целое число цифрами от `60000` (одна минута) до `10800000` (три часа). Проверки выполняются только для сессионного или недельного лимита подписки claude.ai, когда кредиты использования не задействованы, и не выполняются, пока задана `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`. Если эта переменная не задана или её значение выходит за пределы этого диапазона, проверки не выполняются. Требуется Claude Code v2.1.305 или новее |

errors.md +37 −10

Details

146| `N sessions ended while this machine was offline — the environment was cleaned up on the server and can't be resumed.` | [Network](#sessions-ended-while-this-machine-was-offline) |146| `N sessions ended while this machine was offline — the environment was cleaned up on the server and can't be resumed.` | [Network](#sessions-ended-while-this-machine-was-offline) |

147| `Couldn't share the transcript.` | [Network](#couldnt-share-the-transcript) |147| `Couldn't share the transcript.` | [Network](#couldnt-share-the-transcript) |

148| `Couldn't send feedback` | [Network](#couldnt-send-feedback) |148| `Couldn't send feedback` | [Network](#couldnt-send-feedback) |

149| `Feedback payload too large. Try again without the transcript, or shorten the details.` | [Сеть](#feedback-payload-too-large) |

149| `MCP server "<name>" connection timed out. Your computer went to sleep or its clock changed while connecting.` | [Network](#mcp-server-connection-timed-out-during-a-sleep-or-clock-change) |150| `MCP server "<name>" connection timed out. Your computer went to sleep or its clock changed while connecting.` | [Network](#mcp-server-connection-timed-out-during-a-sleep-or-clock-change) |

150| `Prompt is too long` / `Input is too long for requested model` | [Request errors](#prompt-is-too-long) |151| `Prompt is too long` / `Input is too long for requested model` | [Request errors](#prompt-is-too-long) |

151| `Prompt is too long · automatic compaction failed:` | [Request errors](#prompt-is-too-long) |152| `Prompt is too long · automatic compaction failed:` | [Request errors](#prompt-is-too-long) |


335| `Failed to write the plan approval request to the lead's inbox — plan not submitted` | [Tool errors](#failed-to-write-to-a-teammate-inbox) |336| `Failed to write the plan approval request to the lead's inbox — plan not submitted` | [Tool errors](#failed-to-write-to-a-teammate-inbox) |

336| `Its agent definition was not restored: the folder its definition file came from is not trusted` | [Tool errors](#teammate-agent-definition-not-restored) |337| `Its agent definition was not restored: the folder its definition file came from is not trusted` | [Tool errors](#teammate-agent-definition-not-restored) |

337| `Only a teammate can approve a shutdown request` | [Tool errors](#only-a-teammate-can-approve-a-shutdown-request) |338| `Only a teammate can approve a shutdown request` | [Tool errors](#only-a-teammate-can-approve-a-shutdown-request) |

339| `A command-line deny rule cannot be handed to a teammate intact` | [Ошибки инструментов](#command-line-deny-rule-cannot-be-handed-to-a-teammate) |

338| `Message too large for cross-session delivery` | [Tool errors](#message-too-large-for-cross-session-delivery) |340| `Message too large for cross-session delivery` | [Tool errors](#message-too-large-for-cross-session-delivery) |

339| `Too many messages to this session just now` | [Tool errors](#too-many-messages-to-this-session-just-now) |341| `Too many messages to this session just now` | [Tool errors](#too-many-messages-to-this-session-just-now) |

340| `Cross-session message was dropped at the recipient session's inbox` | [Tool errors](#cross-session-message-dropped-at-the-inbox) |342| `Cross-session message was dropped at the recipient session's inbox` | [Tool errors](#cross-session-message-dropped-at-the-inbox) |


375| `This conversation is already open in another running Claude session` | [Background session errors](#this-session-is-running-in-another-terminal) |377| `This conversation is already open in another running Claude session` | [Background session errors](#this-session-is-running-in-another-terminal) |

376| `This session's saved conversation is no longer on disk` | [Background session errors](#this-sessions-saved-conversation-is-no-longer-on-disk) |378| `This session's saved conversation is no longer on disk` | [Background session errors](#this-sessions-saved-conversation-is-no-longer-on-disk) |

377| `Bypass permissions was requested at launch and ignored` | [Режим bypassPermissions игнорируется в фоновой сессии](https://code.claude.com/docs/ru/permission-modes.md#bypass-permissions-ignored-in-a-background-session) |379| `Bypass permissions was requested at launch and ignored` | [Режим bypassPermissions игнорируется в фоновой сессии](https://code.claude.com/docs/ru/permission-modes.md#bypass-permissions-ignored-in-a-background-session) |

378| `kept <id> — its worktree is still at <path>` | [Background session errors](#worktree-has-commits-that-are-not-pushed-anywhere) |380| `kept <id> — its worktree is still at <path>` | [Ошибки фоновых сессий](#worktree-has-commits-that-are-not-pushed-anywhere), если в следующей строке сообщения упоминаются неотправленные коммиты, иначе [Что удаляется при удалении сессии](https://code.claude.com/docs/ru/agent-view.md#what-deleting-a-session-removes) |

379| `kept <id> — <n> unpushed commits on <branch>` | [Background session errors](#worktree-has-commits-that-are-not-pushed-anywhere) |381| `kept <id> — <n> unpushed commits on <branch>` | [Background session errors](#worktree-has-commits-that-are-not-pushed-anywhere) |

380| `kept <id> — worktree has commits that are not pushed anywhere` | [Background session errors](#worktree-has-commits-that-are-not-pushed-anywhere) |382| `kept <id> — worktree has commits that are not pushed anywhere` | [Background session errors](#worktree-has-commits-that-are-not-pushed-anywhere) |

381| `terminal host process died — press Enter to restart` / `This session's terminal host process died` | [Background session errors](#terminal-host-process-died) |383| `terminal host process died — press Enter to restart` / `This session's terminal host process died` | [Background session errors](#terminal-host-process-died) |


2188 2190 

2189### Couldn't send feedback2191### Couldn't send feedback

2190 2192 

2191Сообщение, начинающееся с `Couldn't send feedback`, означает, что отчёт, который вы отправили из [диалогового окна `/feedback`, `/bug` или `/share`](https://code.claude.com/docs/ru/commands#all-commands), или [черновик отзыва](https://code.claude.com/docs/ru/tools-reference.md#sendfeedback-tool-behavior) из очереди не был отправлен. Если после двоеточия следует предложение о вашей организации, ваша организация не принимает отзывы, и тот же отчёт получит тот же ответ.2193Сообщение, начинающееся с `Couldn't send feedback`, означает, что сервис отзывов не подтвердил получение отчёта, который вы отправили из [диалогового окна `/feedback`, `/bug` или `/share`](https://code.claude.com/docs/ru/commands#all-commands), или [черновика отзыва](https://code.claude.com/docs/ru/tools-reference.md#sendfeedback-tool-behavior) из очереди. Считайте, что он не получен. Если после двоеточия следует предложение о вашей организации, ваша организация не принимает отзывы, и тот же отчёт получит тот же ответ.

2192 2194 

2193Первый из этих двух примеров — сетевой сбой, второй — отказ организации:2195Второй из этих двух примеров — отказ организации:

2194 2196 

2195```text wrap theme={null}2197```text wrap theme={null}

2196Couldn't send feedback (couldn't reach the service). If it keeps failing, you can file at https://github.com/anthropics/claude-code/issues instead.2198Couldn't send feedback (couldn't reach the service). If it keeps failing, you can file at https://github.com/anthropics/claude-code/issues instead.


2203* **Вход не выполнен**: сообщение продолжается текстом `: not signed in. Run /login, then retry.` Выполните `/login`, затем отправьте снова2205* **Вход не выполнен**: сообщение продолжается текстом `: not signed in. Run /login, then retry.` Выполните `/login`, затем отправьте снова

2204* **Отказ вашей организации**: например, `: Feedback has not been enabled for your organization.` или `: Feedback collection is not available for organizations with custom data retention policies.` Если сообщение добавляет `To report a bug, open an issue`, создайте issue на [github.com/anthropics/claude-code/issues](https://github.com/anthropics/claude-code/issues). Черновик в очереди остаётся в очереди, и вы можете [удалить его](https://code.claude.com/docs/ru/tools-reference.md#discard-or-keep-a-draft)2206* **Отказ вашей организации**: например, `: Feedback has not been enabled for your organization.` или `: Feedback collection is not available for organizations with custom data retention policies.` Если сообщение добавляет `To report a bug, open an issue`, создайте issue на [github.com/anthropics/claude-code/issues](https://github.com/anthropics/claude-code/issues). Черновик в очереди остаётся в очереди, и вы можете [удалить его](https://code.claude.com/docs/ru/tools-reference.md#discard-or-keep-a-draft)

2205* **Отклонённые учётные данные**: сообщение продолжается текстом `: the sign-in this session uses is not allowed to send feedback` или `: the server did not accept the credentials this session uses`. Выполните `/status` в промпте Claude Code, чтобы увидеть, какой вход, токен или API-ключ отправляет эта сессия2207* **Отклонённые учётные данные**: сообщение продолжается текстом `: the sign-in this session uses is not allowed to send feedback` или `: the server did not accept the credentials this session uses`. Выполните `/status` в промпте Claude Code, чтобы увидеть, какой вход, токен или API-ключ отправляет эта сессия

2206* **`(request timed out)` или `(couldn't reach the service)` сразу после `Couldn't send feedback`**: это сетевые сбои. Отправьте отчёт или черновик из очереди снова. Диалоговое окно сохраняет ваш текст, а сообщение для черновика в очереди содержит `The draft is still queued.` Если другие запросы тоже завершаются ошибкой, проверьте сетевое подключение и см. [Unable to connect to API](#unable-to-connect-to-api). Если сбой повторяется, создайте отчёт на [github.com/anthropics/claude-code/issues](https://github.com/anthropics/claude-code/issues)2208* **`(request timed out)` или `(couldn't reach the service)` сразу после `Couldn't send feedback`**: отправьте отчёт или черновик из очереди снова. Диалоговое окно сохраняет ваш текст, а сообщение для черновика в очереди содержит `The draft is still queued.` Если другие запросы тоже завершаются ошибкой, проверьте сетевое подключение и см. [Unable to connect to API](#unable-to-connect-to-api). Если сбой повторяется, создайте отчёт на [github.com/anthropics/claude-code/issues](https://github.com/anthropics/claude-code/issues)

2207* **`(server returned <status>)` или отсутствие причины сразу после `Couldn't send feedback`**: статус — это код ответа сервиса. Если сервис прислал собственное сообщение, оно следует за статусом, например `(server returned 403: Access Forbidden)`. Если сбой повторяется, создайте отчёт на [github.com/anthropics/claude-code/issues](https://github.com/anthropics/claude-code/issues)2209* **`(server returned <status>)` или отсутствие причины сразу после `Couldn't send feedback`**: статус — это код ответа сервиса. Если сервис прислал собственное сообщение, оно следует за статусом, например `(server returned 403: Access Forbidden)`. Если сбой повторяется, создайте отчёт на [github.com/anthropics/claude-code/issues](https://github.com/anthropics/claude-code/issues)

2208 2210 

2209Issues на github.com/anthropics/claude-code публичны, поэтому, создавая issue, не включайте в него код, транскрипты и всё остальное конфиденциальное.2211Issues на github.com/anthropics/claude-code публичны, поэтому, создавая issue, не включайте в него код, транскрипты и всё остальное конфиденциальное.

2210 2212 

2211До версии v2.1.281 любая отправка завершалась этим сообщением, если, пока диалоговое окно было открыто, поступила команда **Stop** от Remote Control или срочное сообщение из другой сессии. В этих версиях закройте диалоговое окно, откройте его снова и повторите отправку.2213До версии v2.1.281 любая отправка завершалась этим сообщением, если, пока диалоговое окно было открыто, поступила команда **Stop** от Remote Control или срочное сообщение из другой сессии. В этих версиях закройте диалоговое окно, откройте его снова и повторите отправку.

2212 2214 

2215### Feedback payload too large

2216 

2217Это сообщение на [экране проверки](https://code.claude.com/docs/ru/tools-reference.md#review-and-edit-a-draft) [черновика отзыва](https://code.claude.com/docs/ru/tools-reference.md#sendfeedback-tool-behavior) означает, что у Claude Code нет подтверждения того, что сервис принял черновик. Считайте, что он не получен. Черновик остаётся в вашей очереди `/feedback`, поэтому вы можете отправить его снова.

2218 

2219```text wrap theme={null}

2220Feedback payload too large. Try again without the transcript, or shorten the details.

2221```

2222 

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

2224 

2225* На экране проверки установите для **Send transcript** значение `no`, затем снова отправьте черновик. Сокращение подробностей убирает не более 10 KB текста — это весь объём, который могут вместить подробности черновика.

2226 

2213### MCP server connection timed out during a sleep or clock change2227### MCP server connection timed out during a sleep or clock change

2214 2228 

2215Это сообщение означает, что подключение к [MCP-серверу](https://code.claude.com/docs/ru/mcp.md) завершилось по таймауту, и Claude Code обнаружил, что во время попытки системные часы скачком ушли вперёд:2229Это сообщение означает, что подключение к [MCP-серверу](https://code.claude.com/docs/ru/mcp.md) завершилось по таймауту, и Claude Code обнаружил, что во время попытки системные часы скачком ушли вперёд:


3281* **`Error: Workspace not trusted. <folder> is your home directory`**: поскольку доверие для домашнего каталога никогда не сохраняется, предварительный запуск `claude` там не поможет. Вместо этого выполните `claude ultrareview` из каталога проекта, предварительно один раз запустив там `claude`, чтобы принять диалог доверия, или добавьте `--trust-workspace`.3295* **`Error: Workspace not trusted. <folder> is your home directory`**: поскольку доверие для домашнего каталога никогда не сохраняется, предварительный запуск `claude` там не поможет. Вместо этого выполните `claude ultrareview` из каталога проекта, предварительно один раз запустив там `claude`, чтобы принять диалог доверия, или добавьте `--trust-workspace`.

3282* **`No answer in time.` с последующим `Error: Workspace not trusted`**: на вопрос `Trust <folder>? [y/N]` не было ответа в течение 5 минут. Снова выполните `claude ultrareview` и ответьте на него.3296* **`No answer in time.` с последующим `Error: Workspace not trusted`**: на вопрос `Trust <folder>? [y/N]` не было ответа в течение 5 минут. Снова выполните `claude ultrareview` и ответьте на него.

3283* **`Ultrareview did not start: <folder> is not trusted`**: вы отказались на вопрос `Trust <folder>? [y/N]`, например ответив `n` или нажав Enter. Чтобы начать ревью, снова выполните `claude ultrareview` и ответьте `y`.3297* **`Ultrareview did not start: <folder> is not trusted`**: вы отказались на вопрос `Trust <folder>? [y/N]`, например ответив `n` или нажав Enter. Чтобы начать ревью, снова выполните `claude ultrareview` и ответьте `y`.

3284* **``Ultrareview did not start: `--trust-workspace` takes no value``**: после `--trust-workspace` следует что-то помимо флага, например номер PR или `false`. Если вы не доверяете каталогу, не указывайте флаг. Чтобы доверить его для этого запуска, поставьте номер PR или базовую ветку перед флагом: `claude ultrareview 1234 --trust-workspace`.3298* **``Ultrareview did not start: `--trust-workspace` takes no value``**: после `--trust-workspace` следует что-то, кроме флага, например номер PR или `false`. Если вы не доверяете папке, не указывайте флаг. Чтобы доверять ей на этот запуск, поставьте номер PR или базовую ветку перед флагом: `claude ultrareview 1234 --trust-workspace`.

3285 3299 

3286До v2.1.309 `claude ultrareview` не принимал `--trust-workspace`.3300До v2.1.309 `claude ultrareview` не принимал `--trust-workspace`.

3287 3301 


3476 3490 

3477### MCP-сервер отклонил возможность elicitation3491### MCP-сервер отклонил возможность elicitation

3478 3492 

3479MCP-сервер, построенный на Java MCP SDK версий от 0.11.0 до 0.17.0, отклонил подключение. Эти версии SDK не могут разобрать [режимы elicitation](https://code.claude.com/docs/ru/mcp.md#elicitation-modes-claude-code-declares) `form` и `url`, которые Claude Code объявляет при установлении соединения. `claude mcp list` показывает сервер как неисправный с этим сообщением вместо собственной ошибки сервера:3493MCP-сервер, созданный на Java MCP SDK версий с 0.11.0 по 0.17.0, отклонил подключение. Эти версии SDK не могут разобрать [режимы elicitation](https://code.claude.com/docs/ru/mcp.md#elicitation-modes-claude-code-declares) `form` и `url`, которые Claude Code объявляет при рукопожатии. Сообщение выглядит так:

3480 3494 

3481```text theme={null}3495```text theme={null}

3482This server (Java MCP SDK 0.17.0 or older) rejected Claude Code's elicitation capability. Set "bareElicitationCapability": true for it, or upgrade to Java MCP SDK 0.17.1+ (Spring AI 1.0.7+ or 1.1.6+).3496This server (Java MCP SDK 0.17.0 or older) rejected Claude Code's elicitation capability. Set "bareElicitationCapability": true for it, or upgrade to Java MCP SDK 0.17.1+ (Spring AI 1.0.7+ or 1.1.6+).


3573 3587 

3574Родственные сообщения появляются ещё до запуска команды:3588Родственные сообщения появляются ещё до запуска команды:

3575 3589 

3576* `Shell command permission check failed for pattern "..."`: проверка разрешений для команды не разрешила её. В разделе [Проверки разрешений для внедрённых команд](https://code.claude.com/docs/ru/skills.md#permission-checks-on-injected-commands) описано, какие результаты прерывают выполнение в каждом режиме разрешений и как заранее одобрить команду с помощью `allowed-tools`3590* `Shell command permission check failed for pattern "..."`: проверка разрешений для команды её не допустила. В разделе [Проверки разрешений для внедрённых команд](https://code.claude.com/docs/ru/skills.md#permission-checks-on-injected-commands) описано, какие результаты прерывают выполнение в каждом режиме разрешений и как заранее одобрить команду с помощью `allowed-tools`

3577* ``Skill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found``: frontmatter скилла требует bash на компьютере, где его нет. Установите Git for Windows или измените frontmatter на `shell: powershell`. См. [Как выполняются внедрённые команды](https://code.claude.com/docs/ru/skills.md#how-injected-commands-run)3591* ``Skill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found``: frontmatter скилла требует bash на компьютере, где его нет. Установите Git for Windows или измените frontmatter на `shell: powershell`. См. [Как выполняются внедрённые команды](https://code.claude.com/docs/ru/skills.md#how-injected-commands-run)

3578* `No shell command in <name> was run`: одна из команд `!` в файле содержит необработанный управляющий символ, отличный от табуляции или перевода строки, поэтому ни одна из них не выполняется. См. [как найти и удалить этот символ](#no-shell-command-was-run)3592* `No shell command in <name> was run`: одна из команд `!` в файле содержит необработанный управляющий символ, отличный от табуляции или перевода строки, поэтому ни одна из них не выполняется. См. [как найти и удалить этот символ](#no-shell-command-was-run)

3579 3593 


3725 3739 

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

3727* **Вы передали базовую ветку, которая уже была в вашем клоне**: подсказка гласит ``Make sure <branch> exists locally or on origin (try `git fetch origin <branch>`)``3741* **Вы передали базовую ветку, которая уже была в вашем клоне**: подсказка гласит ``Make sure <branch> exists locally or on origin (try `git fetch origin <branch>`)``

3728* **Вы передали базовую ветку, которой не было в вашем клоне**: Claude Code загрузил её из origin перед сравнением. Подсказка гласит ``<branch> was fetched from origin but shares no history with HEAD. If another branch is your real base, pass it explicitly (`/code-review ultra <branch>`)``; если Claude Code не может определить, является ли ваш клон неполным (shallow), вместо этого он предлагает `git fetch --unshallow origin`. До v2.1.221 подсказка предлагала `git fetch --unshallow origin` для любой загруженной базовой ветки, а в полном клоне эта команда завершается ошибкой `fatal: --unshallow on a complete repository does not make sense`.3742* **Вы передали базовую ветку, которой не было в вашем клоне**: Claude Code загрузил её из origin перед сравнением. Подсказка гласит ``<branch> was fetched from origin but shares no history with HEAD. If another branch is your real base, pass it explicitly (`/code-review ultra <branch>`)``; если Claude Code не может определить, является ли ваш клон поверхностным (shallow), он предлагает вместо этого `git fetch --unshallow origin`. До v2.1.221 подсказка предлагала `git fetch --unshallow origin` для каждой загруженной базовой ветки, и в полном клоне эта команда завершалась ошибкой `fatal: --unshallow on a complete repository does not make sense`.

3729 3743 

3730**Что делать:**3744**Что делать:**

3731 3745 


4678* Если участник команды всё ещё работает, попросите лидера в его промпте завершить работу участника команды, например `Ask the researcher teammate to shut down`. См. [Завершение работы участников команды](https://code.claude.com/docs/ru/agent-teams.md#shut-down-teammates).4692* Если участник команды всё ещё работает, попросите лидера в его промпте завершить работу участника команды, например `Ask the researcher teammate to shut down`. См. [Завершение работы участников команды](https://code.claude.com/docs/ru/agent-teams.md#shut-down-teammates).

4679* Если этот отказ получил бывший участник команды, которого вы сами возобновили с помощью `claude --resume`, ничего не было отправлено. Чтобы завершить эту сессию, выполните `/exit` в её промпте.4693* Если этот отказ получил бывший участник команды, которого вы сами возобновили с помощью `claude --resume`, ничего не было отправлено. Чтобы завершить эту сессию, выполните `/exit` в её промпте.

4680 4694 

4695### A command-line deny rule cannot be handed to a teammate intact

4696 

4697Это сообщение означает, что Claude Code не запустил участника вашей [команды агентов](https://code.claude.com/docs/ru/agent-teams.md) в [режиме разделённых панелей](https://code.claude.com/docs/ru/agent-teams.md#choose-a-display-mode). Claude Code передаёт запрещающие правила командной строки лидера участнику команды в разделённой панели через собственную командную строку участника и останавливается, когда участник прочитал бы одно из них иначе:

4698 

4699```text wrap theme={null}

4700A command-line deny rule cannot be handed to a teammate intact, so the teammate would not enforce it — spawn aborted

4701```

4702 

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

4704 

4705* Выполните `/config` в сессии лидера и установите для **Teammate mode** значение `in-process`, затем попросите Claude снова запустить участника команды. Искать правило или перезапускать лидера не нужно. Участник команды в режиме in-process [работает с актуальными запрещающими правилами лидера](https://code.claude.com/docs/ru/agent-teams.md#permissions).

4706* Последующие сессии, которые берут [`teammateMode`](https://code.claude.com/docs/ru/settings-reference#teammatemode) из ваших пользовательских настроек, тоже запускают участников команды в режиме in-process, потому что `/config` сохраняет выбор именно туда. Чтобы вернуться к разделённым панелям в последующей сессии, установите для **Teammate mode** значение `auto`, `tmux` или `iterm2` — то, которое вы использовали раньше.

4707 

4681### Message too large for cross-session delivery4708### Message too large for cross-session delivery

4682 4709 

4683[Межсессионное сообщение](https://code.claude.com/docs/ru/cross-session-messaging.md) Claude другой вашей сессии на этой машине было слишком длинным для отправки. Claude Code отклонил его, и получающая сессия ничего не получила. Отказ появляется в результате инструмента отправляющей сессии, а не как баннер в вашем терминале. Он называет оба размера и способ уместить сообщение:4710[Межсессионное сообщение](https://code.claude.com/docs/ru/cross-session-messaging.md) Claude другой вашей сессии на этой машине было слишком длинным для отправки. Claude Code отклонил его, и получающая сессия ничего не получила. Отказ появляется в результате инструмента отправляющей сессии, а не как баннер в вашем терминале. Он называет оба размера и способ уместить сообщение:


5115**Что делать:**5142**Что делать:**

5116 5143 

5117* Чтобы сохранить коммиты, отправьте ветку worktree или выполните её слияние с веткой по умолчанию, извлечённой в основной рабочей копии, затем снова удалите сессию5144* Чтобы сохранить коммиты, отправьте ветку worktree или выполните её слияние с веткой по умолчанию, извлечённой в основной рабочей копии, затем снова удалите сессию

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

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

5120 5147 

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

5122 5149 

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

5124 5151 

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

5126 5153 

fast-mode.md +2 −2

Details

45* Рядом с приглашением появляется небольшой значок `↯` во время активного быстрого режима45* Рядом с приглашением появляется небольшой значок `↯` во время активного быстрого режима

46* Запустите `/fast` снова в любое время, чтобы проверить, включен или отключен быстрый режим46* Запустите `/fast` снова в любое время, чтобы проверить, включен или отключен быстрый режим

47 47 

48Opus 5.5 является моделью по умолчанию для быстрого режима в Claude Code v2.1.280 и позже. До версии v2.1.280 быстрый режим по умолчанию использовал Opus 5 с версии v2.1.219 и Opus 4.8 на версиях v2.1.154 по v2.1.218.48Opus 5.5 является моделью по умолчанию для быстрого режима в Claude Code v2.1.280 и позже. До версии v2.1.280 быстрый режим по умолчанию использовал Opus 5, начиная с версии v2.1.219.

49 49 

50Когда вы отключаете быстрый режим с помощью `/fast` снова, вы остаетесь на Opus. Чтобы переключиться на другую модель, используйте `/model`.50Когда вы отключаете быстрый режим с помощью `/fast` снова, вы остаетесь на Opus. Чтобы переключиться на другую модель, используйте `/model`.

51 51 


58 58 

59Всякий раз, когда переключение модели включает или отключает быстрый режим, Claude Code показывает подтверждение `Fast mode ON` или `Fast mode OFF`, и значок `↯` появляется во время активного быстрого режима. Это применяется независимо от того, переключаетесь ли вы с помощью `/model`, с помощью [`/config model=<model>`](https://code.claude.com/docs/ru/settings) или с устройства, подключенного через [Remote Control](https://code.claude.com/docs/ru/remote-control.md).59Всякий раз, когда переключение модели включает или отключает быстрый режим, Claude Code показывает подтверждение `Fast mode ON` или `Fast mode OFF`, и значок `↯` появляется во время активного быстрого режима. Это применяется независимо от того, переключаетесь ли вы с помощью `/model`, с помощью [`/config model=<model>`](https://code.claude.com/docs/ru/settings) или с устройства, подключенного через [Remote Control](https://code.claude.com/docs/ru/remote-control.md).

60 60 

61Claude Code повторно отправляет статус быстрого режима сеанса на устройства, подключенные через Remote Control, после переключения модели, переподключения или неудачной [проверки доступности](#use-fast-mode-behind-proxies-and-llm-gateways).61Claude Code повторно отправляет статус быстрого режима сессии на устройства, подключенные через Remote Control, после переключения модели, переподключения или неудачной [проверки доступности](#use-fast-mode-behind-proxies-and-llm-gateways).

62 62 

63### Использование быстрого режима в облачных сеансах63### Использование быстрого режима в облачных сеансах

64 64 

Details

248 248 

249> [!TIP]249> [!TIP]

250>250>

251> Держите CLAUDE.md под 200 строк. Переместите справочный материал в skills, которые загружаются по требованию. Чтобы получить [предложения по сокращению проверенного CLAUDE.md](https://code.claude.com/docs/ru/memory.md#my-claude-md-is-too-large), запустите `/doctor`.251> Держите CLAUDE.md под 200 строк. Переместите справочный материал в skills, которые загружаются по требованию. Чтобы получить [предложения по сокращению зафиксированного в репозитории CLAUDE.md](https://code.claude.com/docs/ru/memory.md#my-claude-md-is-too-large), запустите `/doctor`.

252 252 

253**Skills**253**Skills**

254 254 

glossary.md +1 −1

Details

373 373 

374Как сессия узнаёт, что работа действительно выполнена, вместо того чтобы принимать результат, который лишь выглядит правдоподобно. Вы даёте Claude проверку, которую он может запустить, такую как набор тестов, сборка или сравнение скриншотов, и Claude повторяет попытки до тех пор, пока проверка не пройдёт, вместо того чтобы остановиться после одной попытки. Цикл проверки — это предварительное требование для [`/goal`](https://code.claude.com/docs/ru/goal), автоматических запусков и [динамических рабочих процессов](https://code.claude.com/docs/ru/workflows.md): без него единственное, что решает, что агент закончил, — это сам агент.374Как сессия узнаёт, что работа действительно выполнена, вместо того чтобы принимать результат, который лишь выглядит правдоподобно. Вы даёте Claude проверку, которую он может запустить, такую как набор тестов, сборка или сравнение скриншотов, и Claude повторяет попытки до тех пор, пока проверка не пройдёт, вместо того чтобы остановиться после одной попытки. Цикл проверки — это предварительное требование для [`/goal`](https://code.claude.com/docs/ru/goal), автоматических запусков и [динамических рабочих процессов](https://code.claude.com/docs/ru/workflows.md): без него единственное, что решает, что агент закончил, — это сам агент.

375 375 

376Подробнее: [Give Claude a way to verify its work](https://code.claude.com/docs/ru/best-practices.md#give-claude-a-way-to-verify-its-work)376Подробнее: [Дайте Claude проверку, которую он может запустить](https://code.claude.com/docs/ru/best-practices.md#give-claude-a-check-to-run)

377 377 

378## W378## W

379 379 

Details

166| Основная модель | `claude-opus-5-5` |166| Основная модель | `claude-opus-5-5` |

167| Малая/быстрая модель | `claude-sonnet-4-5@20250929` |167| Малая/быстрая модель | `claude-sonnet-4-5@20250929` |

168 168 

169До версии 2.1.280 основная модель на Google Cloud's Agent Platform по умолчанию была Opus 5, и псевдоним `opus` разрешался в Opus 5 с версии 2.1.219.

170 

169Фоновые задачи, такие как генерация названия сеанса, используют малую/быструю модель, обычно модель класса Haiku. На Google Cloud's Agent Platform Claude Code использует модель Sonnet по умолчанию для фоновых задач, потому что Haiku может быть не включен в каждом проекте или регионе. Два выбора изменяют, какая модель их выполняет:171Фоновые задачи, такие как генерация названия сеанса, используют малую/быструю модель, обычно модель класса Haiku. На Google Cloud's Agent Platform Claude Code использует модель Sonnet по умолчанию для фоновых задач, потому что Haiku может быть не включен в каждом проекте или регионе. Два выбора изменяют, какая модель их выполняет:

170 172 

171* Когда вы выбираете основную модель с помощью `--model`, `ANTHROPIC_MODEL` или параметра `model`, фоновые задачи используют эту модель. Когда Claude Code запускает сеанс на модели, которую вы установили с помощью [`ANTHROPIC_DEFAULT_MODEL`](https://code.claude.com/docs/ru/model-config#set-a-default-model-for-new-sessions), фоновые задачи используют эту модель тоже. Установка `ANTHROPIC_DEFAULT_OPUS_MODEL` без `ANTHROPIC_DEFAULT_SONNET_MODEL` также считается выбором, потому что встроенная модель Sonnet может быть не включена в проекте, который управляет своим собственным Opus.173* Когда вы выбираете основную модель с помощью `--model`, `ANTHROPIC_MODEL` или параметра `model`, фоновые задачи используют эту модель. Когда Claude Code запускает сеанс на модели, которую вы установили с помощью [`ANTHROPIC_DEFAULT_MODEL`](https://code.claude.com/docs/ru/model-config#set-a-default-model-for-new-sessions), фоновые задачи используют эту модель тоже. Установка `ANTHROPIC_DEFAULT_OPUS_MODEL` без `ANTHROPIC_DEFAULT_SONNET_MODEL` также считается выбором, потому что встроенная модель Sonnet может быть не включена в проекте, который управляет своим собственным Opus.


175>177>

176> Модели Opus имеют более высокую цену за токен, чем модели Sonnet, поэтому если вы не закрепите основную модель, тарификация будет производиться по тарифу Opus. Чтобы использовать Sonnet 4.5 в качестве основной модели, установите `ANTHROPIC_MODEL` на его полный ID модели. Развертывание, которое управляет значением по умолчанию с помощью `ANTHROPIC_DEFAULT_SONNET_MODEL` и не устанавливает `ANTHROPIC_DEFAULT_OPUS_MODEL`, сохраняет свою управляемую модель Sonnet в качестве значения по умолчанию.178> Модели Opus имеют более высокую цену за токен, чем модели Sonnet, поэтому если вы не закрепите основную модель, тарификация будет производиться по тарифу Opus. Чтобы использовать Sonnet 4.5 в качестве основной модели, установите `ANTHROPIC_MODEL` на его полный ID модели. Развертывание, которое управляет значением по умолчанию с помощью `ANTHROPIC_DEFAULT_SONNET_MODEL` и не устанавливает `ANTHROPIC_DEFAULT_OPUS_MODEL`, сохраняет свою управляемую модель Sonnet в качестве значения по умолчанию.

177 179 

178До версии 2.1.280 основная модель на Google Cloud's Agent Platform по умолчанию была Opus 5, и псевдоним `opus` разрешался в Opus 5 с версии 2.1.219. На версиях 2.1.207 по 2.1.218 основная модель на Google Cloud's Agent Platform по умолчанию была Opus 4.8, и псевдоним `opus` разрешался в Opus 4.8.

179 

180Для дальнейшей настройки моделей:180Для дальнейшей настройки моделей:

181 181 

182```bash theme={null}182```bash theme={null}

headless.md +4 −3

Details

236 236 

237Если каких-то из этих сообщений нет в вашем потоке, сверьте версию Claude Code с этими минимальными требованиями:237Если каких-то из этих сообщений нет в вашем потоке, сверьте версию Claude Code с этими минимальными требованиями:

238 238 

239* **Пересылка на каждом уровне вложенности**: версия 2.1.219 или новее

240* **Разветвлённый скилл, который Claude запускает инструментом Skill из основного диалога**: версия 2.1.86 или новее для его блоков `tool_use` и `tool_result` и версия 2.1.265 или новее для его первого сообщения `user`, а также текстовых блоков и блоков размышлений239* **Разветвлённый скилл, который Claude запускает инструментом Skill из основного диалога**: версия 2.1.86 или новее для его блоков `tool_use` и `tool_result` и версия 2.1.265 или новее для его первого сообщения `user`, а также текстовых блоков и блоков размышлений

241* **Сообщения субагентов, которых порождает разветвлённый скилл, и разветвлённых скиллов, запущенных внутри субагента или другого разветвлённого скилла**: версия 2.1.275 или новее240* **Сообщения субагентов, которых порождает разветвлённый скилл, и разветвлённых скиллов, запущенных внутри субагента или другого разветвлённого скилла**: версия 2.1.275 или новее

242* **Сообщения разветвлённого скилла, который вы запускаете, передавая `/<skill-name>` в качестве промпта**: версия 2.1.287 или новее241* **Сообщения разветвлённого скилла, который вы запускаете, передавая `/<skill-name>` в качестве промпта**: версия 2.1.287 или новее


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

286| - | - | - |285| - | - | - |

287| `mcp_servers` | массив | MCP-серверы в сессии, каждый с `name` и `status` |286| `mcp_servers` | массив | MCP-серверы в сессии, каждый с `name` и `status` |

288| `mcp_server_errors` | массив | записи `--mcp-config`, пропущенные при проверке конфигурации, каждая с `name`, `type` и `message`. `type` — это категория пропуска, такая как `unknown_type`, `url_missing_type`, `invalid_config` или `reserved_name`; рассматривайте значения, которые вы не распознаёте, как общий пропуск. Затронутые серверы отсутствуют в `mcp_servers`. Ключ опускается, когда ошибок нет, поэтому проверка в CI может завершаться сбоем при непустом массиве. Требует Claude Code версии 2.1.219 или новее |287| `mcp_server_errors` | массив | записи `--mcp-config`, пропущенные при проверке конфигурации, каждая с `name`, `type` и `message`. `type` — это категория пропуска, такая как `unknown_type`, `url_missing_type`, `invalid_config` или `reserved_name`; рассматривайте значения, которые вы не распознаёте, как общий пропуск. Затронутые серверы отсутствуют в `mcp_servers`. Ключ опускается, когда ошибок нет, поэтому проверка в CI может завершаться сбоем при непустом массиве |

289 288 

290Когда вы запускаете команду вручную в терминале, Claude Code также выводит в stderr предупреждение при запуске, например `Warning: 1 MCP server skipped due to invalid config:`, за которым следует причина для каждой пропущенной записи. Когда вы перенаправляете stderr или когда его перехватывает программа, такая как CI runner или хост SDK, Claude Code не выводит предупреждение и сообщает о пропущенных записях только в поле `mcp_server_errors`. Предупреждение требует Claude Code версии 2.1.219 или новее.289Когда вы запускаете команду вручную в терминале, Claude Code также выводит в stderr предупреждение при запуске, например `Warning: 1 MCP server skipped due to invalid config:`, за которым следует причина для каждой пропущенной записи.

290 

291Когда вы перенаправляете stderr или когда его перехватывает программа, такая как CI runner или хост SDK, Claude Code не выводит предупреждение. Он сообщает о пропущенных записях только в поле `mcp_server_errors`.

291 292 

292#### Отслеживание установки плагинов293#### Отслеживание установки плагинов

293 294 

hooks.md +5 −9

Details

679 679 

680Frontmatter hooks в project skill следуют тому же [правилу доверия рабочей области, что и hooks в файлах настроек](#workspace-trust). Claude Code регистрирует их, когда вы или Claude вызываете skill, включая в запуск `-p` в папке, которую вы не доверяли.680Frontmatter hooks в project skill следуют тому же [правилу доверия рабочей области, что и hooks в файлах настроек](#workspace-trust). Claude Code регистрирует их, когда вы или Claude вызываете skill, включая в запуск `-p` в папке, которую вы не доверяли.

681 681 

682Frontmatter hooks в project subagent запускаются только после того, как вы примете [диалог доверия рабочей области](https://code.claude.com/docs/ru/permissions.md#project-allow-rules-and-workspace-trust) для папки, из которой пришёл файл агента. Сеанс `-p` не считается принятием. [Что запускается перед тем, как вы доверяете папке](https://code.claude.com/docs/ru/permissions.md#what-runs-before-you-trust-a-folder) сравнивает это с правилом файла настроек, и страница subagents перечисляет [какие области исключены](https://code.claude.com/docs/ru/sub-agents.md#hooks-in-subagent-frontmatter). До v2.1.218, эти hooks могли запускаться из папок, которым вы не доверяли.682Хуки из frontmatter субагента проекта запускаются только после того, как вы примете [диалоговое окно доверия к рабочему пространству](https://code.claude.com/docs/ru/permissions.md#project-allow-rules-and-workspace-trust) для папки, из которой взят файл агента. Сессия с `-p` не считается принятием. В разделе [Что запускается до того, как вы доверитесь папке](https://code.claude.com/docs/ru/permissions.md#what-runs-before-you-trust-a-folder) это сравнивается с правилом для файлов настроек, а на странице о субагентах перечислено, [какие области действия являются исключениями](https://code.claude.com/docs/ru/sub-agents.md#hooks-in-subagent-frontmatter).

683 683 

684#### Ограничения хуков скиллов684#### Ограничения хуков скиллов

685 685 


3196* **Хуки команд** (`type: "command"`): выведите путь последней непустой строкой stdout. Claude Code удаляет escape-коды ANSI перед чтением этой строки, поэтому баннеры запуска оболочки, выведенные до вашего `echo`, игнорируются. Перенаправляйте любой другой вывод хука в stderr.3196* **Хуки команд** (`type: "command"`): выведите путь последней непустой строкой stdout. Claude Code удаляет escape-коды ANSI перед чтением этой строки, поэтому баннеры запуска оболочки, выведенные до вашего `echo`, игнорируются. Перенаправляйте любой другой вывод хука в stderr.

3197* **HTTP-хуки** (`type: "http"`): верните `{ "hookSpecificOutput": { "hookEventName": "WorktreeCreate", "worktreePath": "/absolute/path" } }` в теле ответа.3197* **HTTP-хуки** (`type: "http"`): верните `{ "hookSpecificOutput": { "hookEventName": "WorktreeCreate", "worktreePath": "/absolute/path" } }` в теле ответа.

3198 3198 

3199Если хук завершается неудачей или не выдаёт путь, создание worktree завершается ошибкой.3199Если хук завершается неудачей или не выдаёт путь, создание worktree завершается с ошибкой. Claude Code разрешает относительный путь относительно каталога, в котором выполнялся хук, сворачивая в нём любые сегменты `.` или `..`. Если полученный путь не является каталогом, в который Claude Code может перейти, сессия выводит ошибку с указанием пути и завершается с кодом 1.

3200 3200 

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

3202 

3203Claude Code отклоняет абсолютный путь, содержащий сегменты `.` или `..`, а также любой путь, проходящий через символическую ссылку ниже корня репозитория, поскольку символическая ссылка, закоммиченная в репозиторий, может перенаправить worktree за его пределы. В ошибке указывается отклонённый компонент. Возвращайте нормализованный путь, который не проходит через символическую ссылку внутри репозитория. До v2.1.216 создание worktree следовало пути хука без этой проверки.

3204 3202 

3205### WorktreeRemove3203### WorktreeRemove

3206 3204 


3228* **Хук завершается с кодом 0**: worktree считается удалённым. Claude Code больше ничего не считывает из хука, поэтому убедитесь, что хук удалил каталог.3226* **Хук завершается с кодом 0**: worktree считается удалённым. Claude Code больше ничего не считывает из хука, поэтому убедитесь, что хук удалил каталог.

3229* **Хук завершается с ненулевым кодом**: удаление завершается неудачей, если каталог по пути `worktree_path` после этого всё ещё существует, и worktree остаётся на диске без резервного варианта через git. Хук, удаливший каталог перед завершением с ненулевым кодом, считается выполнившим удаление. О том, как сообщается о неудаче, см. [Входные данные WorktreeRemove](#worktreeremove-input).3227* **Хук завершается с ненулевым кодом**: удаление завершается неудачей, если каталог по пути `worktree_path` после этого всё ещё существует, и worktree остаётся на диске без резервного варианта через git. Хук, удаливший каталог перед завершением с ненулевым кодом, считается выполнившим удаление. О том, как сообщается о неудаче, см. [Входные данные WorktreeRemove](#worktreeremove-input).

3230 3228 

3231Claude Code никогда не удаляет ветку, принадлежащую созданному хуком worktree, потому что знает только путь, возвращённый хуком WorktreeCreate. Если хук WorktreeCreate создаёт ветку, удаляйте её в хуке WorktreeRemove.3229Claude Code никогда не удаляет ветку, принадлежащую worktree, созданному хуком, поскольку знает только путь, возвращённый вашим хуком WorktreeCreate. Если ваш хук WorktreeCreate создаёт ветку, удаляйте её в хуке WorktreeRemove. Claude Code отбрасывает [поля вывода JSON](#json-output) хука WorktreeRemove, такие как `systemMessage` и `continue`.

3232 

3233Claude Code отбрасывает [поля вывода JSON](#json-output) хука WorktreeRemove, такие как `systemMessage` и `continue`.

3234 3230 

3235При удалении фоновой сессии Claude Code проверяет сохранённый путь worktree перед запуском хука и отклоняет путь, который является символической ссылкой или проходит через неё ниже корня репозитория. На этом пути хук запускается для worktree, всё ещё содержащего файлы, только если вы подтверждаете удаление в [представлении агентов](https://code.claude.com/docs/ru/agent-view.md#what-deleting-a-session-removes); для такого worktree [`claude rm`](https://code.claude.com/docs/ru/agent-view#manage-sessions-from-the-shell) вместо этого сохраняет сессию и worktree. До v2.1.216 хук запускался для сохранённого пути без этих проверок.3231При удалении фоновой сессии Claude Code проверяет сохранённый путь к worktree перед запуском хука и отклоняет путь, который является символической ссылкой или проходит через неё ниже корня репозитория. На этом пути хук запускается для worktree, в котором ещё есть файлы, только если вы подтверждаете удаление в [представлении агентов](https://code.claude.com/docs/ru/agent-view.md#what-deleting-a-session-removes). Для такого worktree [`claude rm`](https://code.claude.com/docs/ru/agent-view#manage-sessions-from-the-shell) вместо этого сохраняет сессию и worktree.

3236 3232 

3237Claude Code передаёт путь, возвращённый WorktreeCreate, как `worktree_path` во входных данных хука. Этот пример считывает этот путь и удаляет каталог:3233Claude Code передаёт путь, возвращённый WorktreeCreate, как `worktree_path` во входных данных хука. Этот пример считывает этот путь и удаляет каталог:

3238 3234 

Details

174 174 

175## Эффективная работа с Claude Code175## Эффективная работа с Claude Code

176 176 

177Эти советы помогут вам получить лучшие результаты от Claude Code. Для получения дополнительной информации о конкретных запросах, проверке и планировании см. [Лучшие практики](https://code.claude.com/docs/ru/best-practices.md).177Эти советы помогут вам получить лучшие результаты от Claude Code. Подробнее о конкретных промптах, проверке и правилах, которые стоит применять принудительно, а не указывать в промптах, см. [Лучшие практики](https://code.claude.com/docs/ru/best-practices.md).

178 178 

179### Попросите помощь у Claude Code179### Попросите помощь у Claude Code

180 180 


196\[Claude исследует, пробует что-то]196\[Claude исследует, пробует что-то]

197 197 

198```text theme={null}198```text theme={null}

199Это не совсем правильно. Проблема в обработке сеанса.199Это не совсем правильно. Проблема в обработке сессии.

200```200```

201 201 

202\[Claude корректирует подход]202\[Claude корректирует подход]

Details

92| `/` в начале | Команда или skill | См. [команды](#commands) и [skills](https://code.claude.com/docs/ru/skills.md) |92| `/` в начале | Команда или skill | См. [команды](#commands) и [skills](https://code.claude.com/docs/ru/skills.md) |

93| `!` в начале | Режим Shell | Запустить команду напрямую, добавить ее вывод в сеанс и получить ответ Claude |93| `!` в начале | Режим Shell | Запустить команду напрямую, добавить ее вывод в сеанс и получить ответ Claude |

94| `@` | Упоминание пути файла | Запустить автодополнение пути файла. В сеансах с [обменом сообщениями между сеансами](https://code.claude.com/docs/ru/cross-session-messaging.md#message-another-session), когда вы вводите хотя бы одну букву после `@`, Claude Code также предлагает ваши другие активные сеансы на этой машине, чтобы вы могли сказать Claude отправить сообщение выбранному. Требует Claude Code v2.1.232 или более поздней версии |94| `@` | Упоминание пути файла | Запустить автодополнение пути файла. В сеансах с [обменом сообщениями между сеансами](https://code.claude.com/docs/ru/cross-session-messaging.md#message-another-session), когда вы вводите хотя бы одну букву после `@`, Claude Code также предлагает ваши другие активные сеансы на этой машине, чтобы вы могли сказать Claude отправить сообщение выбранному. Требует Claude Code v2.1.232 или более поздней версии |

95| `:` | Shortcode эмодзи | Введите полный `:name:` для вставки эмодзи или два или более символов для предложений. См. [Shortcodes эмодзи](#emoji-shortcodes). Требует Claude Code v2.1.217 или более поздней версии |95| `:` | Shortcode эмодзи | Введите полный `:name:` для вставки эмодзи или два или более символов для предложений. См. [Shortcodes эмодзи](#emoji-shortcodes) |

96| `?` на пустом вводе | Переключение панели справки по сочетаниям клавиш | Ввод `?` при наличии текста в вводе вставляет символ |96| `?` на пустом вводе | Переключение панели справки по сочетаниям клавиш | Ввод `?` при наличии текста в вводе вставляет символ |

97 97 

98### Средство просмотра стенограммы98### Средство просмотра стенограммы


197 197 

198> [!NOTE]198> [!NOTE]

199>199>

200> В режиме vim NORMAL, если курсор находится в начале или конце ввода и не может двигаться дальше, `j`/`k` и `↑`/`↓` переходят по истории команд вместо этого. `←` на пустом приглашении открывает [представление агента](https://code.claude.com/docs/ru/agent-view.md) как из режима NORMAL, так и из INSERT; до v2.1.219 `←` на пустом приглашении ничего не делал в режиме NORMAL.200> В режиме vim NORMAL, если курсор находится в начале или конце ввода и не может двигаться дальше, `j`/`k` и `↑`/`↓` переходят по истории команд вместо этого. `←` в пустом промпте открывает [представление агента](https://code.claude.com/docs/ru/agent-view.md) как из режима NORMAL, так и из INSERT.

201 201 

202### Редактирование (режим NORMAL)202### Редактирование (режим NORMAL)

203 203 


396Claude Code выполняет некоторые команды сразу же при их отправке вместо того, чтобы ставить их в очередь, в том числе `/model`, `/effort` и `/fast`. Каждая из трех команд изменяет настройку: модель, уровень усилий или быстрый режим. То, применяет ли Claude Code новую настройку к ходу, над которым Claude уже работает, или только с вашего следующего хода, отличается в зависимости от команды:396Claude Code выполняет некоторые команды сразу же при их отправке вместо того, чтобы ставить их в очередь, в том числе `/model`, `/effort` и `/fast`. Каждая из трех команд изменяет настройку: модель, уровень усилий или быстрый режим. То, применяет ли Claude Code новую настройку к ходу, над которым Claude уже работает, или только с вашего следующего хода, отличается в зависимости от команды:

397 397 

398* [`/model`](https://code.claude.com/docs/ru/model-config#setting-your-model): после подтверждения [предупреждения о кэше](https://code.claude.com/docs/ru/prompt-caching.md#switching-models), если Claude Code его показывает, Claude Code применяет ваше изменение к следующему запросу, который он делает в этом ходе398* [`/model`](https://code.claude.com/docs/ru/model-config#setting-your-model): после подтверждения [предупреждения о кэше](https://code.claude.com/docs/ru/prompt-caching.md#switching-models), если Claude Code его показывает, Claude Code применяет ваше изменение к следующему запросу, который он делает в этом ходе

399* [`/effort`](https://code.claude.com/docs/ru/model-config#adjust-effort-level): после подтверждения [предупреждения о кэше](https://code.claude.com/docs/ru/prompt-caching.md#changing-effort-level), если Claude Code его показывает, Claude Code применяет ваше изменение к следующему запросу, который он делает в этом ходе399* `/effort`: следующее отправленное вами сообщение выполняется с новым уровнем. Чтобы [начать применять его в ходе, над которым Claude уже работает](https://code.claude.com/docs/ru/model-config.md#when-a-new-effort-level-starts), поставьте сообщение в очередь, пока Claude выполняет вызовы инструментов

400* [`/fast`](https://code.claude.com/docs/ru/fast-mode#toggle-fast-mode): Claude Code сохраняет настройку быстрого режима, которая была активна при начале хода, поэтому ваше изменение скорости применяется с вашего следующего хода. Если ваша текущая модель не поддерживает быстрый режим, его включение также [переключает вашу модель](https://code.claude.com/docs/ru/prompt-caching.md#turning-on-fast-mode), и Claude Code использует новую модель с ее следующего запроса в этом ходе400* [`/fast`](https://code.claude.com/docs/ru/fast-mode#toggle-fast-mode): Claude Code сохраняет настройку быстрого режима, которая была активна при начале хода, поэтому ваше изменение скорости применяется с вашего следующего хода. Если ваша текущая модель не поддерживает быстрый режим, его включение также [переключает вашу модель](https://code.claude.com/docs/ru/prompt-caching.md#turning-on-fast-mode), и Claude Code использует новую модель с ее следующего запроса в этом ходе

401 401 

402### Перевод сессии с сообщениями в очереди в фоновый режим402### Перевод сессии с сообщениями в очереди в фоновый режим


513 513 

514## Emoji shortcodes514## Emoji shortcodes

515 515 

516Введите `:` с последующим кодом emoji в поле ввода подсказки для вставки emoji. Требуется Claude Code v2.1.217 или более поздняя версия.516Введите `:` с последующим кодом emoji в поле ввода промпта для вставки emoji.

517 517 

518* Введите полный код, например `:heart:`, и Claude Code заменит его на ❤️ сразу же после ввода закрывающего `:`518* Введите полный код, например `:heart:`, и Claude Code заменит его на ❤️ сразу же после ввода закрывающего `:`

519* Введите `:` плюс минимум два символа названия, например `:hea`, чтобы открыть всплывающее окно предложений, затем нажмите `Tab` или `Enter` для вставки выделенного emoji519* Введите `:` плюс минимум два символа названия, например `:hea`, чтобы открыть всплывающее окно предложений, затем нажмите `Tab` или `Enter` для вставки выделенного emoji

Details

31 31 

32> [!TIP]32> [!TIP]

33>33>

34> Для методов работы, которые держат контекст маленьким в любом репозитории, таких как [запуск исследования в подагенте](https://code.claude.com/docs/ru/best-practices.md#use-subagents-for-investigation), чтобы чтения файлов оставались вне основного разговора, см. [Best practices for Claude Code](https://code.claude.com/docs/ru/best-practices.md). Чтобы развернуть базовую конфигурацию для каждого разработчика в вашей организации, см. [Set up Claude Code for your organization](https://code.claude.com/docs/ru/admin-setup.md).34> Методы рабочего процесса, которые позволяют держать контекст небольшим в любом репозитории, описаны в [Best practices for Claude Code](https://code.claude.com/docs/ru/best-practices.md). Один из примеров — [запуск исследования в субагенте](https://code.claude.com/docs/ru/best-practices.md#know-what-subagents-cost), чтобы чтения файлов оставались вне основного диалога. Чтобы развернуть базовую конфигурацию для каждого разработчика в вашей организации, см. [Set up Claude Code for your organization](https://code.claude.com/docs/ru/admin-setup.md).

35 35 

36### Пример монорепозитория36### Пример монорепозитория

37 37 


158Deny правила могут охватывать всех, работающих в репозитории, только вас или каждый сеанс на машине, в зависимости от того, в какой файл параметров вы их поместите:158Deny правила могут охватывать всех, работающих в репозитории, только вас или каждый сеанс на машине, в зависимости от того, в какой файл параметров вы их поместите:

159 159 

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

161* **Только вы**: используйте `.claude/settings.local.json` в корне репозитория, который загружается в каждом сеансе CLI внутри репозитория независимо от начального каталога, кроме случаев, когда Claude Code [не использует корень репозитория](https://code.claude.com/docs/ru/settings.md#where-claude-code-looks-for-each-file), например в Windows. Относительные паттерны, такие как `Read(./**/vendor/**/*)` в примере, всё ещё [привязаны к текущему рабочему каталогу сеанса](https://code.claude.com/docs/ru/permissions.md#read-and-edit) а не к корню репозитория, поэтому если вы запускаете сеансы из подкаталогов, напишите правила в этом файле как `//`-абсолютные пути, такие как `Read(//absolute/path/to/repo/**/vendor/**/*)`. До версии 2.1.211 `.claude/settings.local.json` также загружался только из начального каталога.161* **Только вы**: используйте `.claude/settings.local.json` в корне репозитория. Он загружается в каждой сессии CLI внутри репозитория независимо от начального каталога, кроме случаев, когда Claude Code [не использует корень репозитория](https://code.claude.com/docs/ru/settings.md#where-claude-code-looks-for-each-file), например в Windows.

162 

163 Относительные паттерны, такие как `Read(./**/vendor/**/*)` в примере, всё ещё [привязаны к текущему рабочему каталогу сессии](https://code.claude.com/docs/ru/permissions.md#read-and-edit), а не к корню репозитория. Если вы запускаете сессии из подкаталогов, напишите правила в этом файле как `//`-абсолютные пути, такие как `Read(//absolute/path/to/repo/**/vendor/**/*)`.

162* **Все, принудительно в каждом сеансе**: установите правила в [управляемых параметрах](https://code.claude.com/docs/ru/managed-settings.md), которые параметры пользователя и проекта не могут переопределить.164* **Все, принудительно в каждом сеансе**: установите правила в [управляемых параметрах](https://code.claude.com/docs/ru/managed-settings.md), которые параметры пользователя и проекта не могут переопределить.

163 165 

164Пример ниже блокирует артефакты сборки и зависимость поставщика SDK. Его паттерны каталогов заканчиваются на `/**/*` а не на `/**`, чтобы каждое правило охватывало всё внутри каталога, но не сам каталог. Claude может затем всё ещё перечислять эти каталоги или переходить в них, например с помощью `ls dist` или `cd build`.166Пример ниже блокирует артефакты сборки и зависимость поставщика SDK. Его паттерны каталогов заканчиваются на `/**/*` а не на `/**`, чтобы каждое правило охватывало всё внутри каталога, но не сам каталог. Claude может затем всё ещё перечислять эти каталоги или переходить в них, например с помощью `ls dist` или `cd build`.


376Переместите соглашения и справочный контент из всегда загружаемого CLAUDE.md в механизмы, которые загружаются по требованию:378Переместите соглашения и справочный контент из всегда загружаемого CLAUDE.md в механизмы, которые загружаются по требованию:

377 379 

378* [Skills](https://code.claude.com/docs/ru/skills.md): справочный материал, который Claude загружает только когда релевантно задаче380* [Skills](https://code.claude.com/docs/ru/skills.md): справочный материал, который Claude загружает только когда релевантно задаче

379* [Plugins](https://code.claude.com/docs/ru/plugins/overview.md): версионированные пакеты skills, hooks и команд, которыми владеет команда платформы централизованно381* [Плагины](https://code.claude.com/docs/ru/plugins/overview.md): версионированные пакеты скиллов, хуков и команд, которыми централизованно владеет команда платформы и которые она может [установить для всех через управляемые настройки](https://code.claude.com/docs/ru/plugins/org.md#pre-install-and-require-plugins)

380* [MCP servers](https://code.claude.com/docs/ru/mcp.md): если ваша организация уже запускает поиск кода или RAG индекс над репозиторием, выставьте его как инструмент MCP, чтобы Claude запрашивал его вместо чтения файлов напрямую382* [MCP servers](https://code.claude.com/docs/ru/mcp.md): если ваша организация уже запускает поиск кода или RAG индекс над репозиторием, выставьте его как инструмент MCP, чтобы Claude запрашивал его вместо чтения файлов напрямую

381 383 

382См. [server-managed или endpoint-managed параметры](https://code.claude.com/docs/ru/server-managed-settings.md#choose-between-server-managed-and-endpoint-managed-settings) для того, как команды платформы могут применять это централизованно.384См. [server-managed или endpoint-managed параметры](https://code.claude.com/docs/ru/server-managed-settings.md#choose-between-server-managed-and-endpoint-managed-settings) для того, как команды платформы могут применять это централизованно.


465Два метода помогают держать кросс-пакетное изменение согласованным:467Два метода помогают держать кросс-пакетное изменение согласованным:

466 468 

467* **Дайте Claude всё изменение в одном сеансе**: передача общего редактирования и его мест вызова вместе держит решения за каждым редактированием согласованными, а не переопределяя их на пакет469* **Дайте Claude всё изменение в одном сеансе**: передача общего редактирования и его мест вызова вместе держит решения за каждым редактированием согласованными, а не переопределяя их на пакет

468* **Планируйте перед редактированием**: [сначала планируйте](https://code.claude.com/docs/ru/best-practices.md#explore-first-then-plan-then-code) в [режиме плана](https://code.claude.com/docs/ru/permission-modes.md#analyze-before-you-edit-with-plan-mode), и Claude записывает план в файл. Длинный кросс-пакетный сеанс [компактирует свой контекст](https://code.claude.com/docs/ru/context-window.md#what-survives-compaction) по пути. Claude Code повторно внедряет файл плана после каждого компактирования, поэтому план выживает там, где история разговора может не выжить470* **Планируйте перед редактированием**: сначала составьте план в [режиме планирования](https://code.claude.com/docs/ru/permission-modes.md#analyze-before-you-edit-with-plan-mode), и Claude запишет план в файл. В длинной сессии, охватывающей несколько пакетов, по ходу работы выполняется [сжатие контекста](https://code.claude.com/docs/ru/context-window.md#what-survives-compaction). Claude Code повторно внедряет файл плана после каждого сжатия контекста, поэтому план сохраняется там, где история диалога может не сохраниться

469 471 

470## Следующие шаги472## Следующие шаги

471 473 

Details

268 268 

269## Дополнительная конфигурация269## Дополнительная конфигурация

270 270 

271Эти параметры охватывают случаи, выходящие за рамки базового URL и учетных данных. Устанавливайте их только если инструкции администратора, правила исходящего трафика вашей сети или [таблица устранения неполадок](#troubleshoot-gateway-errors) требуют одного.271Эти настройки охватывают случаи, выходящие за рамки базового URL и учётных данных. Задавайте их, только если этого требуют инструкции вашего администратора, правила исходящего трафика вашей сети или [таблица устранения неполадок](#troubleshoot-gateway-errors).

272 272 

273### Отправка дополнительных заголовков273### Отправка дополнительных заголовков

274 274 

275Некоторые шлюзы маршрутизируют или помечают запросы, используя пользовательский заголовок в дополнение к учетным данным, например идентификатор клиента или ключ маршрутизации. Чтобы отправить один, установите [`ANTHROPIC_CUSTOM_HEADERS`](https://code.claude.com/docs/ru/env-vars) с одной парой `Name: Value` на строку. Пример ниже добавляет заголовок маршрутизации с именем `X-Org-Route`:275Некоторые шлюзы маршрутизируют или помечают запросы с помощью пользовательского заголовка в дополнение к учётным данным, например идентификатора арендатора или ключа маршрутизации. Чтобы отправить такой заголовок, задайте [`ANTHROPIC_CUSTOM_HEADERS`](https://code.claude.com/docs/ru/env-vars), указав по одной паре `Name: Value` на строку. В примере ниже добавляется заголовок маршрутизации с именем `X-Org-Route`:

276 276 

277**Bash или Zsh**277**Bash or Zsh**

278 278 

279```bash theme={null}279```bash theme={null}

280export ANTHROPIC_CUSTOM_HEADERS="X-Org-Route: prod"280export ANTHROPIC_CUSTOM_HEADERS="X-Org-Route: prod"


286$env:ANTHROPIC_CUSTOM_HEADERS = "X-Org-Route: prod"286$env:ANTHROPIC_CUSTOM_HEADERS = "X-Org-Route: prod"

287```287```

288 288 

289Вы также можете установить `ANTHROPIC_CUSTOM_HEADERS` в блоке `env` файла параметров. Используйте `\n` между парами там, так как строки JSON не могут охватывать несколько строк:289Вы также можете задать `ANTHROPIC_CUSTOM_HEADERS` в блоке `env` файла настроек. Используйте там `\n` между парами, поскольку строки JSON не могут занимать несколько строк:

290 290 

291```json theme={null}291```json theme={null}

292{292{


296}296}

297```297```

298 298 

299Заголовки маршрутизации и клиента, подобные этим, считаются [заголовками, требующими одобрения](https://code.claude.com/docs/ru/server-managed-settings.md#environment-variables-and-the-approval-dialog). Когда заголовки поступают из файла параметров проекта, Claude Code применяет их в соответствии с [правилами применения значений `env`](https://code.claude.com/docs/ru/settings-reference#when-claude-code-applies-env-values).299Подобные имена заголовков маршрутизации и арендатора относятся к [заголовкам, требующим подтверждения](https://code.claude.com/docs/ru/server-managed-settings.md#environment-variables-and-the-approval-dialog). Если заголовки берутся из файла настроек проекта, Claude Code применяет их согласно [правилам применения значений `env`](https://code.claude.com/docs/ru/settings-reference#when-claude-code-applies-env-values).

300 300 

301### Добавление моделей шлюза в средство выбора модели301### Добавление моделей шлюза в меню выбора модели

302 302 

303При включенном обнаружении модели Claude Code запрашивает шлюз для его списка моделей при запуске и добавляет эти имена в средство выбора `/model` наряду со встроенными записями. Если вы или администратор установили `replaceBuiltInOptions` в [линейке `modelPicker`](https://code.claude.com/docs/ru/settings-reference#modelpicker), Claude Code также скрывает обнаруженные имена. Он сохраняет строку для модели, которую сеанс уже использует.303При включённом обнаружении моделей Claude Code при запуске запрашивает у шлюза список его моделей и добавляет эти имена в меню выбора `/model` наряду со встроенными вариантами. Если вы или ваш администратор задали `replaceBuiltInOptions` в наборе [`modelPicker`](https://code.claude.com/docs/ru/settings-reference#modelpicker), Claude Code скрывает и обнаруженные имена. При этом сохраняется строка для модели, которая уже используется в сессии.

304 304 

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

306 306 

307Чтобы включить его, установите `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1` в вашей оболочке или в блоке `env` `~/.claude/settings.json`.307Чтобы включить его, задайте `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1` в своей оболочке или в блоке `env` файла `~/.claude/settings.json`.

308 308 

309Обнаруженные модели появляются как дополнительные записи `/model`. Каждая запись показывает описание, которое предоставляет ваш шлюз для модели, или `From gateway`, когда оно не предоставляется.309Обнаруженные модели отображаются как дополнительные пункты `/model`. Для каждого пункта показывается описание, которое ваш шлюз предоставляет для модели, или `From gateway`, если шлюз его не предоставляет.

310 310 

311Чтобы подтвердить, что обнаружение запустилось, запустите `claude --debug` и ищите строки `[gatewayDiscovery]` в журнале отладки в `~/.claude/debug/<session-id>.txt`. При первом успешном обнаружении Claude Code регистрирует, сколько моделей было кэшировано, и регистрирует снова только при изменении списка шлюза. `404`, timeout или перенаправление также отображаются там. Для информации о том, когда запускается обнаружение, что оно фильтрует и формат ответа, который обслуживают шлюзы, см. [справочник обнаружения модели](https://code.claude.com/docs/ru/llm-gateway-protocol.md#model-discovery).311Чтобы убедиться, что обнаружение выполнилось, запустите `claude --debug` и найдите строки `[gatewayDiscovery]` в отладочном логе `~/.claude/debug/<session-id>.txt`. При первом успешном обнаружении Claude Code записывает в лог, сколько моделей он кэшировал, и повторно делает запись только при изменении списка шлюза. Там же отображаются `404`, таймаут или перенаправление. О том, когда выполняется обнаружение, что оно отфильтровывает и в каком формате шлюзы должны отдавать ответ, см. [справочник по обнаружению моделей](https://code.claude.com/docs/ru/llm-gateway-protocol.md#model-discovery).

312 312 

313### Ротация учетных данных с apiKeyHelper313### Ротация учётных данных с помощью apiKeyHelper

314 314 

315`apiKeyHelper` — это команда, которую Claude Code запускает для получения ваших учетных данных шлюза, вместо чтения их из статической переменной окружения.315`apiKeyHelper` — это команда, которую Claude Code запускает для получения учётных данных шлюза вместо их чтения из статической переменной окружения.

316 316 

317Используйте помощника, когда учетные данные истекают по расписанию, поступают из хранилища или команды SSO, или администратор сказал вам настроить один. Если ваши учетные данные — это фиксированная строка, которую вы устанавливаете один раз, [переменная учетных данных](#set-the-credential-variable) — это все, что вам нужно, и вы можете пропустить этот раздел.317Используйте вспомогательную команду, если срок действия учётных данных истекает по расписанию, они поступают из хранилища секретов или команды SSO либо если администратор велел вам её настроить. Если ваши учётные данные — это фиксированная строка, которую вы задаёте один раз, вам достаточно [переменной учётных данных](#set-the-credential-variable), и этот раздел можно пропустить.

318 318 

319Помощник — это любая команда оболочки, которая выводит текущие учетные данные на stdout. Claude Code запускает ее через вашу системную оболочку, поэтому на Windows это может быть исполняемый файл или вызов PowerShell. Сделайте так, чтобы команда не выводила ничего, кроме учетных данных. На Claude Code v2.1.227 или позже баннер или строка журнала, выведенные вместе с ключом, приводят к [отказу помощника](https://code.claude.com/docs/ru/errors.md#your-apikeyhelper-script-is-failing). Напишите скрипт, сделайте его исполняемым и ссылайтесь на него из `apiKeyHelper` в вашем [файле параметров](https://code.claude.com/docs/ru/settings.md):319Вспомогательная команда — это любая shell-команда, которая выводит текущие учётные данные в stdout. Claude Code запускает её через системную оболочку, поэтому в Windows это может быть исполняемый файл или вызов PowerShell. Команда должна выводить только учётные данные и ничего больше. В Claude Code v2.1.227 и более поздних версиях баннер или строка лога, выведенные вместе с ключом, приводят к [сбою вспомогательной команды](https://code.claude.com/docs/ru/errors.md#your-apikeyhelper-script-is-failing). Напишите скрипт, сделайте его исполняемым и укажите его в `apiKeyHelper` в вашем [файле настроек](https://code.claude.com/docs/ru/settings.md):

320 320 

321**Bash или Zsh**321**Bash or Zsh**

322 322 

323Например, скрипт, который читает из хранилища:323Например, скрипт, читающий из хранилища секретов:

324 324 

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

326#!/bin/bash326#!/bin/bash

327vault kv get -field=api_key secret/llm-gateway/claude-code327vault kv get -field=api_key secret/llm-gateway/claude-code

328```328```

329 329 

330Ссылайтесь на его путь в `~/.claude/settings.json`:330Укажите путь к нему в `~/.claude/settings.json`:

331 331 

332```json theme={null}332```json theme={null}

333{333{


337 337 

338**PowerShell**338**PowerShell**

339 339 

340Например, скрипт, который читает из хранилища:340Например, скрипт, читающий из хранилища секретов:

341 341 

342```powershell theme={null}342```powershell theme={null}

343vault kv get -field=api_key secret/llm-gateway/claude-code343vault kv get -field=api_key secret/llm-gateway/claude-code

344```344```

345 345 

346Ссылайтесь на вызов PowerShell в `%USERPROFILE%\.claude\settings.json`, экранируя обратные косые черты в строке JSON:346Укажите вызов PowerShell в `%USERPROFILE%\.claude\settings.json`, экранировав обратные косые черты в строке JSON:

347 347 

348```json theme={null}348```json theme={null}

349{349{


351}351}

352```352```

353 353 

354Claude Code кэширует вывод помощника в течение пяти минут по умолчанию и переустанавливает помощника после истечения времени жизни кэша. Чтобы изменить время жизни, установите `CLAUDE_CODE_API_KEY_HELPER_TTL_MS` в миллисекундах, например `CLAUDE_CODE_API_KEY_HELPER_TTL_MS=900000` на 15 минут.354По умолчанию Claude Code кэширует вывод вспомогательной команды на пять минут и снова запускает её по истечении срока жизни кэша. Чтобы изменить срок жизни, задайте `CLAUDE_CODE_API_KEY_HELPER_TTL_MS` в миллисекундах, например `CLAUDE_CODE_API_KEY_HELPER_TTL_MS=900000` для 15 минут.

355 355 

356См. [`apiKeyHelper`](https://code.claude.com/docs/ru/settings-reference#apikeyhelper) для других случаев, в которых Claude Code переустанавливает помощника.356Другие случаи, в которых Claude Code повторно запускает вспомогательную команду, описаны в разделе [`apiKeyHelper`](https://code.claude.com/docs/ru/settings-reference#apikeyhelper).

357 357 

358Значение помощника отправляется в оба заголовка `Authorization` и `x-api-key`, поэтому оно работает, какой бы заголовок ни читал ваш шлюз.358Значение вспомогательной команды отправляется в заголовках `Authorization` и `x-api-key`, поэтому оно работает независимо от того, какой заголовок читает ваш шлюз.

359 359 

360### Отключение трафика вне пути шлюза360### Отключение трафика вне шлюза

361 361 

362Шлюз переносит запросы модели, но Claude Code также отправляет несущественный фоновый трафик вне пути шлюза в Anthropic и в сторонние сервисы, такие как GitHub: проверки версий, телеметрия, примечания к выпуску и аналогичные запросы. В сети, которая разрешает исходящий трафик только на шлюз, эти запросы не выполняются и могут отображаться как заблокированные соединения в вашем мониторинге исходящего трафика.362Шлюз передаёт запросы к модели, но Claude Code также отправляет необязательный фоновый трафик в обход шлюза — в Anthropic и сторонние сервисы, такие как GitHub: проверки версий, телеметрию, заметки о выпусках и аналогичные запросы. В сети, где исходящий трафик разрешён только к шлюзу, эти запросы завершаются неудачей и могут отображаться как заблокированные подключения в мониторинге исходящего трафика.

363 363 

364Claude Code прикрепляет учетные данные к запросу телеметрии или метрик использования только когда запрос идет на хост, к которому принадлежат учетные данные. Пока `ANTHROPIC_BASE_URL` указывает на шлюз, Claude Code отправляет свои события телеметрии в Anthropic без учетных данных вашего шлюза. С активной [переменной учетных данных](#set-the-credential-variable) или `apiKeyHelper`, Claude Code не сообщает метрики использования на [панель аналитики](https://code.claude.com/docs/ru/analytics.md#access-analytics-for-api-customers) Console. До v2.1.246 Claude Code мог прикреплять учетные данные шлюза к запросам телеметрии и метрик использования, предназначенным для хостов Anthropic; запросы модели всегда шли на шлюз с учетными данными, которые ожидает шлюз.364Чтобы отключить этот трафик, задайте `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1` вместе с переменными шлюза — в тех же экспортах оболочки или в блоке `env` файла настроек:

365 365 

366Чтобы отключить этот трафик, установите `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1` наряду с переменными шлюза, в том же блоке экспорта оболочки или блоке `env` файла параметров:366**Bash or Zsh**

367 

368**Bash или Zsh**

369 367 

370```bash theme={null}368```bash theme={null}

371export CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1369export CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1


377$env:CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC = "1"375$env:CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC = "1"

378```376```

379 377 

380Установка переменной имеет эти эффекты и ограничения:378У этой переменной следующие эффекты и ограничения:

381 379 

382* Она отключает автоматические обновления, поэтому планируйте другой путь обновления, такой как ваш менеджер пакетов или управляемое распределение.380* Она отключает автообновления, поэтому предусмотрите другой способ обновления, например через менеджер пакетов или управляемое распространение.

383* Она подавляет проверку доступности [быстрого режима](https://code.claude.com/docs/ru/fast-mode.md). Если предыдущая проверка уже не включила быстрый режим на машине, `/fast` сообщает, что быстрый режим недоступен.381* Она подавляет проверку доступности [быстрого режима](https://code.claude.com/docs/ru/fast-mode.md). Если предыдущая проверка ещё не включила быстрый режим на этом компьютере, `/fast` сообщает, что быстрый режим недоступен.

384* Она не влияет на [обнаружение модели шлюза](#add-gateway-models-to-the-model-picker), которое запрашивает только ваш шлюз. До v2.1.257 переменная также останавливала обновление обнаружения, поэтому средство выбора сохраняло ранее кэшированный список.382* Она не влияет на [обнаружение моделей шлюза](#add-gateway-models-to-the-model-picker), которое обращается только к вашему шлюзу. До v2.1.257 эта переменная также останавливала обновление результатов обнаружения, поэтому в меню выбора оставался ранее кэшированный список.

385* [Проверка безопасности домена](https://code.claude.com/docs/ru/data-usage.md#webfetch-domain-safety-check) инструмента WebFetch не затрагивается и по-прежнему вызывает `api.anthropic.com`. Отключите ее отдельно с помощью `skipWebFetchPreflight: true` в [параметрах](https://code.claude.com/docs/ru/settings.md), если ваша сеть блокирует этот хост.383* [Проверка безопасности доменов](https://code.claude.com/docs/ru/data-usage.md#webfetch-domain-safety-check) инструмента WebFetch не затрагивается и по-прежнему обращается к `api.anthropic.com`. Отключите её отдельно с помощью `skipWebFetchPreflight: true` в [настройках](https://code.claude.com/docs/ru/settings.md), если ваша сеть блокирует этот хост.

386* Для каждого потока телеметрии и переменной, которая его контролирует, см. [сервисы телеметрии](https://code.claude.com/docs/ru/data-usage.md#telemetry-services).384* Каждый поток телеметрии и управляющая им переменная описаны в разделе [сервисы телеметрии](https://code.claude.com/docs/ru/data-usage.md#telemetry-services).

387 385 

388### Маршрутизация к облачному поставщику через шлюз386### Маршрутизация к облачному провайдеру через шлюз

389 387 

390Эти конфигурации направляют Claude Code на шлюз через переменную базового URL, специфичную для поставщика, вместо `ANTHROPIC_BASE_URL`. Шлюзы Amazon Bedrock и Google Cloud's Agent Platform принимают собственные форматы запросов этих поставщиков; шлюзы Microsoft Foundry и Claude Platform на AWS принимают формат Anthropic Messages. На маршрутах Amazon Bedrock и Google Cloud's Agent Platform Claude Code также ограничивает бета-заголовки и поля запроса, которые он отправляет, набором, который принимает поставщик. Для информации о том, что получает ваш шлюз на каждом маршруте, см. [руководство совместимости шлюза](https://code.claude.com/docs/ru/llm-gateway-protocol.md).388Эти конфигурации направляют Claude Code на шлюз через специфичную для провайдера переменную базового URL вместо `ANTHROPIC_BASE_URL`. Шлюзы Amazon Bedrock и Google Cloud's Agent Platform принимают нативные форматы запросов этих провайдеров; шлюзы Microsoft Foundry и Claude Platform on AWS принимают формат Anthropic Messages. На маршрутах Amazon Bedrock и Google Cloud's Agent Platform Claude Code также ограничивает отправляемые бета-заголовки и поля запроса набором, который принимает данный провайдер. О том, что получает ваш шлюз на каждом маршруте, см. [руководство по совместимости шлюзов](https://code.claude.com/docs/ru/llm-gateway-protocol.md).

391 389 

392Используйте один только если команда шлюза специально назвала Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry или Claude Platform на AWS. Если [запрос проверки](#verify-the-connection) выше вернул JSON, вы можете пропустить этот раздел.390Используйте их, только если команда, отвечающая за шлюз, явно назвала Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry или Claude Platform on AWS. Если [проверочный запрос](#verify-the-connection) выше вернул JSON, этот раздел можно пропустить.

393 391 

394Установите блок для поставщика, которого назвала команда шлюза. Переменные skip-auth в блоках Amazon Bedrock, Google Cloud's Agent Platform и Claude Platform на AWS говорят Claude Code не подписывать запросы с учетными данными поставщика облака, так как шлюз их держит. Если шлюзу также нужен свой собственный токен, где вы его размещаете, зависит от поставщика:392Задайте блок для провайдера, названного командой, отвечающей за шлюз. Переменные пропуска аутентификации в блоках Amazon Bedrock, Google Cloud's Agent Platform и Claude Platform on AWS указывают Claude Code не подписывать запросы учётными данными облачного провайдера, поскольку они хранятся на шлюзе. Если шлюзу также нужен собственный токен, место, куда его указать, зависит от провайдера:

395 393 

396* **Amazon Bedrock, Google Cloud's Agent Platform или Claude Platform на AWS**: добавьте `ANTHROPIC_AUTH_TOKEN` после блока. Claude Code отправляет его на шлюз как заголовок `Authorization: Bearer`. Для учетных данных в другой схеме или заголовке используйте [`ANTHROPIC_CUSTOM_HEADERS`](#send-additional-headers) вместо этого. Сохраняйте переменную skip-auth установленной в любом случае, так как без нее Claude Code удаляет любой заголовок `Authorization`, который добавили бы `ANTHROPIC_AUTH_TOKEN`, [`apiKeyHelper`](#rotate-credentials-with-apikeyhelper) или `ANTHROPIC_CUSTOM_HEADERS`.394* **Amazon Bedrock, Google Cloud's Agent Platform или Claude Platform on AWS**: добавьте `ANTHROPIC_AUTH_TOKEN` после блока. Claude Code отправляет его на шлюз в заголовке `Authorization: Bearer`. Для учётных данных с другой схемой или в другом заголовке используйте вместо этого [`ANTHROPIC_CUSTOM_HEADERS`](#send-additional-headers). В любом случае оставьте переменную пропуска аутентификации заданной, поскольку без неё Claude Code удаляет любой заголовок `Authorization`, который добавили бы `ANTHROPIC_AUTH_TOKEN`, [`apiKeyHelper`](#rotate-credentials-with-apikeyhelper) или `ANTHROPIC_CUSTOM_HEADERS`.

397* **Microsoft Foundry**: используйте `ANTHROPIC_FOUNDRY_API_KEY`, как показано в [его блоке](#microsoft-foundry)395* **Microsoft Foundry**: используйте `ANTHROPIC_FOUNDRY_API_KEY`, как показано в [его блоке](#microsoft-foundry)

398 396 

399#### Amazon Bedrock397#### Amazon Bedrock

400 398 

401Оставьте `AWS_BEARER_TOKEN_BEDROCK` неустановленным, когда шлюз выдает свои собственные учетные данные. Если вы установите его, Claude Code отправляет этот [ключ API Amazon Bedrock](https://code.claude.com/docs/ru/amazon-bedrock.md#2-configure-aws-credentials) как заголовок `Authorization` вместо токена вашего шлюза, даже с установленным `CLAUDE_CODE_SKIP_BEDROCK_AUTH`.399Не задавайте `AWS_BEARER_TOKEN_BEDROCK`, если шлюз выдаёт собственные учётные данные. Если вы её зададите, Claude Code отправит этот [API-ключ Amazon Bedrock](https://code.claude.com/docs/ru/amazon-bedrock.md#2-configure-aws-credentials) в заголовке `Authorization` вместо токена вашего шлюза, даже если задана `CLAUDE_CODE_SKIP_BEDROCK_AUTH`.

402 400 

403**Bash или Zsh**401**Bash or Zsh**

404 402 

405```bash theme={null}403```bash theme={null}

406export ANTHROPIC_BEDROCK_BASE_URL=https://llm-gateway.example.com/bedrock404export ANTHROPIC_BEDROCK_BASE_URL=https://llm-gateway.example.com/bedrock


418 416 

419#### Google Cloud's Agent Platform417#### Google Cloud's Agent Platform

420 418 

421Замените ID проекта и регион на свои собственные значения. Claude Code включает оба в путь каждого запроса, который он отправляет на шлюз:419Замените идентификатор проекта и регион своими значениями. Claude Code включает оба значения в путь каждого запроса, который отправляет на шлюз:

422 420 

423**Bash или Zsh**421**Bash or Zsh**

424 422 

425```bash theme={null}423```bash theme={null}

426export ANTHROPIC_VERTEX_BASE_URL=https://llm-gateway.example.com/vertex424export ANTHROPIC_VERTEX_BASE_URL=https://llm-gateway.example.com/vertex


440$env:CLOUD_ML_REGION = "us-east5"438$env:CLOUD_ML_REGION = "us-east5"

441```439```

442 440 

443Блок охватывает маршрутизацию и аутентификацию. Переопределения региона и закрепления модели из [настройки Agent Platform](https://code.claude.com/docs/ru/google-vertex-ai.md#4-configure-claude-code) применяются через шлюз также:441Этот блок охватывает маршрутизацию и аутентификацию. Переопределения регионов и закрепление моделей из [настройки Agent Platform](https://code.claude.com/docs/ru/google-vertex-ai.md#4-configure-claude-code) действуют и через шлюз:

444 442 

445* **Регионы для каждой модели**: если ваш шлюз обслуживает некоторые модели из региона, отличного от `CLOUD_ML_REGION`, установите соответствующую переменную `VERTEX_REGION_CLAUDE_*` для каждой, например `VERTEX_REGION_CLAUDE_4_6_SONNET=europe-west1`. [Справочник переменных окружения](https://code.claude.com/docs/ru/env-vars.md) перечисляет точные имена.443* **Регионы для отдельных моделей**: если ваш шлюз обслуживает некоторые модели из региона, отличного от `CLOUD_ML_REGION`, задайте для каждой соответствующую переменную `VERTEX_REGION_CLAUDE_*`, например `VERTEX_REGION_CLAUDE_4_6_SONNET=europe-west1`. Точные имена приведены в [справочнике по переменным окружения](https://code.claude.com/docs/ru/env-vars.md).

446* **Версии моделей**: закрепите `ANTHROPIC_DEFAULT_OPUS_MODEL`, `ANTHROPIC_DEFAULT_SONNET_MODEL` и `ANTHROPIC_DEFAULT_HAIKU_MODEL`, как в [Закрепление версий моделей](https://code.claude.com/docs/ru/google-vertex-ai.md#5-pin-model-versions). Установка `ANTHROPIC_DEFAULT_HAIKU_MODEL` также перемещает фоновые задачи, такие как заголовки сеансов, на эту модель, и этот раздел объясняет, какая модель их запускает в противном случае.444* **Версии моделей**: закрепите `ANTHROPIC_DEFAULT_OPUS_MODEL`, `ANTHROPIC_DEFAULT_SONNET_MODEL` и `ANTHROPIC_DEFAULT_HAIKU_MODEL`, как описано в разделе [Закрепление версий моделей](https://code.claude.com/docs/ru/google-vertex-ai.md#5-pin-model-versions). Задание `ANTHROPIC_DEFAULT_HAIKU_MODEL` также переводит на эту модель фоновые задачи, например генерацию названий сессий; в том же разделе объясняется, какая модель выполняет их в противном случае.

447* **Возможности модели**: если вы закрепляете ID модели, который ваша версия Claude Code не распознает, функции, такие как уровни усилий или расширенное мышление, могут оставаться отключенными на нем. Объявите, что поддерживает модель, с помощью [`ANTHROPIC_DEFAULT_OPUS_MODEL_SUPPORTED_CAPABILITIES`](https://code.claude.com/docs/ru/model-config#customize-pinned-model-display-and-capabilities) и его аналогов для Sonnet и Haiku.445* **Возможности моделей**: если вы закрепляете идентификатор модели, который ваша версия Claude Code не распознаёт, такие функции, как уровни effort или расширенное мышление, могут остаться для неё отключёнными. Объявите, что поддерживает модель, с помощью [`ANTHROPIC_DEFAULT_OPUS_MODEL_SUPPORTED_CAPABILITIES`](https://code.claude.com/docs/ru/model-config#customize-pinned-model-display-and-capabilities) и её аналогов для Sonnet и Haiku.

448 446 

449#### Microsoft Foundry447#### Microsoft Foundry

450 448 

451Поместите учетные данные шлюза в `ANTHROPIC_FOUNDRY_API_KEY`; они отправляются на шлюз как заголовок `x-api-key`. Шлюз, который ожидает токен-носитель, может принять [`ANTHROPIC_FOUNDRY_AUTH_TOKEN`](https://code.claude.com/docs/ru/env-vars) вместо этого. Claude Code отправляет это значение как заголовок `Authorization: Bearer`, и оно имеет приоритет над `ANTHROPIC_FOUNDRY_API_KEY`, когда оба установлены. Требует Claude Code v2.1.203 или позже.449Укажите учётные данные шлюза в `ANTHROPIC_FOUNDRY_API_KEY`; они отправляются на шлюз в заголовке `x-api-key`. Шлюзу, ожидающему Bearer-токен, можно вместо этого передать [`ANTHROPIC_FOUNDRY_AUTH_TOKEN`](https://code.claude.com/docs/ru/env-vars). Claude Code отправляет это значение в заголовке `Authorization: Bearer`, и оно имеет приоритет над `ANTHROPIC_FOUNDRY_API_KEY`, если заданы обе переменные. Требуется Claude Code v2.1.203 или более поздней версии.

452 450 

453Для шлюза, который внедряет свой собственный заголовок `Authorization`, установите `CLAUDE_CODE_SKIP_FOUNDRY_AUTH=1` и оставьте обе переменные учётных данных неустановленными. Claude Code затем отправляет запросы без учётных данных Azure и сохраняет заголовок `Authorization`, который вы предоставляете, например через `ANTHROPIC_CUSTOM_HEADERS`.451Для шлюза, который подставляет собственный заголовок `Authorization`, задайте `CLAUDE_CODE_SKIP_FOUNDRY_AUTH=1` и оставьте обе переменные учётных данных незаданными. Тогда Claude Code отправляет запросы без учётных данных Azure и сохраняет заголовок `Authorization`, который вы передаёте, например через `ANTHROPIC_CUSTOM_HEADERS`.

454 452 

455**Bash или Zsh**453**Bash or Zsh**

456 454 

457```bash theme={null}455```bash theme={null}

458export ANTHROPIC_FOUNDRY_BASE_URL=https://llm-gateway.example.com/foundry456export ANTHROPIC_FOUNDRY_BASE_URL=https://llm-gateway.example.com/foundry


468$env:CLAUDE_CODE_USE_FOUNDRY = "1"466$env:CLAUDE_CODE_USE_FOUNDRY = "1"

469```467```

470 468 

471#### Claude Platform на AWS469#### Claude Platform on AWS

472 470 

473См. [Claude Platform на AWS](https://code.claude.com/docs/ru/claude-platform-on-aws.md) для ID рабочего пространства.471Об идентификаторе рабочего пространства см. [Claude Platform on AWS](https://code.claude.com/docs/ru/claude-platform-on-aws.md).

474 472 

475**Bash или Zsh**473**Bash or Zsh**

476 474 

477```bash theme={null}475```bash theme={null}

478export ANTHROPIC_AWS_BASE_URL=https://llm-gateway.example.com/anthropic-aws476export ANTHROPIC_AWS_BASE_URL=https://llm-gateway.example.com/anthropic-aws


490$env:CLAUDE_CODE_USE_ANTHROPIC_AWS = "1"488$env:CLAUDE_CODE_USE_ANTHROPIC_AWS = "1"

491```489```

492 490 

493#### Подтверждение маршрута поставщика491#### Проверка маршрута провайдера

494 492 

495Запустите `claude` из оболочки, где вы установили блок, и запустите `/status`. С блоком Amazon Bedrock вкладка **Status** показывает строки, подобные этим:493Запустите `claude` из оболочки, в которой вы задали блок, и выполните `/status`. С блоком Amazon Bedrock на вкладке **Status** отображаются строки такого вида:

496 494 

497```text theme={null}495```text theme={null}

498API provider: Amazon Bedrock496API provider: Amazon Bedrock


500AWS auth skipped498AWS auth skipped

501```499```

502 500 

503Другие блоки производят те же строки под названиями своих поставщиков, например `Vertex base URL` и `GCP auth skipped` для Google Cloud's Agent Platform; блок Microsoft Foundry показывает строку пропуска аутентификации только если вы установили `CLAUDE_CODE_SKIP_FOUNDRY_AUTH`. Если вы также маршрутизируете через корпоративный прокси, строка `Proxy` показывает URL прокси. Если строка базового URL отсутствует, переменная не достигла сеанса.501Остальные блоки выводят такие же строки под названиями своих провайдеров, например `Vertex base URL` и `GCP auth skipped` для Google Cloud's Agent Platform; блок Microsoft Foundry показывает строку о пропуске аутентификации, только если вы задали `CLAUDE_CODE_SKIP_FOUNDRY_AUTH`. Если вы также выполняете маршрутизацию через корпоративный прокси, строка `Proxy` показывает URL прокси. Если строка базового URL отсутствует, переменная не попала в сессию.

504 502 

505## Устранение неполадок с ошибками шлюза503## Устранение неполадок с ошибками шлюза

506 504 

mcp.md +9 −3

Details

84 84 

85Только приложение-хост SDK, например приложение на [Agent SDK](https://code.claude.com/docs/ru/agent-sdk/mcp.md) или [настольное приложение](https://code.claude.com/docs/ru/desktop.md), может зарегистрировать встроенный в процесс сервер `"type": "sdk"`. Claude Code пропускает запись `"type": "sdk"` в `.mcp.json`, `~/.claude.json` или настройках и сообщает `Skipped — MCP server "<name>" declares type "sdk", which only an SDK host application can register`.85Только приложение-хост SDK, например приложение на [Agent SDK](https://code.claude.com/docs/ru/agent-sdk/mcp.md) или [настольное приложение](https://code.claude.com/docs/ru/desktop.md), может зарегистрировать встроенный в процесс сервер `"type": "sdk"`. Claude Code пропускает запись `"type": "sdk"` в `.mcp.json`, `~/.claude.json` или настройках и сообщает `Skipped — MCP server "<name>" declares type "sdk", which only an SDK host application can register`.

86 86 

87В запусках с `--output-format stream-json` Claude Code также сообщает о пропущенной записи `--mcp-config` в поле [`mcp_server_errors`](https://code.claude.com/docs/ru/headless#stream-responses) события `system/init`, поэтому скрипты могут обнаружить, что сервер так и не загрузился. Для этого требуется Claude Code v2.1.219 или новее.87> [!NOTE]

88>

89> При запусках с `--output-format stream-json` Claude Code также сообщает о пропущенной записи `--mcp-config` в [поле `mcp_server_errors`](https://code.claude.com/docs/ru/headless#stream-responses) события `system/init`, чтобы скрипты могли обнаружить, что сервер так и не загрузился.

88 90 

89### Вариант 2: Добавление удалённого SSE-сервера91### Вариант 2: Добавление удалённого SSE-сервера

90 92 


250 252 

251Статусы из этого списка отражают решение конфигурации, а не попытку подключения, поэтому Claude Code выводит их без подключения к серверу:253Статусы из этого списка отражают решение конфигурации, а не попытку подключения, поэтому Claude Code выводит их без подключения к серверу:

252 254 

253* ``⏸ Pending approval (run `claude` to approve)``: сервер из `.mcp.json` с областью действия проекта, который вы ещё не подтвердили. Claude Code показывает его и в `claude mcp list`, и в `claude mcp get <name>`. Запустите `claude` в интерактивном режиме, чтобы просмотреть и подтвердить его.255* ``⏸ Pending approval (run `claude` to approve)``: сервер с областью действия проекта из `.mcp.json`, который вы ещё не подтвердили. Claude Code показывает его и в `claude mcp list`, и в `claude mcp get <name>`. Запустите `claude` в интерактивном режиме, чтобы просмотреть и подтвердить его.

254* `✘ Rejected (see disabledMcpjsonServers in settings)`: сервер из `.mcp.json`, который отклоняет запись [`disabledMcpjsonServers`](https://code.claude.com/docs/ru/settings-reference#disabledmcpjsonservers). Claude Code показывает его только в `claude mcp get <name>`.256* `✘ Rejected (see disabledMcpjsonServers in settings)`: сервер из `.mcp.json`, который отклоняет запись [`disabledMcpjsonServers`](https://code.claude.com/docs/ru/settings-reference#disabledmcpjsonservers). Claude Code показывает его только в `claude mcp get <name>`.

255* `⊘ Disabled for this project (re-enable via /mcp)`: сервер, указанный в списке [`disabledMcpServers`](#disable-a-server-without-removing-it) проекта. Claude Code показывает его и в `claude mcp list`, и в `claude mcp get <name>`. Включите сервер обратно в панели `/mcp`.257* `⊘ Disabled for this project (re-enable via /mcp)`: сервер, указанный в списке [`disabledMcpServers`](#disable-a-server-without-removing-it) проекта. Claude Code показывает его и в `claude mcp list`, и в `claude mcp get <name>`. Включите сервер обратно в панели `/mcp`.

256 258 


276 278 

277Когда вы выбираете **Disable** или **Clear authentication** в меню сервера в `/mcp`, Claude Code также удаляет запись кэша этого сервера. **Reconnect** тоже удаляет её для подключённого сервера или сервера со сбоем; для сервера со статусом `cached` **Reconnect** подключает сервер сразу и сохраняет запись. В следующий раз, когда Claude Code подключится к серверу после удаления записи, он получит список инструментов с сервера, а не из кэша.279Когда вы выбираете **Disable** или **Clear authentication** в меню сервера в `/mcp`, Claude Code также удаляет запись кэша этого сервера. **Reconnect** тоже удаляет её для подключённого сервера или сервера со сбоем; для сервера со статусом `cached` **Reconnect** подключает сервер сразу и сохраняет запись. В следующий раз, когда Claude Code подключится к серверу после удаления записи, он получит список инструментов с сервера, а не из кэша.

278 280 

279Когда статус сервера — `✘ Failed to connect`, `claude mcp list` добавляет подробности сбоя к этой строке статуса, а `claude mcp get <name>` показывает их в строке `Issue:`: HTTP-статус или код ошибки, плюс любой текст ошибки, который вернул сервер. Подробное представление сервера в `/mcp` включает тот же текст, сообщённый сервером, в строке `Issue:`. Claude Code скрывает в этих подробностях текст, похожий на учётные данные, и никогда не включает развёрнутый URL сервера, который может содержать секреты. К статусу `✘ Connection error` Claude Code подробности не добавляет, потому что текст исключения, который он вывел бы там, может содержать этот URL. До версии v2.1.219 обе команды показывали только сам статус сбоя, без кода статуса и текста ошибки сервера.281##### Сбои подключения и ненастроенные серверы

282 

283Когда статус сервера — `✘ Failed to connect`, `claude mcp list` добавляет подробности сбоя к этой строке статуса, а `claude mcp get <name>` показывает их в строке `Issue:`. Подробности — это HTTP-статус или код ошибки, а также любой текст ошибки, возвращённый сервером. Подробное представление сервера в `/mcp` включает тот же текст от сервера в строке `Issue:`.

284 

285Claude Code удаляет из этих подробностей текст, похожий на учётные данные, и никогда не включает раскрытый URL сервера, который может содержать секреты. Claude Code не добавляет подробностей к статусу `✘ Connection error`, потому что текст исключения, который он вывел бы там, может содержать этот URL.

280 286 

281Когда вы завершаете аутентификацию из `/mcp`, а подключение по-прежнему не удаётся с HTTP-статусом или кодом ошибки транспорта, Claude Code добавляет этот код и origin URL сервера в сообщение, которое выводит после попытки. Origin — это схема и хост, плюс порт, если он указан в URL, например `https://mcp.example.com`.287Когда вы завершаете аутентификацию из `/mcp`, а подключение по-прежнему не удаётся с HTTP-статусом или кодом ошибки транспорта, Claude Code добавляет этот код и origin URL сервера в сообщение, которое выводит после попытки. Origin — это схема и хост, плюс порт, если он указан в URL, например `https://mcp.example.com`.

282 288 

memory.md +2 −2

Details

237 237 

238Каждая группа скобок умножает количество развёрнутых шаблонов: `src/*.{ts,tsx}` развёртывается в два шаблона, а `{a,b}/{c,d}/*.{ts,tsx}` в восемь. Чтобы сохранить расширение ограниченным, весь список `paths` правила имеет один бюджет из 1000 развёрнутых шаблонов и 4 МиБ, и шаблоны без скобок не учитываются в нём.238Каждая группа скобок умножает количество развёрнутых шаблонов: `src/*.{ts,tsx}` развёртывается в два шаблона, а `{a,b}/{c,d}/*.{ts,tsx}` в восемь. Чтобы сохранить расширение ограниченным, весь список `paths` правила имеет один бюджет из 1000 развёрнутых шаблонов и 4 МиБ, и шаблоны без скобок не учитываются в нём.

239 239 

240Claude Code использует любой шаблон, который превысит бюджет неразвёрнутым, и его буквальные скобки не совпадают ни с какими файлами. До v2.1.217 значение `paths` со многими группами скобок зависало или вызывало сбой CLI при запуске.240Claude Code использует любой шаблон, который превысит бюджет неразвёрнутым, и его буквальные скобки не совпадают ни с какими файлами.

241 241 

242Синтаксис Glob рассматривает `[` как начало выражения скобок, такого как `[abc]`. Шаблон с `[`, который не может быть прочитан как выражение скобок, такой как `photos [2024/**`, является недействительным: он не совпадает ни с какими файлами, и другие шаблоны правила продолжают работать. Чтобы совпадать с буквальным `[` в имени файла, экранируйте его как `photos \[2024/**`.242Синтаксис Glob рассматривает `[` как начало выражения скобок, такого как `[abc]`. Шаблон с `[`, который не может быть прочитан как выражение скобок, такой как `photos [2024/**`, является недействительным: он не совпадает ни с какими файлами, и другие шаблоны правила продолжают работать. Чтобы совпадать с буквальным `[` в имени файла, экранируйте его как `photos \[2024/**`.

243 243 


568 568 

569Команда `/memory` перечисляет ваши файлы CLAUDE.md, CLAUDE.local.md и другие файлы памяти в областях действия пользователя и проекта, включая записи CLAUDE.md пользователя и проекта для файлов, которые еще не существуют. Она также позволяет включать и отключать автоматическую память и предоставляет опцию для открытия папки автоматической памяти. Выберите любой файл для открытия его в вашем редакторе; выбор файла, который еще не существует, сначала создает его. Чтобы проверить, какие файлы `CLAUDE.md` и файлы правил были загружены при запуске, выполните `/context`.569Команда `/memory` перечисляет ваши файлы CLAUDE.md, CLAUDE.local.md и другие файлы памяти в областях действия пользователя и проекта, включая записи CLAUDE.md пользователя и проекта для файлов, которые еще не существуют. Она также позволяет включать и отключать автоматическую память и предоставляет опцию для открытия папки автоматической памяти. Выберите любой файл для открытия его в вашем редакторе; выбор файла, который еще не существует, сначала создает его. Чтобы проверить, какие файлы `CLAUDE.md` и файлы правил были загружены при запуске, выполните `/context`.

570 570 

571Графические редакторы, такие как VS Code, открывают файл в отдельном окне, и вы можете продолжать использовать сеанс, пока он открыт. До версии 2.1.216 `/memory` ждал, пока вы закроете файл, прежде чем ответить. Редакторы терминала, такие как Vim, захватывают терминал, пока вы не выйдете.571Графические редакторы, такие как VS Code, открывают файл в отдельном окне, и вы можете продолжать использовать сессию, пока он открыт. Редакторы терминала, такие как Vim, захватывают терминал, пока вы не выйдете.

572 572 

573Когда вы просите Claude что-то запомнить, например "всегда используйте pnpm, а не npm" или "помните, что тесты API требуют локального экземпляра Redis", Claude сохраняет это в auto memory. Чтобы добавить инструкции в CLAUDE.md, попросите Claude напрямую, например "добавьте это в CLAUDE.md", или отредактируйте файл самостоятельно через `/memory`.573Когда вы просите Claude что-то запомнить, например "всегда используйте pnpm, а не npm" или "помните, что тесты API требуют локального экземпляра Redis", Claude сохраняет это в auto memory. Чтобы добавить инструкции в CLAUDE.md, попросите Claude напрямую, например "добавьте это в CLAUDE.md", или отредактируйте файл самостоятельно через `/memory`.

574 574 

model-config.md +21 −4

Details

542Другой уровень применяется, например, в следующих случаях:542Другой уровень применяется, например, в следующих случаях:

543 543 

544* **Ваше собственное изменение**: как только вы выбираете уровень усилий, выбираете модель в `/model` или позже возобновляете сессию, уровень помеченного запроса больше не переносится.544* **Ваше собственное изменение**: как только вы выбираете уровень усилий, выбираете модель в `/model` или позже возобновляете сессию, уровень помеченного запроса больше не переносится.

545* **Уровень усилий скилла**: уровень, который frontmatter `effort` скилла задал для помеченного запроса, применяется к этому ходу, а последующие ходы выполняются на уровне, который [порядок разрешения усилий](#adjust-effort-level) даёт резервной модели.545* **Уровень усилий, заданный для одного хода**: если вы повысили уровень помеченного хода с помощью `ultrathink` или его уровень задал frontmatter `effort` скилла, этот уровень применяется к этому ходу. Последующие ходы выполняются на уровне, который [порядок разрешения усилий](#adjust-effort-level) даёт резервной модели.

546 546 

547В сессии выполните `/effort status`, чтобы увидеть действующий уровень, или `/effort`, чтобы изменить его.547В сессии выполните `/effort status`, чтобы увидеть действующий уровень, или `/effort`, чтобы изменить его.

548 548 


674 674 

675#### Использование ultrathink для разовых глубоких рассуждений675#### Использование ultrathink для разовых глубоких рассуждений

676 676 

677Включите `ultrathink` в любое место промпта, чтобы запросить более глубокие рассуждения на этом ходе, не меняя настройку усилий сессии. Claude Code распознаёт ключевое слово и добавляет инструкцию в контекст. Уровень усилий, отправляемый в API, не меняется. Другие фразы, такие как "think", "think hard" и "think more", Claude Code передаёт как обычный текст промпта и не распознаёт как ключевые слова.677Включите `ultrathink` в любое место промпта, чтобы запросить более глубокие рассуждения на этом ходе, не меняя настройку усилий сессии. Claude Code распознаёт ключевое слово и добавляет инструкцию в контекст. Другие фразы, такие как "think", "think hard" и "think more", Claude Code передаёт как обычный текст промпта и не распознаёт как ключевые слова.

678 

679Если ввести это слово в промпт в терминале, оно также может повысить уровень усилий этого хода до `xhigh`. Когда это возможно, слово отображается радужными цветами. Требуется Claude Code версии 2.1.311 или позже. Если слово не становится радужным, когда вы начинаете новый ход, попробуйте одно из следующего:

680 

681* Введите его заново вне кавычек, скобок, пути или команды, в промпте, который не начинается с `/`

682* Удалите `CLAUDE_CODE_EFFORT_LEVEL`, если она задана ниже `xhigh`, повысьте собственный [`maxEffortLevel`](https://code.claude.com/docs/ru/settings-reference#maxeffortlevel) до `xhigh` или выше либо попросите администратора организации повысить [ограничение вашей организации](#organization-effort-limits)

683* Выполните `/model` в сессии, чтобы переключиться на модель Opus 5.5, Sonnet 5.5, Haiku 5.5 или Fable 5.1. Там, где слово не может повысить уровень хода, например на Amazon Bedrock, вместо этого [установите уровень усилий](#set-the-effort-level)

678 684 

679#### Установка уровня усилий685#### Установка уровня усилий

680 686 

681Изменить уровень усилий можно любым из следующих способов:687Изменить уровень усилий можно любым из следующих способов:

682 688 

683* **`/effort`**: выполните `/effort` без аргументов, чтобы открыть интерактивный ползунок, `/effort` с именем уровня, чтобы задать его напрямую, или `/effort auto`, чтобы сбросить сохранённый уровень для активной модели. Команду можно выполнять, пока Claude работает, и после подтверждения [предупреждения о кэше](https://code.claude.com/docs/ru/prompt-caching.md#changing-effort-level), если Claude Code его показывает, Claude Code применяет новый уровень к следующему запросу в ходе689* **`/effort`**: выполните `/effort` без аргументов, чтобы открыть интерактивный ползунок, `/effort` с именем уровня, чтобы задать его напрямую, или `/effort auto`, чтобы сбросить сохранённый уровень для активной модели

684* **В `/model`**: при выборе модели используйте клавиши со стрелками влево/вправо, чтобы отрегулировать ползунок усилий690* **В `/model`**: при выборе модели используйте клавиши со стрелками влево/вправо, чтобы отрегулировать ползунок усилий

685* **Флаг `--effort`**: передайте имя уровня при запуске Claude Code, чтобы задать его для одной сессии691* **Флаг `--effort`**: передайте имя уровня при запуске Claude Code, чтобы задать его для одной сессии

686* **Переменная окружения**: установите `CLAUDE_CODE_EFFORT_LEVEL` в имя уровня или `auto`692* **Переменная окружения**: установите `CLAUDE_CODE_EFFORT_LEVEL` в имя уровня или `auto`


692 698 

693Если вы задаёте `effortLevel` в [управляемых настройках](https://code.claude.com/docs/ru/managed-settings.md), Claude Code применяет его на шаге настроек [порядка разрешения усилий](#adjust-effort-level), и пользователи по-прежнему могут менять уровень с помощью `/effort` или `--effort`. Чтобы пользователи не превышали определённый уровень, задайте [`maxEffortLevel`](https://code.claude.com/docs/ru/settings-reference#maxeffortlevel).699Если вы задаёте `effortLevel` в [управляемых настройках](https://code.claude.com/docs/ru/managed-settings.md), Claude Code применяет его на шаге настроек [порядка разрешения усилий](#adjust-effort-level), и пользователи по-прежнему могут менять уровень с помощью `/effort` или `--effort`. Чтобы пользователи не превышали определённый уровень, задайте [`maxEffortLevel`](https://code.claude.com/docs/ru/settings-reference#maxeffortlevel).

694 700 

695Ползунок усилий появляется в `/model`, когда выбрана поддерживаемая модель. Текущий уровень усилий также показывается в заголовке сессии рядом с именем модели, например "with low effort", поэтому вы можете проверить, какая настройка активна, не открывая `/model`. Нижняя строка также ненадолго показывает уровень усилий при запуске и при его изменении.701#### Проверка установленного уровня усилий

702 

703Ползунок усилий появляется в `/model`, когда выбрана поддерживаемая модель. Уровень в заголовке сессии, например "with low effort", берётся из вашей настройки усилий, даже если Claude [всё ещё работает на прежнем уровне](#when-a-new-effort-level-starts). Нижняя строка также ненадолго показывает уровень усилий при запуске и при его изменении.

704 

705#### Когда начинает действовать новый уровень усилий

706 

707В терминальной сессии, как только `/effort` подтверждает новый уровень, следующее отправленное вами сообщение выполняется на этом уровне. Вы можете отправить его после завершения текущего хода или [пока Claude ещё работает](https://code.claude.com/docs/ru/interactive-mode.md#queue-messages-while-claude-works):

708 

709* **После завершения хода**: до этого момента ничего делать не нужно, и это ожидаемо, если ход завершится на прежнем уровне

710* **Пока Claude ещё работает**: введите сообщение, например `keep going`, и нажмите `Enter`, чтобы поставить его в очередь, не прерывая ход. Claude получит его, когда завершатся текущие вызовы инструментов, или самое позднее по окончании хода, и с этого момента будет работать на новом уровне.

711 

712До версии 2.1.242 Claude Code мог сам ставить `/effort` в очередь до завершения хода и всегда делал это в сессии, которая не [получает флаги функций](https://code.claude.com/docs/ru/env-vars.md#features-that-need-feature-flag-fetching), например у [стороннего поставщика](https://code.claude.com/docs/ru/third-party-integrations.md).

696 713 

697#### Адаптивные рассуждения и фиксированные бюджеты мышления714#### Адаптивные рассуждения и фиксированные бюджеты мышления

698 715 

Details

648| `claude_code.code_edit_tool.decision` | Количество решений о разрешениях для инструментов редактирования кода | нет |648| `claude_code.code_edit_tool.decision` | Количество решений о разрешениях для инструментов редактирования кода | нет |

649| `claude_code.active_time.total` | Общее активное время | s |649| `claude_code.active_time.total` | Общее активное время | s |

650 650 

651Когда `prometheus` — единственный экспортёр, указанный в `OTEL_METRICS_EXPORTER`, Claude Code не указывает единицы `USD`, `tokens` и `s` в экспортируемых метриках, чтобы результат сбора оставался корректным текстовым форматом Prometheus. Имена метрик не меняются, а конфигурации, сочетающие экспортёры, например `otlp,prometheus`, сохраняют единицы. До v2.1.216 результат сбора Prometheus включал строки `# UNIT`, специфичные для OpenMetrics, которые некоторые сборщики отклоняли.651Когда `prometheus` — единственный экспортёр, указанный в `OTEL_METRICS_EXPORTER`, Claude Code опускает единицы `USD`, `tokens` и `s` в экспортируемых метриках, чтобы результат сбора оставался корректным текстовым форматом Prometheus. Имена метрик не меняются, а конфигурации, сочетающие экспортёры, например `otlp,prometheus`, сохраняют единицы.

652 652 

653### Подробности метрик653### Подробности метрик

654 654 


995 995 

996 Значение `source` не указывает, какой из этих источников сработал. Чтобы узнать, какой из них отклонил вызов, найдите [событие безопасности](#safety-event) с тем же `tool_use_id` и прочитайте его атрибуты `category` и `rule_source`. У некоторых отклонённых вызовов [нет события безопасности](#calls-without-a-safety-event).996 Значение `source` не указывает, какой из этих источников сработал. Чтобы узнать, какой из них отклонил вызов, найдите [событие безопасности](#safety-event) с тем же `tool_use_id` и прочитайте его атрибуты `category` и `rule_source`. У некоторых отклонённых вызовов [нет события безопасности](#calls-without-a-safety-event).

997 997 

998 Claude Code также сообщает `"config"`, когда сбой происходит в самом запросе разрешения. Например, этот запрос завершается сбоем, когда обратный вызов [`canUseTool`](https://code.claude.com/docs/ru/agent-sdk/typescript#canusetool) в Agent SDK или инструмент [`--permission-prompt-tool`](https://code.claude.com/docs/ru/cli-reference#cli-flags) возвращает недопустимый результат либо когда входной поток закрывается, пока запрос ожидает ответа. До v2.1.216 Claude Code сообщал об этих сбоях как `"user_reject"`.998 Claude Code также указывает `"config"`, когда сам запрос разрешения завершается сбоем. Например, такой запрос завершается сбоем, когда обратный вызов [`canUseTool`](https://code.claude.com/docs/ru/agent-sdk/typescript#canusetool) в Agent SDK или инструмент [`--permission-prompt-tool`](https://code.claude.com/docs/ru/cli-reference#cli-flags) возвращает недопустимый результат либо когда входной поток закрывается, пока запрос ожидает ответа.

999 * `"hook"`: Решение вернул хук `PreToolUse` или `PermissionRequest`.999 * `"hook"`: Решение вернул хук `PreToolUse` или `PermissionRequest`.

1000 * `"user_permanent"`: Генерируется, когда пользователь выбрал "Yes, and don't ask again for ..." в запросе разрешения, что сохраняет правило разрешения в его личных настройках. В интерактивном CLI генерируется только для самого этого выбора; последующие вызовы, соответствующие сохранённому правилу, генерируют `"config"`. В сессиях Agent SDK или неинтерактивных сессиях `-p` и первоначальный выбор, и последующие совпадения с правилом генерируют `"user_permanent"`. Считается принятием.1000 * `"user_permanent"`: Передаётся, когда пользователь выбрал «Yes, and don't ask again for ...» в запросе разрешения, что сохраняет правило разрешения в его личные настройки. В интерактивном CLI передаётся только для самого этого выбора; последующие вызовы, соответствующие сохранённому правилу, передают `"config"`. В сессиях Agent SDK или неинтерактивных сессиях `-p` `"user_permanent"` передаётся как для первоначального выбора, так и для последующих совпадений с правилом. Рассматривается как принятие.

1001 * `"user_temporary"`: Генерируется, когда пользователь выбрал "Yes" в запросе разрешения для однократного подтверждения или выбрал вариант, предоставляющий доступ на оставшуюся часть сессии, в запросе на редактирование или чтение файла. В интерактивном CLI генерируется только для самого выбора; последующие вызовы, разрешённые этим разрешением на уровне сессии, генерируют `"config"`. В сессиях Agent SDK или неинтерактивных сессиях `-p` и выбор, и последующие совпадения генерируют `"user_temporary"`. Считается принятием.1001 * `"user_temporary"`: Передаётся, когда пользователь выбрал «Yes» в запросе разрешения для однократного подтверждения либо выбрал вариант, предоставляющий доступ на оставшуюся часть сессии, в запросе на редактирование или чтение файла. В интерактивном CLI передаётся только для самого выбора; последующие вызовы, разрешённые этим разрешением в рамках сессии, передают `"config"`. В сессиях Agent SDK или неинтерактивных сессиях `-p` `"user_temporary"` передаётся как для выбора, так и для последующих совпадений. Рассматривается как принятие.

1002 * `"user_abort"`: Генерируется, когда пользователь закрыл запрос разрешения, не ответив. В сессиях Agent SDK и неинтерактивных сессиях `-p` сюда относится прерывание хода, пока ожидает ответа запрос разрешения `canUseTool` или `--permission-prompt-tool`; до v2.1.216 Claude Code сообщал о таком прерывании как `"user_reject"`. Считается отклонением.1002 * `"user_abort"`: Передаётся, когда пользователь закрыл запрос разрешения, не ответив. В сессиях Agent SDK и неинтерактивных сессиях `-p` сюда относится и прерывание хода, пока ожидает ответа запрос разрешения `canUseTool` или `--permission-prompt-tool`. Рассматривается как отклонение.

1003 * `"user_reject"`: Генерируется, когда пользователь выбрал "No" в ответ на запрос. В интерактивном CLI генерируется только для самого этого выбора; вызовы, соответствующие правилу запрета в личных настройках пользователя, генерируют `"config"`. В сессиях Agent SDK или неинтерактивных сессиях `-p` вызовы, соответствующие правилу запрета в личных настройках, генерируют `"user_reject"`. Считается отклонением.1003 * `"user_reject"`: Передаётся, когда пользователь выбрал «No» в запросе. В интерактивном CLI передаётся только для самого этого выбора; вызовы, соответствующие правилу запрета в личных настройках пользователя, передают `"config"`. В сессиях Agent SDK или неинтерактивных сессиях `-p` вызовы, соответствующие правилу запрета в личных настройках, передают `"user_reject"`. Рассматривается как отклонение.

1004* `classifier_verdict`: Вердикт [классификатора](https://code.claude.com/docs/ru/permission-modes.md#how-the-classifier-evaluates-actions) авторежима для вызова или причина, по которой Claude Code отклонил вызов, если вердикт не был получен. Требуется Claude Code v2.1.301 или новее1004* `classifier_verdict`: Вердикт [классификатора](https://code.claude.com/docs/ru/permission-modes.md#how-the-classifier-evaluates-actions) авторежима для вызова или причина, по которой Claude Code отклонил вызов, если вердикт не был получен. Требуется Claude Code v2.1.301 или новее

1005 1005 

1006 * `"allow"`: классификатор одобрил вызов1006 * `"allow"`: классификатор одобрил вызов

Details

97 Команда также работает в [неинтерактивном режиме](https://code.claude.com/docs/ru/headless.md) и сеансах Agent SDK, а также из мобильного приложения или веб-версии через [Remote Control](https://code.claude.com/docs/ru/remote-control.md#limitations), где вы можете просмотреть и выбрать только [встроенные стили](#built-in-output-styles). Требуется Claude Code версии 2.1.269 или позже.97 Команда также работает в [неинтерактивном режиме](https://code.claude.com/docs/ru/headless.md) и сеансах Agent SDK, а также из мобильного приложения или веб-версии через [Remote Control](https://code.claude.com/docs/ru/remote-control.md#limitations), где вы можете просмотреть и выбрать только [встроенные стили](#built-in-output-styles). Требуется Claude Code версии 2.1.269 или позже.

98* **Terminal menu**: запустите `/config` и выберите **Output style**, чтобы выбрать стиль из меню.98* **Terminal menu**: запустите `/config` и выберите **Output style**, чтобы выбрать стиль из меню.

99* **VS Code extension**: откройте [меню команд](https://code.claude.com/docs/ru/vs-code.md#use-the-prompt-box) с помощью `/` и выберите **Output styles**, чтобы выбрать стиль, включая ваши пользовательские стили. Требуется Claude Code версии 2.1.257 или позже.99* **VS Code extension**: откройте [меню команд](https://code.claude.com/docs/ru/vs-code.md#use-the-prompt-box) с помощью `/` и выберите **Output styles**, чтобы выбрать стиль, включая ваши пользовательские стили. Требуется Claude Code версии 2.1.257 или позже.

100* **Desktop app**: установите поле `outputStyle` в файле настроек, например `.claude/settings.local.json`, файл, в который пишет меню терминала. Когда вы запустите `/config` там, Claude Code [открывает **Settings > Claude Code**](https://code.claude.com/docs/ru/desktop.md#what%E2%80%99s-not-available-in-desktop) вместо меню.100* **Desktop app**: задайте поле `outputStyle` в файле настроек, например `.claude/settings.local.json`, — в файле, в который пишет меню терминала. Когда вы запускаете `/config` там, Claude Code [открывает **Settings > Code** или **Settings > Claude Code**](https://code.claude.com/docs/ru/desktop.md#what’s-not-available-in-desktop) вместо меню.

101 101 

102Чтобы установить стиль без меню, отредактируйте поле `outputStyle` непосредственно в файле настроек:102Чтобы установить стиль без меню, отредактируйте поле `outputStyle` непосредственно в файле настроек:

103 103 

Details

31 31 

32### Действия, которые ни один режим не одобряет автоматически32### Действия, которые ни один режим не одобряет автоматически

33 33 

34Claude Code не одобряет автоматически следующее ни в одном режиме, включая `bypassPermissions`. Каждый пункт ссылается на раздел, который говорит, что происходит вместо этого в каждом режиме:34Claude Code не одобряет автоматически следующее ни в одном режиме, включая `bypassPermissions`, хотя в режиме `bypassPermissions` вы можете [отключить запрос для опасных команд `rm`](#turn-off-the-critical-path-removal-prompt-in-bypasspermissions-mode). Каждый пункт ссылается на раздел, который говорит, что происходит вместо этого в каждом режиме:

35 35 

36* Инструменты, соответствующие явному [правилу запроса](https://code.claude.com/docs/ru/permissions.md#manage-permissions)36* Инструменты, соответствующие явному [правилу запроса](https://code.claude.com/docs/ru/permissions.md#manage-permissions)

37* Инструменты соединителя, которые ваша организация [установила на `ask`](https://code.claude.com/docs/ru/mcp#organization-controls-on-connector-tools), в сеансах, где эта настройка достигает Claude Code37* Инструменты соединителя, которые ваша организация [установила на `ask`](https://code.claude.com/docs/ru/mcp#organization-controls-on-connector-tools), в сеансах, где эта настройка достигает Claude Code


504* HTTP-запросы только для чтения504* HTTP-запросы только для чтения

505* Push в любую ветку репозитория, в котором вы работаете, включая ветку по умолчанию. Это не распространяется на ветку, не являющуюся веткой по умолчанию, имя которой обозначает её как цель развёртывания или публикации, например `production` или `gh-pages`: push в неё классификатор оценивает отдельно.505* Push в любую ветку репозитория, в котором вы работаете, включая ветку по умолчанию. Это не распространяется на ветку, не являющуюся веткой по умолчанию, имя которой обозначает её как цель развёртывания или публикации, например `production` или `gh-pages`: push в неё классификатор оценивает отдельно.

506 506 

507 Содержимое push по-прежнему проверяется по другим правилам классификатора, а [правила `permissions.deny`](https://code.claude.com/docs/ru/permissions#manage-permissions) по-прежнему могут блокировать команды push [в том виде, в каком они написаны](https://code.claude.com/docs/ru/permissions.md#bash-rule-limits), в любом режиме. Собственная защита веток на стороне remote по-прежнему действует. С v2.1.203 до v2.1.211 по умолчанию разрешались только рутинные push в ветку по умолчанию и push в ветку, с которой вы начали, или в ветки, созданные Claude.507 Содержимое push по-прежнему проверяется по другим правилам классификатора, а [правила `permissions.deny`](https://code.claude.com/docs/ru/permissions#manage-permissions) по-прежнему могут блокировать команды push [в том виде, в каком они написаны](https://code.claude.com/docs/ru/permissions.md#bash-rule-limits), в любом режиме. Собственная защита веток на стороне remote по-прежнему действует.

508* Удаление именно тех заданий, которые Claude создал ранее в той же сессии508* Удаление именно тех заданий, которые Claude создал ранее в той же сессии

509* Чтение, проверка или написание кода, конфигураций и моделей угроз, связанных с безопасностью, в рамках вашей задачи509* Чтение, проверка или написание кода, конфигураций и моделей угроз, связанных с безопасностью, в рамках вашей задачи

510* Сообщения между агентами, работающими вместе в одной многоагентной сессии510* Сообщения между агентами, работающими вместе в одной многоагентной сессии


649 649 

650Режим `bypassPermissions` отключает запросы разрешений и проверки безопасности, чтобы вызовы инструментов выполнялись немедленно, включая записи в [защищённые пути](#protected-paths).650Режим `bypassPermissions` отключает запросы разрешений и проверки безопасности, чтобы вызовы инструментов выполнялись немедленно, включая записи в [защищённые пути](#protected-paths).

651 651 

652Даже в режиме `bypassPermissions` каждое из [действий, которые ни один режим не одобряет автоматически](#actions-no-mode-auto-approves), вызывает запрос или отклоняется, а не выполняется самостоятельно. Чтение [публичного артефакта другой организации](https://code.claude.com/docs/ru/artifacts.md#read-an-artifact-shared-with-you) требует вашего подтверждения, а этот режим его не запрашивает, поэтому Claude не может прочитать такой артефакт. Запреты [Remove-Item в PowerShell](#remove-item-in-powershell) также применяются в этом режиме.652Даже в режиме `bypassPermissions` каждое из [действий, которые ни один режим не одобряет автоматически](#actions-no-mode-auto-approves), вызывает запрос или отклоняется, хотя вы можете [отключить запрос для опасных команд `rm`](#turn-off-the-critical-path-removal-prompt-in-bypasspermissions-mode). Чтение [публичного артефакта другой организации](https://code.claude.com/docs/ru/artifacts.md#read-an-artifact-shared-with-you) требует вашего подтверждения, а этот режим его не запрашивает, поэтому Claude не может прочитать такой артефакт. Запреты [Remove-Item в PowerShell](#remove-item-in-powershell) также применяются в этом режиме.

653 653 

654Две [гарантии обмена сообщениями между сеансами](https://code.claude.com/docs/ru/cross-session-messaging.md) по-прежнему применяются в этом режиме, и в интерактивных сеансах режима plan, где доступны разрешения на обход:654Две [гарантии обмена сообщениями между сеансами](https://code.claude.com/docs/ru/cross-session-messaging.md) по-прежнему применяются в этом режиме, и в интерактивных сеансах режима plan, где доступны разрешения на обход:

655 655 


861This command could not be checked for dangerous rm operations: the shell may read it differently than it was parsed.861This command could not be checked for dangerous rm operations: the shell may read it differently than it was parsed.

862```862```

863 863 

864Вы получаете тот же запрос или отклонение, что и для удаления критического пути [в вашем режиме разрешений](#critical-path-removals-in-each-permission-mode), включая `bypassPermissions`. Одобрить команду с помощью правила allow `Bash` или `Bash(*)`, [режима автоматического разрешения](https://code.claude.com/docs/ru/sandboxing.md#auto-allow-mode) песочницы или хука `PreToolUse`, возвращающего `"allow"`, нельзя. Прочитайте команду, а затем одобрите запрос или, после отклонения, выполните её в своей оболочке.864Вы получаете тот же запрос или отклонение, что и для удаления критического пути [в вашем режиме разрешений](#critical-path-removals-in-each-permission-mode), включая `bypassPermissions`, хотя в режиме `bypassPermissions` этот запрос можно [отключить](#turn-off-the-critical-path-removal-prompt-in-bypasspermissions-mode). Одобрить команду с помощью правила allow `Bash` или `Bash(*)`, [режима автоматического разрешения](https://code.claude.com/docs/ru/sandboxing.md#auto-allow-mode) песочницы или хука `PreToolUse`, возвращающего `"allow"`, нельзя. Прочитайте команду, а затем одобрите запрос или, после отклонения, выполните её в своей оболочке.

865 865 

866### Запрос для смонтированных дисков866### Запрос для смонтированных дисков

867 867 


923 923 

924Если явное [правило ask](https://code.claude.com/docs/ru/permissions.md#manage-permissions) совпадает с командой, Claude Code спрашивает вас вместо этого, даже в режиме `auto` и без ограничения по времени. В режимах, которые спрашивают, hook [`PermissionRequest`](https://code.claude.com/docs/ru/hooks#permissionrequest) может ответить на запрос.924Если явное [правило ask](https://code.claude.com/docs/ru/permissions.md#manage-permissions) совпадает с командой, Claude Code спрашивает вас вместо этого, даже в режиме `auto` и без ограничения по времени. В режимах, которые спрашивают, hook [`PermissionRequest`](https://code.claude.com/docs/ru/hooks#permissionrequest) может ответить на запрос.

925 925 

926Чтобы выполнять такие удаления без запроса в режиме `bypassPermissions`, см. [Отключение запроса при удалении критических путей](#turn-off-the-critical-path-removal-prompt-in-bypasspermissions-mode).

927 

926### Ограничения по времени и отклонения в режимах auto и bypassPermissions928### Ограничения по времени и отклонения в режимах auto и bypassPermissions

927 929 

928В режимах `auto` и `bypassPermissions` запрос в терминале для удаления критического пути показывает обратный отсчёт в две минуты:930В режимах `auto` и `bypassPermissions` запрос в терминале для удаления критического пути показывает обратный отсчёт в две минуты:


939| :- | :- | :- |941| :- | :- | :- |

940| Панель чата [расширения VS Code](https://code.claude.com/docs/ru/vs-code.md) | Отклоняет его | Отклоняет его, если [хук `PermissionRequest`](https://code.claude.com/docs/ru/hooks#permissionrequest) его не разрешает |942| Панель чата [расширения VS Code](https://code.claude.com/docs/ru/vs-code.md) | Отклоняет его | Отклоняет его, если [хук `PermissionRequest`](https://code.claude.com/docs/ru/hooks#permissionrequest) его не разрешает |

941| [Приложение Desktop](https://code.claude.com/docs/ru/desktop.md) | Отклоняет его | Отклоняет его, если хук `PermissionRequest` его не разрешает |943| [Приложение Desktop](https://code.claude.com/docs/ru/desktop.md) | Отклоняет его | Отклоняет его, если хук `PermissionRequest` его не разрешает |

942| [Запуск с `-p`](https://code.claude.com/docs/ru/headless) или [сессия Agent SDK](https://code.claude.com/docs/ru/agent-sdk/permissions.md) | Отклоняет его | Решает ваш [`--permission-prompt-tool`](https://code.claude.com/docs/ru/cli-reference#cli-flags) или [callback `canUseTool`](https://code.claude.com/docs/ru/agent-sdk/user-input#handle-tool-approval-requests). Если нет ни того, ни другого, или при [`--permission-prompts none`](https://code.claude.com/docs/ru/headless#turn-off-permission-prompts-in-unattended-runs), отклоняет его, если хук `PermissionRequest` его не разрешает |944| [Запуск с `-p`](https://code.claude.com/docs/ru/headless) или [сессия Agent SDK](https://code.claude.com/docs/ru/agent-sdk/permissions.md) | Отклоняет его | Решает ваш [`--permission-prompt-tool`](https://code.claude.com/docs/ru/cli-reference#cli-flags) или [callback `canUseTool`](https://code.claude.com/docs/ru/agent-sdk/user-input#handle-tool-approval-requests). Если нет ни того, ни другого, или при [`--permission-prompts none`](https://code.claude.com/docs/ru/headless#turn-off-permission-prompts-in-unattended-runs), отклоняет его, если хук `PermissionRequest` его не разрешает. Чтобы вместо этого выполнять такие удаления без запроса, см. [Отключение запроса при удалении критических путей](#turn-off-the-critical-path-removal-prompt-in-bypasspermissions-mode) |

943 945 

944Везде, где удаление отклонено, вы можете прочитать всю команду и выполнить её в своей оболочке.946Везде, где удаление отклонено, вы можете прочитать всю команду и выполнить её в своей оболочке.

945 947 


958}960}

959```961```

960 962 

963### Отключение запроса при удалении критических путей в режиме bypassPermissions

964 

965Чтобы команды Bash `rm` и `rmdir`, нацеленные на [критические пути](#critical-paths), выполнялись без запроса в режиме `bypassPermissions`, запустите Claude Code с [`CLAUDE_CODE_EVEN_MORE_DANGEROUSLY_SKIP_PERMISSIONS=1`](https://code.claude.com/docs/ru/env-vars#variables) в его окружении. Для этого требуется Claude Code v2.1.311 или позже. Claude Code читает переменную только из окружения запуска и [игнорирует её в блоке `env` файла настроек](https://code.claude.com/docs/ru/settings-reference#variables-claude-code-ignores-in-env). Например, установите её в [вашей оболочке](https://code.claude.com/docs/ru/env-vars.md#set-variables-in-your-shell) и запустите `claude` оттуда:

966 

967**macOS, Linux, WSL**

968 

969```bash theme={null}

970export CLAUDE_CODE_EVEN_MORE_DANGEROUSLY_SKIP_PERMISSIONS=1

971claude --permission-mode bypassPermissions

972```

973 

974**Windows PowerShell**

975 

976```powershell theme={null}

977$env:CLAUDE_CODE_EVEN_MORE_DANGEROUSLY_SKIP_PERMISSIONS = "1"

978claude --permission-mode bypassPermissions

979```

980 

981**Windows CMD**

982 

983```batch theme={null}

984set CLAUDE_CODE_EVEN_MORE_DANGEROUSLY_SKIP_PERMISSIONS=1

985claude --permission-mode bypassPermissions

986```

987 

988> [!WARNING]

989>

990> Если эта переменная установлена, вы теряете защитный запрос для разрушительных удалений: команда вроде `rm -rf ~` может выполниться, не спрашивая вас. Устанавливайте её только в [изолированном окружении](#skip-all-checks-with-bypasspermissions-mode), содержимое которого вы можете позволить себе потерять.

991 

992Удаления выполняются без запроса только в самом режиме `bypassPermissions`, а не в режиме планирования, и только для того, что помечает проверка критических путей в инструментах Bash и [Monitor](https://code.claude.com/docs/ru/tools-reference.md#monitor-tool). Сюда входят команды, которые Claude Code не может полностью разобрать: они тоже выполняются без запроса.

993 

994#### Уведомления при запуске о запросе при удалении критических путей

995 

996Чтобы проверить, работает ли `CLAUDE_CODE_EVEN_MORE_DANGEROUSLY_SKIP_PERMISSIONS`, прочитайте строку, которую Claude Code выводит при запуске. При запуске с `-p` она выводится в stderr. В приложении Agent SDK передайте [параметр `stderr`](https://code.claude.com/docs/ru/agent-sdk/typescript#options), чтобы прочитать её. Строка содержит одно из следующего:

997 

998* **`is set, so dangerous rm commands can run without a prompt`**: удаления могут выполняться без запроса после того, как загрузятся управляемые настройки и хуки плагинов. Если удаления по-прежнему получают запрос или отклонение, см. [Почему запрос при удалении критических путей остаётся включённым](#why-the-critical-path-removal-prompt-stays-on)

999* **`has no effect in this session`**: удаления сохраняют свой обычный запрос или отклонение на протяжении всей сессии. Чтобы это изменить, найдите свой случай в разделе [Почему запрос при удалении критических путей остаётся включённым](#why-the-critical-path-removal-prompt-stays-on)

1000* **`has no effect while the Windows registry cannot be read for managed settings`**: удаления сохраняют свой обычный запрос или отклонение, а переменная вступает в силу без перезапуска, если последующее чтение реестра завершится успешно. Если удаления по-прежнему получают запрос или отклонение, см. [Почему запрос при удалении критических путей остаётся включённым](#why-the-critical-path-removal-prompt-stays-on)

1001 

1002Отсутствие строки не означает, что запрос включён: приложение Agent SDK без параметра `stderr` не видит строку, а удаления всё равно могут выполняться без запроса. В остальных случаях проверьте, что вы установили переменную в окружении запуска, что сессия [может перейти в режим `bypassPermissions`](#skip-all-checks-with-bypasspermissions-mode) и что `claude` не запущен внутри другой сессии. Некоторые сессии [запускаются без переменной](#why-the-critical-path-removal-prompt-stays-on).

1003 

1004Если вы видите одну из этих строк, но не устанавливали переменную, найдите, где она установлена, например в профиле вашей оболочки, и удалите её.

1005 

1006#### Почему запрос при удалении критических путей остаётся включённым

1007 

1008Если `CLAUDE_CODE_EVEN_MORE_DANGEROUSLY_SKIP_PERMISSIONS` не действует и удаления сохраняют свой [обычный запрос или отклонение](#critical-path-removals-in-each-permission-mode), проверьте наличие таких причин:

1009 

1010* **Запросы разрешений обрабатывает что-то другое**: [`--permission-prompt-tool`](https://code.claude.com/docs/ru/cli-reference#cli-flags) или [callback `canUseTool`](https://code.claude.com/docs/ru/agent-sdk/user-input) Agent SDK без [`--permission-prompts none`](https://code.claude.com/docs/ru/headless#turn-off-permission-prompts-in-unattended-runs), [хук `PermissionRequest`](https://code.claude.com/docs/ru/hooks#permissionrequest) с любым matcher или [мод](https://code.claude.com/docs/ru/plugins/mods/events.md#hook-the-settings-hook-events), обрабатывающий это событие. Удалите хук, мод, инструмент или callback и перезапустите `claude`

1011* **Сессию запускает панель чата [расширения VS Code](https://code.claude.com/docs/ru/vs-code.md) или [приложение Desktop](https://code.claude.com/docs/ru/desktop.md)**: вместо этого запустите `claude` в терминале, например во встроенном терминале IDE

1012* **Правило охватывает Bash, Edit или Read**: [правило deny или ask](https://code.claude.com/docs/ru/permissions.md#manage-permissions), нацеленное на один из этих инструментов, при запуске или после того, как Claude Code прочитает его во время сессии, даже если вы позже его удалите. Удалите правило и перезапустите `claude`. Чтобы исключить инструмент, используйте [`--tools`](https://code.claude.com/docs/ru/cli-reference#cli-flags) вместо правила deny

1013* **Включена настройка [`permissions.blockReadsOutsideWorkingDirectories`](https://code.claude.com/docs/ru/settings-reference#permissions-blockreadsoutsideworkingdirectories)**: удалите эту настройку из каждого файла настроек, где она установлена в `true`, затем перезапустите `claude`

1014* **`claude` запущен внутри другой сессии**: `claude`, запущенный из инструмента Bash сессии или из хука, даже если переменная указана в его командной строке. Запускайте `claude` из своей оболочки. Не полагайтесь на это ограничение вложенных сессий как на границу безопасности

1015* **Хук `PreToolUse` отвечает `ask` для удаления**: измените то, что возвращает хук

1016* **Claude Code запускает сессию за вас**: [фоновые сессии](https://code.claude.com/docs/ru/agent-view.md), участники [команды агентов](https://code.claude.com/docs/ru/agent-teams.md) в разделённых панелях и сессии, которые создаёт сервер [Remote Control](https://code.claude.com/docs/ru/remote-control.md), запускаются без переменной. Запускайте `claude` из своей оболочки

1017* **Не удаётся прочитать управляемые настройки**: Claude Code не смог успешно прочитать источники ваших [управляемых настроек](https://code.claude.com/docs/ru/managed-settings.md). Если серверные управляемые настройки по-прежнему не загружаются, см. [Remote managed settings failed to load](https://code.claude.com/docs/ru/errors.md#remote-managed-settings-failed-to-load). При любом другом сбое, не связанном с запросом к реестру, попросите того, кто управляет этим источником, исправить его

1018* **Не удаётся выполнить запрос к реестру Windows**: в Windows и в WSL переменной нужен ответ от реестра, даже когда [WSL не использует его для настроек](https://code.claude.com/docs/ru/settings-reference.md#wslinheritswindowssettings). Запрос может не выполняться на протяжении всей сессии в неанглоязычной Windows, в WSL с отключённым interop или в контейнере на ядре WSL2. Если interop отключён, включите его. В противном случае выполняйте такие удаления сами

1019 

961### Remove-Item в PowerShell1020### Remove-Item в PowerShell

962 1021 

963Когда вы включаете инструмент [PowerShell](https://code.claude.com/docs/ru/tools-reference.md#powershell-tool), Claude Code даёт `Remove-Item` и встроенные команды `cmd` `rd`, `rmdir`, `del` и `erase` свои собственные проверки, отдельные от списка критических путей `rm`. Для `Remove-Item` результат зависит от цели, и первый совпадающий случай применяется:1022Когда вы включаете инструмент [PowerShell](https://code.claude.com/docs/ru/tools-reference.md#powershell-tool), Claude Code даёт `Remove-Item` и встроенные команды `cmd` `rd`, `rmdir`, `del` и `erase` свои собственные проверки, отдельные от списка критических путей `rm`. Для `Remove-Item` результат зависит от цели, и первый совпадающий случай применяется:

permissions.md +12 −10

Details

28 28 

29Когда вы выбираете "Да, не спрашивать снова" и одобрение сохраняется постоянно, например для команды Bash или домена WebFetch, Claude Code сохраняет правило в `.claude/settings.local.json` в корне git репозитория, разрешённого через [worktrees](https://code.claude.com/docs/ru/worktrees.md) к основной копии. Правило применяется к будущим сеансам в любом месте этого репозитория, включая сеансы, запущенные в подкаталогах и в worktrees. Одобрение изменения файла не сохраняется в файл: как показано в таблице, оно действует до конца сеанса. В некоторых случаях, например вне git репозитория или на Windows, Claude Code не использует корень репозитория; [Где Claude Code ищет каждый файл](https://code.claude.com/docs/ru/settings.md#where-claude-code-looks-for-each-file) перечисляет эти случаи и где вместо этого сохраняется правило.29Когда вы выбираете "Да, не спрашивать снова" и одобрение сохраняется постоянно, например для команды Bash или домена WebFetch, Claude Code сохраняет правило в `.claude/settings.local.json` в корне git репозитория, разрешённого через [worktrees](https://code.claude.com/docs/ru/worktrees.md) к основной копии. Правило применяется к будущим сеансам в любом месте этого репозитория, включая сеансы, запущенные в подкаталогах и в worktrees. Одобрение изменения файла не сохраняется в файл: как показано в таблице, оно действует до конца сеанса. В некоторых случаях, например вне git репозитория или на Windows, Claude Code не использует корень репозитория; [Где Claude Code ищет каждый файл](https://code.claude.com/docs/ru/settings.md#where-claude-code-looks-for-each-file) перечисляет эти случаи и где вместо этого сохраняется правило.

30 30 

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

32 

33Иногда запрос разрешения предлагает только одноразовое одобрение, без опции "не спрашивать снова" и без опции разрешить действие на остаток сеанса. Claude Code предлагает эти опции только когда запрос может показать вам всё, что они позволили бы, поэтому правило, которое вы сохраняете из запроса, охватывает только то, что названо его опцией. Когда запрос предлагает только одноразовое одобрение, одобрите действие один раз или добавьте правило самостоятельно в [`/permissions`](#manage-permissions). Чтобы запросы перестали появляться для команды, которая начинается с exec-обёртки, например `watch`, или для команды `find` с действием, например `-delete`, см. [Exec-обёртки и действия `find`](#exec-wrappers-and-find-actions).31Иногда запрос разрешения предлагает только одноразовое одобрение, без опции "не спрашивать снова" и без опции разрешить действие на остаток сеанса. Claude Code предлагает эти опции только когда запрос может показать вам всё, что они позволили бы, поэтому правило, которое вы сохраняете из запроса, охватывает только то, что названо его опцией. Когда запрос предлагает только одноразовое одобрение, одобрите действие один раз или добавьте правило самостоятельно в [`/permissions`](#manage-permissions). Чтобы запросы перестали появляться для команды, которая начинается с exec-обёртки, например `watch`, или для команды `find` с действием, например `-delete`, см. [Exec-обёртки и действия `find`](#exec-wrappers-and-find-actions).

34 32 

35### Добавьте комментарий при ответе на запрос разрешения33### Добавьте комментарий при ответе на запрос разрешения


59 57 

60Широкое правило deny, такое как `Bash(aws *)`, блокирует каждый совпадающий вызов, включая вызовы, которые также совпадают с более узким правилом allow, таким как `Bash(aws s3 ls)`. Правило allow не может создать исключение из правила deny. Тот же приоритет применяется между ask и allow: совпадающее правило ask выдает запрос даже когда более специфичное правило allow также совпадает с тем же вызовом.58Широкое правило deny, такое как `Bash(aws *)`, блокирует каждый совпадающий вызов, включая вызовы, которые также совпадают с более узким правилом allow, таким как `Bash(aws s3 ls)`. Правило allow не может создать исключение из правила deny. Тот же приоритет применяется между ask и allow: совпадающее правило ask выдает запрос даже когда более специфичное правило allow также совпадает с тем же вызовом.

61 59 

62Правила Deny ведут себя по-разному в зависимости от того, называют ли они инструмент или определяют область действия шаблона внутри него. Простое имя инструмента, такое как `Bash`, удаляет инструмент из контекста Claude полностью, поэтому Claude его никогда не видит. Если вы добавите такое правило во время сеанса, Claude не сможет вызвать инструмент со своего следующего вызова инструмента; [Отказ от целого инструмента](https://code.claude.com/docs/ru/prompt-caching.md#denying-an-entire-tool) описывает, что происходит с определением, которое Claude уже видел. Правило с областью действия, такое как `Bash(rm *)`, оставляет инструмент доступным и блокирует совпадающие вызовы, когда Claude пытается их выполнить.60Правила Deny ведут себя по-разному в зависимости от того, называют ли они инструмент или определяют область действия шаблона внутри него. Простое имя инструмента, такое как `Bash`, удаляет инструмент из контекста Claude полностью, поэтому Claude его никогда не видит. Если вы добавите такое правило во время сеанса, Claude не сможет вызвать инструмент со своего следующего вызова инструмента; [Запрет инструмента целиком](https://code.claude.com/docs/ru/prompt-caching.md#denying-an-entire-tool) описывает, что происходит с определением, которое Claude уже видел. Правило с областью действия, такое как `Bash(rm *)`, оставляет инструмент доступным и блокирует совпадающие вызовы, когда Claude пытается их выполнить.

63 61 

64Удаление по простому имени применяется ко всем инструментам, кроме [`EndConversation`](https://code.claude.com/docs/ru/tools-reference#endconversation-tool-behavior): правило deny не может удалить его, пока остается любой другой инструмент, и правило ask никогда не выдает запрос для него.62Удаление по простому имени применяется ко всем инструментам, кроме [`EndConversation`](https://code.claude.com/docs/ru/tools-reference#endconversation-tool-behavior): правило deny не может удалить его, пока остается любой другой инструмент, и правило ask никогда не выдает запрос для него.

65 63 


218 216 

219> [!TIP]217> [!TIP]

220>218>

221> Claude Code учитывает операторы оболочки, поэтому правило вида `Bash(safe-cmd *)` не даст разрешения на выполнение команды `safe-cmd && other-cmd`. Распознаваемые разделители команд: `&&`, `||`, `;`, `|`, `|&`, `&` и переводы строк. Правило должно соответствовать каждой подкоманде по отдельности.219> Claude Code учитывает операторы оболочки, поэтому правило вида `Bash(safe-cmd *)` не даст разрешения на выполнение команды `safe-cmd && other-cmd`. Распознаваемые разделители команд: `&&`, `||`, `;`, `|`, `|&`, `&` и переводы строк. Чтобы составная команда выполнялась без запроса подтверждения, должна быть разрешена каждая её подкоманда, например потому, что подкоманда соответствует правилу allow или является [командой только для чтения](#read-only-commands).

222 220 

223Правила deny и ask применяются, когда им соответствует любая подкоманда, включая команду, вложенную в подоболочку, подстановку команды или тело управляющей конструкции, например цикла `for`. Правило ask вида `Bash(git clean *)` по-прежнему запрашивает у вас подтверждение для `cd /tmp && git clean -f` или `echo "$(git clean -f)"`, даже в [авторежиме](https://code.claude.com/docs/ru/permission-modes.md#eliminate-prompts-with-auto-mode).221Правила deny и ask применяются, когда им соответствует любая подкоманда, включая команду, вложенную в подоболочку, подстановку команды или тело управляющей конструкции, например цикла `for`. Правило ask вида `Bash(git clean *)` по-прежнему запрашивает у вас подтверждение для `cd /tmp && git clean -f` или `echo "$(git clean -f)"`, даже в [авторежиме](https://code.claude.com/docs/ru/permission-modes.md#eliminate-prompts-with-auto-mode).

224 222 


314 312 

315### PowerShell313### PowerShell

316 314 

317Правила разрешений PowerShell имеют ту же форму, что и правила Bash. Подстановочные знаки `*` сопоставляются в любой позиции, суффикс `:*` эквивалентен завершающему ` *`, а простой `PowerShell` или `PowerShell(*)` соответствует любой команде. Эта конфигурация разрешает команды `Get-ChildItem` и `git commit`, блокируя `Remove-Item`:315Правила разрешений PowerShell имеют ту же форму, что и [правила Bash](#wildcard-patterns), а простой `PowerShell` или `PowerShell(*)` соответствует любой команде. Эта конфигурация разрешает команды `Get-ChildItem` и `git commit`, блокируя `Remove-Item`:

318 316 

319```json theme={null}317```json theme={null}

320{318{


330}328}

331```329```

332 330 

333Распространённые псевдонимы приводятся к каноническому виду перед сопоставлением. Правило, написанное для имени командлета, также соответствует его псевдонимам, поэтому `PowerShell(Get-ChildItem *)` соответствует также `gci`, `ls` и `dir`. Сопоставление не зависит от регистра.331Распространённые псевдонимы приводятся к каноническому виду перед сопоставлением. Правило, написанное для имени командлета, также соответствует этим псевдонимам, поэтому `PowerShell(Get-ChildItem *)` также соответствует `gci`, `ls` и `dir`. Сопоставление выполняется без учёта регистра.

334 332 

335Claude Code разбирает AST PowerShell и проверяет каждую команду в составной команде независимо. Операторы конвейера `|`, разделители инструкций `;`, а в PowerShell 7+ операторы цепочки `&&` и `||` разделяют составную команду на подкоманды. Чтобы составная команда была разрешена, правило должно соответствовать каждой подкоманде.333Claude Code разбирает AST PowerShell и проверяет каждую команду в составной команде независимо. Операторы конвейера `|`, разделители инструкций `;`, а в PowerShell 7+ операторы цепочки `&&` и `||` разделяют составную команду на подкоманды. Чтобы составная команда выполнялась без запроса подтверждения, должна быть разрешена каждая её подкоманда, например за счёт соответствия правилу allow.

336 334 

337### Read и Edit335### Read и Edit

338 336 


390 388 

391Правило, добавленное через `/permissions`, следует строке для файла настроек, в который вы его сохраняете.389Правило, добавленное через `/permissions`, следует строке для файла настроек, в который вы его сохраняете.

392 390 

393В v2.1.211 и новее правила локальных настроек привязываются к [основному рабочему каталогу](#working-directories) сессии, а не к корню репозитория, где Claude Code [хранит файл](#permission-system). В сессии, запущенной из корня репозитория, эти каталоги совпадают; в сессии [worktree](https://code.claude.com/docs/ru/worktrees.md) общее правило вида `Edit(/src/**)` соответствует собственному каталогу `src/` этого worktree.391Правила локальных настроек привязываются к [основному рабочему каталогу](#working-directories) сессии, а не к корню репозитория, где Claude Code [хранит файл](#permission-system). В сессии, запущенной из корня репозитория, эти каталоги совпадают; в сессии [worktree](https://code.claude.com/docs/ru/worktrees.md) общее правило вида `Edit(/src/**)` соответствует собственному каталогу `src/` этого worktree.

394 392 

395Правило deny вида `Read(/secrets/**)` в пользовательских настройках блокирует `~/.claude/secrets/**`, а не каталог `secrets` в вашем проекте. Чтобы написать в пользовательских настройках правило, действующее внутри каждого проекта, используйте абсолютный путь с `//` или путь относительно домашнего каталога с `~/`.393Правило deny вида `Read(/secrets/**)` в пользовательских настройках блокирует `~/.claude/secrets/**`, а не каталог `secrets` в вашем проекте. Чтобы написать в пользовательских настройках правило, действующее внутри каждого проекта, используйте абсолютный путь с `//` или путь относительно домашнего каталога с `~/`.

396 394 


524 522 

525Чтобы читать файлы на сетевом ресурсе без этого запроса, сначала назначьте ресурсу локальный путь:523Чтобы читать файлы на сетевом ресурсе без этого запроса, сначала назначьте ресурсу локальный путь:

526 524 

527* **Windows**: подключите ресурс как букву диска и передайте диск через `--add-dir` при запуске Claude Code, как описано в разделе [Рабочие каталоги](#working-directories). Чтение на диске, который вы добавите позже через `/add-dir` или укажете в `additionalDirectories` в файле настроек, по-прежнему запрашивает подтверждение. Чтобы избавиться от этих запросов для ресурса, подключённого как `Z:`, запустите новую сессию в PowerShell командой `claude --add-dir Z:\`.525* **Windows**: подключите ресурс как букву диска и передайте диск через `--add-dir` при запуске Claude Code, как описано в разделе [Рабочие каталоги](#working-directories). Для ресурса, подключённого как `Z:`, выполните `claude --add-dir Z:\` в PowerShell.

528* **macOS и Linux**: смонтируйте ресурс по локальному пути, например в каталог внутри `/mnt` или `/Volumes`, и читайте файлы оттуда, как описано в разделе [Рабочий каталог является сетевым путём](https://code.claude.com/docs/ru/errors.md#working-directory-is-a-network-path)526* **macOS и Linux**: смонтируйте ресурс по локальному пути, например в каталог внутри `/mnt` или `/Volumes`, и читайте файлы оттуда, как описано в разделе [Рабочий каталог является сетевым путём](https://code.claude.com/docs/ru/errors.md#working-directory-is-a-network-path)

529 527 

530### WebFetch528### WebFetch


711 709 

712Чтобы загрузить skills, команды и subagents из подкаталога вашего [основного рабочего каталога](#working-directories) в середине сеанса, запустите `/add-dir` с путём этого подкаталога. Claude Code загружает их на оставшуюся часть сеанса без запроса или добавления рабочего каталога, потому что подкаталог уже читаем. Это требует Claude Code версии 2.1.257 или позже.710Чтобы загрузить skills, команды и subagents из подкаталога вашего [основного рабочего каталога](#working-directories) в середине сеанса, запустите `/add-dir` с путём этого подкаталога. Claude Code загружает их на оставшуюся часть сеанса без запроса или добавления рабочего каталога, потому что подкаталог уже читаем. Это требует Claude Code версии 2.1.257 или позже.

713 711 

714Claude Code обнаруживает стили вывода из текущего рабочего каталога и его родителей, вашего пользовательского каталога в `~/.claude/` и управляемых параметров. Hooks и другие ключи `.claude/settings.json` загружаются из папки `.claude/` текущего рабочего каталога без резервного варианта для родительского каталога, наряду с вашим пользовательским файлом `~/.claude/settings.json` и управляемыми параметрами. `.claude/settings.local.json` загружается из корня репозитория git вместо этого, даже когда вы запускаете Claude Code в подкаталоге, кроме случаев, когда Claude Code [не использует корень репозитория](https://code.claude.com/docs/ru/settings.md#where-claude-code-looks-for-each-file), например на Windows; до версии 2.1.211 он тоже загружался только из текущего рабочего каталога. Сеансы [Agent SDK](https://code.claude.com/docs/ru/agent-sdk/claude-code-features.md#control-filesystem-settings-with-settingsources) загружают его из рабочего каталога во всех версиях.712#### Откуда загружаются стили вывода, хуки и локальные настройки

713 

714Claude Code обнаруживает стили вывода в текущем рабочем каталоге и его родительских каталогах, в вашем пользовательском каталоге `~/.claude/` и в управляемых настройках. Хуки и другие ключи `.claude/settings.json` загружаются из папки `.claude/` текущего рабочего каталога без резервного варианта в виде родительского каталога, наряду с вашим пользовательским файлом `~/.claude/settings.json` и управляемыми настройками.

715 

716`.claude/settings.local.json` вместо этого загружается из корня репозитория git, даже когда вы запускаете Claude Code в подкаталоге, кроме случаев, когда Claude Code [не использует корень репозитория](https://code.claude.com/docs/ru/settings.md#where-claude-code-looks-for-each-file), например в Windows.

715 717 

716Чтобы поделиться этой конфигурацией между проектами, используйте один из этих подходов:718Чтобы поделиться этой конфигурацией между проектами, используйте один из этих подходов:

717 719 

Details

347 347 

348Отклонённый `$.prompt.submit` разрешается с `{ drop: '<reason>' }`. Другие отклонённые вызовы, например `$.command.run` и `$.agent.spawn`, дают результаты, показанные в разделе [Что возвращают отклонённые вызовы](#what-refused-calls-return), с причиной вместо `<reason>`. Найдите свою `<reason>` ниже, чтобы узнать, что делать:348Отклонённый `$.prompt.submit` разрешается с `{ drop: '<reason>' }`. Другие отклонённые вызовы, например `$.command.run` и `$.agent.spawn`, дают результаты, показанные в разделе [Что возвращают отклонённые вызовы](#what-refused-calls-return), с причиной вместо `<reason>`. Найдите свою `<reason>` ниже, чтобы узнать, что делать:

349 349 

350* **`the run reached its --max-turns limit`**: ходы от промптов вашего мода и от запущенных им субагентов учитываются в [`--max-turns`](https://code.claude.com/docs/ru/cli-reference#cli-flags) или в [ограничении ходов](https://code.claude.com/docs/ru/agent-sdk/configuration.md#limit-turns-and-spend) Agent SDK. Чтобы получить больше ходов, запустите сессию с более высоким ограничением. Если это невозможно, сделайте так, чтобы ваш мод перестал выполнять отклоняемый вызов. Если запуск получает ещё один промпт от пользователя или приложения SDK, счётчик ходов сбрасывается, и запуск снова принимает вызовы.350* **`the run reached its --max-turns limit`**: ходы от промптов вашего мода и от запущенных им субагентов учитываются в [`--max-turns`](https://code.claude.com/docs/ru/cli-reference#cli-flags) или в [ограничении ходов](https://code.claude.com/docs/ru/agent-sdk/configuration.md#limit-turns-and-spend) Agent SDK. Чтобы получить больше ходов, начните запуск с более высоким ограничением. Если это невозможно, сделайте так, чтобы ваш мод перестал выполнять отклоняемый вызов. Если запуск получает ещё один промпт от пользователя или приложения SDK, счётчик ходов сбрасывается, и запуск снова принимает вызовы.

351* **`the run is past its --max-budget-usd limit`**: запустите сессию с более высоким `--max-budget-usd` или увеличьте [ограничение расходов](https://code.claude.com/docs/ru/agent-sdk/configuration.md#limit-turns-and-spend) Agent SDK. Если это невозможно, сделайте так, чтобы ваш мод перестал выполнять отклоняемый вызов. Ограничение применяется к общей стоимости запуска на текущий момент. Эта сумма продолжает расти, когда запуск получает ещё один промпт, поэтому повторная попытка возвращает ту же причину.351* **`the run is past its --max-budget-usd limit`**: начните запуск с более высоким `--max-budget-usd` или увеличьте [ограничение расходов](https://code.claude.com/docs/ru/agent-sdk/configuration.md#limit-turns-and-spend) Agent SDK. Если это невозможно, сделайте так, чтобы ваш мод перестал выполнять отклоняемый вызов. Ограничение применяется к общей стоимости запуска на текущий момент. Эта сумма продолжает расти, когда запуск получает ещё один промпт, поэтому повторная попытка возвращает ту же причину.

352* **`the host has ended its input`**: например, приложение SDK завершило свой [потоковый ввод](https://code.claude.com/docs/ru/agent-sdk/streaming-vs-single-mode.md) или закрылся stdin в запуске, начатом с [`--input-format stream-json`](https://code.claude.com/docs/ru/cli-reference#cli-flags). Запуск завершается и больше не принимает ввод, поэтому повторная попытка возвращает ту же причину. Сделайте так, чтобы ваш мод перестал выполнять отклоняемый вызов. Если вы сами начинаете запуск, в следующий раз держите этот ввод открытым, пока вашему моду не останется делать вызовов.352* **`the host has ended its input`**: например, приложение SDK завершило свой [потоковый ввод](https://code.claude.com/docs/ru/agent-sdk/streaming-vs-single-mode.md) или закрылся stdin в запуске, начатом с [`--input-format stream-json`](https://code.claude.com/docs/ru/cli-reference#cli-flags). Запуск завершается и больше не принимает ввод, поэтому повторная попытка возвращает ту же причину. Сделайте так, чтобы ваш мод перестал выполнять отклоняемый вызов. Если вы сами начинаете запуск, в следующий раз держите этот ввод открытым, пока вашему моду не останется делать вызовов.

353* **`the session was stopped and nobody has sent input since`**: запуск был [прерван](#calls-and-background-work-after-the-user-interrupts-a-turn), например с помощью [`interrupt()`](https://code.claude.com/docs/ru/agent-sdk/typescript#query-object) в Agent SDK. Чтобы повторить вызов после следующего сообщения от пользователя или приложения SDK, следуйте разделу [Повторная попытка отклонённого или отброшенного вызова](#retry-a-refused-or-dropped-call).353* **`the session was stopped and nobody has sent input since`**: запуск был [прерван](#calls-and-background-work-after-the-user-interrupts-a-turn), например с помощью [`interrupt()`](https://code.claude.com/docs/ru/agent-sdk/typescript#query-object) в Agent SDK. Чтобы повторить вызов после следующего сообщения от пользователя или приложения SDK, следуйте разделу [Повторная попытка отклонённого или отброшенного вызова](#retry-a-refused-or-dropped-call).

354 354 

Details

313 313 

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

315 315 

316#### Отправить запрос другой модели

317 

318Если запрос `turn.step` завершается ошибкой модели, когда `model` — это псевдоним, например `haiku`, обновитесь до Claude Code v2.1.309 или новее либо используйте полный идентификатор модели. До v2.1.309 псевдоним отправлялся в том виде, в каком был записан.

319 

320Чтобы отправить запрос другой модели, передайте в `next` событие с изменённым `model`, как в `yield* next({ ...e, model: 'haiku' })`.

321 

316### Изменить чтение настроек или отказать в нём322### Изменить чтение настроек или отказать в нём

317 323 

318Хук `settings.read` запускается при чтении настроек модом и при собственном чтении Claude Code:324Используйте хук `settings.read`, чтобы изменить чтение настроек или отказать в нём — как чтение модом, так и собственное чтение Claude Code:

319 325 

320* **Чтение модом**: мод вызывает [`$.settings.read`](https://code.claude.com/docs/ru/plugins/mods/api#read-one-source-or-one-key).326* **Чтение модом**: мод вызывает [`$.settings.read`](https://code.claude.com/docs/ru/plugins/mods/api#read-one-source-or-one-key).

321* **Собственное чтение Claude Code**: Claude Code формирует объединённые настройки сессии. Это чтение повторяется при изменении настроек или загруженных плагинов.327* **Собственное чтение Claude Code**: ваш хук впервые запускается, когда Claude Code объединяет настройки сессии, после загрузки модов сессии. Ваш хук запускается снова при изменении настроек или загруженных плагинов.

322 328 

323Прежде чем полагаться на любое из этих чтений, проверьте встроенного стража и свою версию:329Проверьте, какие моды получают это событие, и свою версию Claude Code:

324 330 

325* **Встроенный страж**: при наличии управляемых настроек или когда учётными данными сессии служит [`/login`](https://code.claude.com/docs/ru/authentication#authentication-precedence) Team или Enterprise, [встроенный страж](https://code.claude.com/docs/ru/plugins/mods/admin.md#know-what-happens-by-default) может пропускать этот хук в моде, который вы устанавливаете или загружаете с помощью `--plugin-dir`. Чтобы проверить это, найдите в [отладочном логе](https://code.claude.com/docs/ru/plugins/mods/troubleshoot.md#read-the-debug-log) `settings.read bypassed by cc-plugin-sec-default`. Если строка с этим текстом называет ваш мод, попросите администратора вашей организации [установить мод как один из модов организации](https://code.claude.com/docs/ru/plugins/mods/admin.md#install-your-organizations-mods).331* **Встроенный страж**: при наличии управляемых настроек или когда учётными данными сессии служит [`/login`](https://code.claude.com/docs/ru/authentication#authentication-precedence) Team или Enterprise, [встроенный страж](https://code.claude.com/docs/ru/plugins/mods/admin.md#know-what-happens-by-default) может пропускать этот хук в моде, который вы устанавливаете или загружаете с помощью `--plugin-dir`. Чтобы проверить это, найдите в [отладочном логе](https://code.claude.com/docs/ru/plugins/mods/troubleshoot.md#read-the-debug-log) `settings.read bypassed by cc-plugin-sec-default`. Если строка с этим текстом называет ваш мод, попросите администратора вашей организации [установить мод как один из модов организации](https://code.claude.com/docs/ru/plugins/mods/admin.md#install-your-organizations-mods).

326* **Версия**: для срабатывания события при собственном чтении Claude Code и для поля `e.layers` требуется Claude Code v2.1.304 или новее.332* **Версия**: для срабатывания события при собственном чтении Claude Code и для поля `e.layers` требуется Claude Code v2.1.304 или новее.


336 342 

337#### Отличить собственное чтение Claude Code от чтения модом343#### Отличить собственное чтение Claude Code от чтения модом

338 344 

339При [собственном чтении Claude Code](#settings-read-hook) [`next.origin`](https://code.claude.com/docs/ru/plugins/mods/reference#the-hook-function) равно `{ plugin: 'engine', tier: 'core' }`, а при чтении модом `next.origin.plugin` — это имя вызывающего мода.345Проверьте [`next.origin`](https://code.claude.com/docs/ru/plugins/mods/reference#the-hook-function):

346 

347* **Собственное чтение Claude Code**: `{ plugin: 'engine', tier: 'core' }`

348* **Чтение модом**: `plugin` — это имя вызывающего мода

340 349 

341#### Что может вернуть хук `settings.read`350#### Что может вернуть хук `settings.read`

342 351 

343Ваш хук может вернуть результат [`next(e)`](https://code.claude.com/docs/ru/plugins/mods/reference#the-hook-function) без изменений, собственный `{ value }` или `{ deny: reason }`. При [собственном чтении Claude Code](#settings-read-hook) и при чтении модом `{ value }` заменяет то, что даёт чтение, а `{ deny: reason }` отказывает в чтении:352Верните результат [`next(e)`](#settings-read-next) без изменений, чтобы оставить чтение как есть, или верните одно из следующих значений:

344 353 

345| Возвращаемое значение | При собственном чтении Claude Code | При чтении модом |354| Возвращаемое значение | При [собственном чтении Claude Code](#settings-read-hook) | При чтении модом |

346| :- | :- | :- |355| :- | :- | :- |

347| `{ value }` | Для каждого изменённого вами ключа возвращённое вами значение заменяет всё значение этого ключа в объединённых настройках сессии, если оно [соответствует схеме ключа](https://code.claude.com/docs/ru/plugins/mods/troubleshoot.md#settings-read-key-refused) | Вызов этого мода разрешается в ваш `value` или в запрошенный им `key`, взятый из вашего `value`, поэтому возвращайте целый объект, а не массив |356| `{ value }` | Для каждого изменённого ключа вы заменяете всё его значение в объединённых настройках сессии, если ваше значение [соответствует схеме ключа](https://code.claude.com/docs/ru/plugins/mods/troubleshoot.md#settings-read-key-refused) | Вызов этого мода разрешается в ваш `value` или в запрошенный им `key`, взятый из вашего `value`, поэтому возвращайте целый объект, а не массив |

348| `{ deny: reason }` | Сессия сохраняет настройки в том виде, в каком они были объединены до ответа любого хука, а [отладочный лог записывает ваш `reason`](https://code.claude.com/docs/ru/plugins/mods/troubleshoot#settings-read-refused) | Вызов этого мода отклоняется с `<calling mod>: $.settings.read: <reason>` |357| `{ deny: reason }` | Сессия сохраняет настройки в том виде, в каком они были объединены до ответа любого хука, а [отладочный лог записывает ваш `reason`](https://code.claude.com/docs/ru/plugins/mods/troubleshoot#settings-read-refused) | Вызов этого мода отклоняется с `<calling mod>: $.settings.read: <reason>` |

349 358 

350При собственном чтении Claude Code формируйте свой `{ value }` на основе [`value` из `next(e)`](#settings-read-next), поскольку ключ, который вы опустите, окажется не задан. Если Claude Code читает ключ, например `env`, из каждого источника отдельно, его изменение в вашем `value` [ни на что не влияет](https://code.claude.com/docs/ru/plugins/mods/troubleshoot.md#settings-read-key-no-effect).359При собственном чтении Claude Code формируйте свой `{ value }` на основе [`value` из `next(e)`](#settings-read-next), поскольку ключ, который вы опустите, окажется не задан. Если Claude Code читает ключ, например `env`, из каждого источника отдельно, его изменение в вашем `value` [ни на что не влияет](https://code.claude.com/docs/ru/plugins/mods/troubleshoot.md#settings-read-key-no-effect).


373})382})

374```383```

375 384 

376Если при собственном чтении Claude Code ваш хук возвращает значение вне схемы ключа, например строку, только этот ключ сохраняет значение, объединённое до ответа любого хука. В этом случае отладочный лог сообщает [`the answer for <key> is no value the key can hold`](https://code.claude.com/docs/ru/plugins/mods/troubleshoot#settings-read-key-refused). Если ваше значение подходит, а ключ всё равно не меняется, см. [почему возвращённый ключ ни на что не влияет](https://code.claude.com/docs/ru/plugins/mods/troubleshoot.md#settings-read-key-no-effect).385Если при собственном чтении Claude Code ваш хук возвращает значение вне схемы ключа, например строку, только этот ключ сохраняет значение, объединённое до ответа любого хука. В этом случае отладочный лог сообщает [`the answer for <key> is no value the key can hold`](https://code.claude.com/docs/ru/plugins/mods/troubleshoot#settings-read-key-refused). Если ваше значение подходит, а ключ всё равно не меняется, см. [почему ключ не вступает в силу](https://code.claude.com/docs/ru/plugins/mods/troubleshoot.md#settings-read-key-no-effect).

377 386 

378### Обработка событий хуков настроек387### Обработка событий хуков настроек

379 388 

Details

421Note: Type a note and press Enter421Note: Type a note and press Enter

422```422```

423 423 

424Добавьте `rows`, чтобы поле могло вмещать несколько строк. Enter по-прежнему отправляет текст, а обратная косая черта перед Enter начинает новую строку, как и Shift+Enter там, где [терминал это поддерживает](https://code.claude.com/docs/ru/terminal-config.md#enter-multiline-prompts). В галерее показано [поле с `rows`](https://code.claude.com/docs/ru/plugins/mods/gallery#input).424Задайте для `rows` значение 2 или больше, чтобы получить [поле, вмещающее несколько строк](https://code.claude.com/docs/ru/plugins/mods/gallery.md#input).

425 425 

426В [галерее интерфейсов](https://code.claude.com/docs/ru/plugins/mods/gallery.md) есть примеры и снимки экрана большинства элементов. Эта таблица перечисляет каждый элемент:426В [галерее интерфейсов](https://code.claude.com/docs/ru/plugins/mods/gallery.md) есть примеры и снимки экрана большинства элементов. Эта таблица перечисляет каждый элемент:

427 427 


546| Клавиша | Что она делает |546| Клавиша | Что она делает |

547| :- | :- |547| :- | :- |

548| Tab | Переходит к следующему элементу управления |548| Tab | Переходит к следующему элементу управления |

549| Up и Down | Перемещаются между элементами управления, пока ваше рисование подходит. Когда панель или полоса имеет больше строк, чем может показать, они прокручивают ее. В `Input` они сначала [перемещают между строками поля](https://code.claude.com/docs/ru/plugins/mods/gallery.md#input). |549| Up и Down | Перемещаются между элементами управления, пока ваше рисование подходит. Когда панель или полоса имеет больше строк, чем может показать, они прокручивают ее. В `Input` в терминале они [перемещают между строками поля](https://code.claude.com/docs/ru/plugins/mods/gallery.md#input), а с его первой или последней строки переходят к элементу управления перед ним или после него. |

550| Enter | Нажимает сфокусированный `Button`, отправляет сфокусированный `Input` или выбирает в `Select` |550| Enter | Нажимает сфокусированный `Button`, отправляет сфокусированный `Input` или выбирает в `Select` |

551| Горячая клавиша кнопки | Нажимает эту кнопку. Пока `Input` имеет фокус, каждая печатаемая клавиша идет в поле. |551| Горячая клавиша кнопки | Нажимает эту кнопку. Пока `Input` имеет фокус, каждая печатаемая клавиша идет в поле. |

552| Page Up, Page Down, Home и End | Прокручивают вашу панель или полосу, когда в ней больше строк, чем она может показать |552| Page Up, Page Down, Home и End | Прокручивают вашу панель или полосу, когда в ней больше строк, чем она может показать |

Details

110 110 

111### Команды и конфигурация111### Команды и конфигурация

112 112 

113События команд и конфигурации срабатывают, когда команда запускается или попадает в список, когда строка `/config` показывается или изменяется, а также при чтении настроек:

114 

115| Событие | Срабатывает, когда | Хук может вернуть |113| Событие | Срабатывает, когда | Хук может вернуть |

116| :- | :- | :- |114| :- | :- | :- |

117| [`command.run`](https://code.claude.com/docs/ru/plugins/mods/api#add-a-command) | Команда вот-вот запустится | `{ text }`, `{}` или `next(e)` |115| [`command.run`](https://code.claude.com/docs/ru/plugins/mods/api#add-a-command) | Команда вот-вот запустится | `{ text }`, `{}` или `next(e)` |

118| `command.describe` | Один раз для каждой команды, для списка команд | `{ description, argumentHint, isHidden }` |116| `command.describe` | Один раз для каждой команды, для списка команд | `{ description, argumentHint, isHidden }` |

119| `config.set` | Строка `/config` вот-вот изменится | `next({ ...e, value })` или `{ deny: reason }` |117| `config.set` | Строка `/config` вот-вот изменится | `next({ ...e, value })` или `{ deny: reason }` |

120| `config.describe` | Один раз для каждой строки `/config` | `{ label, description, isHidden }` |118| `config.describe` | Один раз для каждой строки `/config` | `{ label, description, isHidden }` |

121| [`settings.read`](https://code.claude.com/docs/ru/plugins/mods/events#settings-read-hook) | Мод вызывает [`$.settings.read`](https://code.claude.com/docs/ru/plugins/mods/api#reach-files-processes-and-the-network) или Claude Code формирует объединённые настройки сессии | `next(e)`, `{ value }` или `{ deny: reason }` |119| [`settings.read`](https://code.claude.com/docs/ru/plugins/mods/events#settings-read-hook) | Мод вызывает [`$.settings.read`](https://code.claude.com/docs/ru/plugins/mods/api#reach-files-processes-and-the-network) или Claude Code формирует объединённые настройки сессии. Для собственного чтения Claude Code и для `e.layers` требуется Claude Code v2.1.304 или новее | `next(e)`, `{ value }` или `{ deny: reason }` |

122 120 

123#### `e.layers` и `e.source` в `settings.read`121#### `e.layers` и `e.source` в `settings.read`

124 122 

125* **`e.layers`**: по одному объекту `{ source, settings }` для каждого используемого источника, содержащего настройки, начиная с самого низкого [приоритета](https://code.claude.com/docs/ru/settings.md#settings-precedence). См. [Что получает хук `settings.read`](https://code.claude.com/docs/ru/plugins/mods/events#settings-read-receives).123* **`e.layers`**: по одному объекту `{ source, settings }` для каждого используемого источника, содержащего настройки, начиная с самого низкого [приоритета](https://code.claude.com/docs/ru/settings.md#settings-precedence). См. [Что получает хук `settings.read`](https://code.claude.com/docs/ru/plugins/mods/events#settings-read-receives).

126* **`e.source`**: единственный источник, который запросил мод, например `$.settings.read({ source: 'policy' })`. Отсутствует при собственном чтении Claude Code и при любом другом чтении объединённых настроек124* **`e.source`**: единственный источник, который запросил мод, например `$.settings.read({ source: 'policy' })`. Отсутствует при собственном чтении Claude Code и при чтении объединённых настроек

127 

128В `settings.read` срабатывание события при собственном чтении Claude Code и поле `e.layers` требуют Claude Code v2.1.304 или новее. О том, когда запускается хук и что он может вернуть, с примером, см. [Изменение или отклонение чтения настроек](https://code.claude.com/docs/ru/plugins/mods/events.md#settings-read-hook).

129 125 

130### Ходы126### Ходы

131 127 


271| :- | :- | :-: | :-: | :-: |267| :- | :- | :-: | :-: | :-: |

272| [`Box`](https://code.claude.com/docs/ru/plugins/mods/interface#build-a-tree-from-elements) | `key`, flex-раскладка, [`gap`, `padding`, `margin`](#box-spacing-steps), `width`, `height`, `minWidth`, `minHeight`, [`borderStyle`](#box-border-styles), `borderColor`, `borderDimColor`, `backgroundColor`, `position`, `top`, `left`, `right`, `bottom`, `overflow`, `display`, `hover` | ✓ | ✓ | ✓ |268| [`Box`](https://code.claude.com/docs/ru/plugins/mods/interface#build-a-tree-from-elements) | `key`, flex-раскладка, [`gap`, `padding`, `margin`](#box-spacing-steps), `width`, `height`, `minWidth`, `minHeight`, [`borderStyle`](#box-border-styles), `borderColor`, `borderDimColor`, `backgroundColor`, `position`, `top`, `left`, `right`, `bottom`, `overflow`, `display`, `hover` | ✓ | ✓ | ✓ |

273| [`Text`](https://code.claude.com/docs/ru/plugins/mods/interface#build-a-tree-from-elements) | `color`, `backgroundColor`, [`bold`](#text-bold), `italic`, `underline`, `strikethrough`, `dimColor`, `inverse`, `wrap`, [`size`, `weight`, `mono`, `tabular`](#text-typography), `hover` | ✓ | ✓ | ✓ |269| [`Text`](https://code.claude.com/docs/ru/plugins/mods/interface#build-a-tree-from-elements) | `color`, `backgroundColor`, [`bold`](#text-bold), `italic`, `underline`, `strikethrough`, `dimColor`, `inverse`, `wrap`, [`size`, `weight`, `mono`, `tabular`](#text-typography), `hover` | ✓ | ✓ | ✓ |

274| [`Button`](https://code.claude.com/docs/ru/plugins/mods/interface#respond-to-presses-and-typing) | `key`, `label`, `onPress`, `hotkey`, `plain`, `dimColor`, `autoFocus`, `action`, `hover` | ✓ | ✓ | ✓ |270| [`Button`](https://code.claude.com/docs/ru/plugins/mods/interface#respond-to-presses-and-typing) | `key`, `label`, `children`, `onPress`, `hotkey`, `plain`, `dimColor`, `autoFocus`, `action`, `variant`, `role`, `hover` | ✓ | ✓ | ✓ |

275| [`Link`](https://code.claude.com/docs/ru/plugins/mods/interface#link-in-the-desktop-app) | `href`, `label`. См. [Ограничения](#limits). | ✓ | ✓ | ✓ |271| [`Link`](https://code.claude.com/docs/ru/plugins/mods/interface#link-in-the-desktop-app) | `href`, `label`. См. [Ограничения](#limits). | ✓ | ✓ | ✓ |

276| [`Code`](https://code.claude.com/docs/ru/plugins/mods/gallery#show-code-and-changes) | `source`, `language`, `path`, `startLine`, `format`, `wrap` | ✓ | ✓ | ✓ |272| [`Code`](https://code.claude.com/docs/ru/plugins/mods/gallery#show-code-and-changes) | `source`, `language`, `path`, `startLine`, `format`, `wrap` | ✓ | ✓ | ✓ |

277| `Markdown` | `text`, `key`, `dimColor`, `onLinkPress`, `pressableLinks` | ✓ | ✓ | ✓ |273| `Markdown` | `text`, `key`, `dimColor`, `onLinkPress`, `pressableLinks` | ✓ | ✓ | ✓ |


288* **Цифровые горячие клавиши на полосе**: цифровой `hotkey` на кнопке в полосе также срабатывает, когда пользователь вводит только эту цифру в пустой промпт и делает паузу284* **Цифровые горячие клавиши на полосе**: цифровой `hotkey` на кнопке в полосе также срабатывает, когда пользователь вводит только эту цифру в пустой промпт и делает паузу

289* **Свёрнутая полоса**: пока полоса [свёрнута](https://code.claude.com/docs/ru/plugins/mods/interface.md#when-the-user-collapses-the-band), ни привязка `action`, ни горячая клавиша не нажимают кнопку в ней285* **Свёрнутая полоса**: пока полоса [свёрнута](https://code.claude.com/docs/ru/plugins/mods/interface.md#when-the-user-collapses-the-band), ни привязка `action`, ни горячая клавиша не нажимают кнопку в ней

290* **Две кнопки с одной горячей клавишей**: если две кнопки в одной отрисовке указывают один и тот же `hotkey`, он достаётся более поздней286* **Две кнопки с одной горячей клавишей**: если две кнопки в одной отрисовке указывают один и тот же `hotkey`, он достаётся более поздней

287* **`variant`**: `primary` или `secondary`, любое другое значение вызывает исключение. В терминале кнопка `primary` рисуется акцентным цветом, если она не `plain`.

288* **`role`**: `dismiss` помечает кнопку закрытия, любое другое значение вызывает исключение. Само закрытие выполняйте в своём `onPress`. В полосе, содержащей текст и ряд кнопок, приложение Desktop может нарисовать первую кнопку `dismiss` в ряду как собственный элемент управления закрытием. Терминал рисует кнопку так же, как без `role`.

289 

290`Button` может содержать `children` вместо `label`:

291 

292* **Чем могут быть дочерние элементы**: строки и элементы `Text`, например имя, за которым следует приглушённая деталь, или цветная плашка. Claude Code отклоняет любые другие элементы внутри `Button`.

293* **Имя кнопки**: `label` задаёт имя кнопки и по умолчанию равен тексту её дочерних элементов. Задайте `key` или `label` для кнопки, дочерние элементы которой не являются одной строкой.

294* **В терминале**: дочерние элементы рисуются на месте метки, а нажатие в любом месте на них считается одним нажатием, поэтому каждую строку списка можно сделать одной кнопкой

295* **В приложении Desktop и расширении VS Code**: кнопка рисует свой `label`

296 

297> [!NOTE]

298>

299> `Button` с дочерними элементами, отличными от одной строки, требует Claude Code v2.1.295 или более поздней версии.

291 300 

292`autoFocus` на любом элементе управления принимает только `true`, поэтому, чтобы отключить его, опустите этот проп.301`autoFocus` на любом элементе управления принимает только `true`, поэтому, чтобы отключить его, опустите этот проп.

293 302 


295 304 

296* **`Box`**: `position` вместе с его `top`, `left`, `right` и `bottom`, `alignSelf`, `borderDimColor` и `hover`305* **`Box`**: `position` вместе с его `top`, `left`, `right` и `bottom`, `alignSelf`, `borderDimColor` и `hover`

297* **`Text`**: `size`, `mono`, `tabular` и `hover`306* **`Text`**: `size`, `mono`, `tabular` и `hover`

298* **`Button`**: `hotkey`, `plain`, `autoFocus`, `action` и `hover`, поэтому там пользователь нажимает кнопку щелчком или клавишей Enter, когда кнопка в фокусе307* **`Button`**: `hotkey`, `plain`, `autoFocus`, `action` и `hover`, поэтому там пользователь нажимает кнопку щелчком или клавишей Enter, когда кнопка в фокусе. Расширение также игнорирует `variant` и `role`.

299* **`Code`**: `language`, `path`, `startLine`, `format` и `wrap`, поэтому код рисуется без цветов и номеров строк, а блок с `format: 'diff'` показывает необработанный текст diff308* **`Code`**: `language`, `path`, `startLine`, `format` и `wrap`, поэтому код рисуется без цветов и номеров строк, а блок с `format: 'diff'` показывает необработанный текст diff

300* **`Input` и `Select`**: `autoFocus`309* **`Input` и `Select`**: `autoFocus`, а также `rows` у `Input`

301* **`Svg`**: `isInteractive`310* **`Svg`**: `isInteractive`

302 311 

303### Стили рамки `Box`312### Стили рамки `Box`


364| Время выполнения обработчика `.catch` | 1 секунда |373| Время выполнения обработчика `.catch` | 1 секунда |

365| Все хуки `session.end` вместе | Столько же, сколько [бюджет хука SessionEnd](https://code.claude.com/docs/ru/hooks.md#sessionend-input), — 1,5 секунды, если вы его не измените; отсчёт начинается после завершения хуков `SessionEnd` из ваших настроек |374| Все хуки `session.end` вместе | Столько же, сколько [бюджет хука SessionEnd](https://code.claude.com/docs/ru/hooks.md#sessionend-input), — 1,5 секунды, если вы его не измените; отсчёт начинается после завершения хуков `SessionEnd` из ваших настроек |

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

376| `stdout` и `stderr` для `$.process.run` | По 4 МиБ каждый. `isStdoutTruncated` или `isStderrTruncated` имеет значение `true`, если соответствующий поток был обрезан. |

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

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

369| Тело запроса `$.http.fetch` | 4 МиБ, считается в символах. Вызов с более длинным телом отклоняется. |379| Тело запроса `$.http.fetch` | 4 МиБ, считается в символах. Вызов с более длинным телом отклоняется. |


381| `$.store` | 4 МиБ JSON в сумме |391| `$.store` | 4 МиБ JSON в сумме |

382| `$.session.messages()` | Последние 4 096 записей |392| `$.session.messages()` | Последние 4 096 записей |

383| Перерисовки `$.ui.invalidate('ui.render')` | Ограничены 10 в секунду или 30 в терминале для видимой панели, развёрнутой полосы и строки подсказки под промптом. Более частые вызовы объединяются. |393| Перерисовки `$.ui.invalidate('ui.render')` | Ограничены 10 в секунду или 30 в терминале для видимой панели, развёрнутой полосы и строки подсказки под промптом. Более частые вызовы объединяются. |

384| `$.ui.toast` | Показывается 4 секунды, если не передать `{ timeoutMs }` |394| `$.ui.toast` | Показывается 4 секунды, если не передать `{ timeoutMs }`. В [классическом рендерере](https://code.claude.com/docs/ru/fullscreen.md#enable-fullscreen-rendering) более новое всплывающее уведомление мода может [заменить его более старое уведомление](https://code.claude.com/docs/ru/plugins/mods/troubleshoot.md#a-toast-doesn’t-appear), которое отображается или ожидает показа. |

385| Панель, открытая без запроса пользователя | Размещается начиная со 144 столбцов терминала, со 110 — после того как пользователь однажды её открыл |395| Панель, открытая без запроса пользователя | Размещается начиная со 144 столбцов терминала, со 110 — после того как пользователь однажды её открыл |

396| Глубина вложенности аргументов вызова API модов | 28 000 уровней. При превышении вызов отклоняется с сообщением, оканчивающимся на `nesting deeper than 28000 levels is not supported`. Требуется Claude Code v2.1.299 или новее. |

397| Глубина вложенности изменённого события, переданного в `next`, за пределами [хуков на основе асинхронных генераторов](#events), например хука на `turn.step` | 28 000 уровней. При превышении `next` отклоняется с сообщением, оканчивающимся на `nesting deeper than 28000 levels is not supported`. Требуется Claude Code v2.1.299 или новее. |

398| Глубина вложенности возвращаемого значения хука, за пределами `ui.render`, `ui.resolve` и хуков на основе асинхронных генераторов | 28 000 уровней. При превышении результат хука отклоняется, а [уведомление, сообщающее об этом](https://code.claude.com/docs/ru/plugins/mods/troubleshoot.md#find-out-why-a-mod-does-nothing), содержит `nesting deeper than 28000 levels is not supported`. Требуется Claude Code v2.1.299 или новее. |

386| Области видимости, такие как функции, блоки и циклы, вложенные друг в друга в одном файле модуля хуков | 2 000 |399| Области видимости, такие как функции, блоки и циклы, вложенные друг в друга в одном файле модуля хуков | 2 000 |

387| Имена команд, инструментов, типов субагентов и панелей | Буквы, цифры, `_` и `-`, до 64 символов |400| Имена команд, инструментов, типов субагентов и панелей | Буквы, цифры, `_` и `-`, до 64 символов |

388| Один тест `claude plugin test` | 5 секунд, если тест не задаёт `timeoutMs` |401| Один тест `claude plugin test` | 5 секунд, если тест не задаёт `timeoutMs` |

Details

341 341 

342### Ключ, который возвращает ваш хук `settings.read`, не вступает в силу342### Ключ, который возвращает ваш хук `settings.read`, не вступает в силу

343 343 

344Возвращённые записи `env` не становятся переменными окружения. Возвращённые правила `allow`, `ask` и `deny` не проверяются при вызовах инструментов. Задайте их в [файле настроек](https://code.claude.com/docs/ru/settings.md) или вызовите [`$.env.set`](https://code.claude.com/docs/ru/plugins/mods/api#reach-files-processes-and-the-network) для переменных окружения.344Если вы возвращаете правила разрешений или `env` при [собственном чтении Claude Code](https://code.claude.com/docs/ru/plugins/mods/events.md#settings-read-hook), эти правила не проверяются при вызовах инструментов, а записи `env` не становятся переменными окружения. Используйте для того и другого [файл настроек](https://code.claude.com/docs/ru/settings.md) или [`$.env.set`](https://code.claude.com/docs/ru/plugins/mods/api#reach-files-processes-and-the-network) для `env`.

345 345 

346Для другого ключа проверьте, [какие моды получают `settings.read` и с какой версии](https://code.claude.com/docs/ru/plugins/mods/events#settings-read-hook), затем найдите в [логе отладки](#read-the-debug-log) `settings.read` и поищите одну из следующих строк:346Для другого ключа проверьте, [какие моды получают `settings.read` и с какой версии](https://code.claude.com/docs/ru/plugins/mods/events#settings-read-hook), затем найдите в [логе отладки](#read-the-debug-log) `settings.read` и поищите одну из следующих строк:

347 347 


349| :- | :- |349| :- | :- |

350| `settings.read hook skipped` после имени вашего мода | Ваш хук завершился с ошибкой. [Исправьте ошибку, о которой сообщает строка](#hook-skipped). |350| `settings.read hook skipped` после имени вашего мода | Ваш хук завершился с ошибкой. [Исправьте ошибку, о которой сообщает строка](#hook-skipped). |

351| `settings.read bypassed by cc-plugin-sec-default` в строке, где перед ним указано имя вашего мода | [Встроенный страж](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). |351| `settings.read bypassed by cc-plugin-sec-default` в строке, где перед ним указано имя вашего мода | [Встроенный страж](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). |

352| `settings.read: the answer for <key> is no value the key can hold` | Возвращённое значение не соответствует схеме ключа. [Верните допустимое значение](#settings-read-key-refused). |352| `settings.read: the answer for <key> is no value the key can hold` | Claude Code отклонил значение, которое хук вернул для этого ключа. Это может быть ваш хук или хук другого мода. Выполните [действие для вашего случая](#settings-read-key-refused). |

353| `settings.read: the merge never settles for <key>` | Ключи, указанные в строке, сохраняют значения из источников настроек. Задайте их в файле настроек. |353| `settings.read: the merge never settles for <key>` | Ключи, указанные в строке, сохраняют значения из источников настроек. Задайте их в файле настроек. |

354| `answered settings.read without next()` после имени мода | Имеет значение, только если этот мод [выполняется раньше вашего](https://code.claude.com/docs/ru/plugins/mods/events.md#the-order-mods-run-in). В этом случае ваш хук не выполнился при этом чтении. [Отключите этот мод](https://code.claude.com/docs/ru/plugins/mods/overview.md#turn-mods-on-or-off) или, если его развернула ваша организация, попросите об этом её администратора. |354| `answered settings.read without next()` после имени мода | Это затрагивает ваш хук, если указанный мод [выполняется раньше вашего](https://code.claude.com/docs/ru/plugins/mods/events.md#the-order-mods-run-in). В этом случае ваш хук не выполнился при этом чтении. [Отключите этот мод](https://code.claude.com/docs/ru/plugins/mods/overview.md#turn-mods-on-or-off) или, если его развернула ваша организация, попросите об этом её администратора. |

355| `settings.read: refused to the engine` | В чтении было отказано, поэтому `{ value }` ни одного хука не применилось. [Выясните, кто отказал](#settings-read-refused). |355| `settings.read: refused to the engine` | Ваше значение не применилось, потому что в собственном чтении Claude Code было отказано. [Выясните, кто отказал](#settings-read-refused). |

356 356 

357Если ни одна строка не объясняет ситуацию с ключом, проверьте моды, выполняющиеся раньше вашего, на наличие хука `settings.read`, который [изменяет этот ключ](https://code.claude.com/docs/ru/plugins/mods/events.md#settings-read-example). Отключите такой мод или попросите об этом администратора вашей организации. Если такого хука нет, задайте ключ в файле настроек.357Если ни одна строка не объясняет ситуацию с ключом, проверьте моды, выполняющиеся раньше вашего, на наличие хука `settings.read`, который [изменяет этот ключ](https://code.claude.com/docs/ru/plugins/mods/events.md#settings-read-example). Отключите такой мод или попросите об этом администратора вашей организации. Если такого хука нет, задайте ключ в файле настроек.

358 358 

359### `the answer for <key> is no value the key can hold`359### `the answer for <key> is no value the key can hold`

360 360 

361Эта строка [лога отладки](#read-the-debug-log) означает, что Claude Code отклонил значение, которое ваш хук [`settings.read`](https://code.claude.com/docs/ru/plugins/mods/events#settings-read-hook) вернул для указанного ключа, и только для этого ключа:361Эта строка [лога отладки](#read-the-debug-log) означает, что Claude Code отклонил значение, которое хук [`settings.read`](https://code.claude.com/docs/ru/plugins/mods/events#settings-read-hook) вернул для указанного ключа, и только для этого ключа:

362 362 

363```text theme={null}363```text theme={null}

364settings.read: the answer for <key> is no value the key can hold; the settings' own value stands364settings.read: the answer for <key> is no value the key can hold; the settings' own value stands

365```365```

366 366 

367Значение, которое вы вернули для указанного ключа, не соответствует схеме этого ключа, например по типу или по диапазону. Верните значение, которое допускает запись этого ключа в [справочнике настроек](https://code.claude.com/docs/ru/settings-reference.md). Пока ваше значение не подходит, ключ сохраняет значение, объединённое из источников настроек до ответа какого-либо хука. В строке оно называется собственным значением настроек.367Значение, возвращённое для указанного ключа, не соответствует схеме этого ключа, например по типу или по диапазону.

368 

369* **Ваше значение не соответствует схеме ключа**: верните значение, которое допускает запись этого ключа в [справочнике настроек](https://code.claude.com/docs/ru/settings-reference.md).

370* **Ваше значение подходит**: неподходящее значение пришло из хука `settings.read` другого мода. Чтобы найти этот мод, выполните [шаги по поочерёдному отключению модов](#settings-read-refused). Ищите в каждом новом логе эту строку вместо `refused to the engine`.

371 

372Пока значение не подходит, ключ сохраняет значение, объединённое из источников настроек до ответа какого-либо хука. В строке оно называется собственным значением настроек.

368 373 

369### `settings.read: refused to the engine`374### `settings.read: refused to the engine`

370 375 

371Эта строка [лога отладки](#read-the-debug-log) означает, что в [собственном чтении Claude Code](https://code.claude.com/docs/ru/plugins/mods/events.md#settings-read-hook) было отказано, поэтому `{ value }` ни одного хука не применилось, включая ваш. Когда хук `settings.read` отказывает в этом чтении с помощью [`{ deny: reason }`](https://code.claude.com/docs/ru/plugins/mods/events#settings-read-returns), строка содержит причину, указанную этим хуком:376Эта строка появляется в [логе отладки](#read-the-debug-log), когда в [собственном чтении Claude Code](https://code.claude.com/docs/ru/plugins/mods/events.md#settings-read-hook) отказано, и Claude Code отбрасывает значения всех хуков. Когда хук `settings.read` отказывает в этом чтении с помощью [`{ deny: reason }`](https://code.claude.com/docs/ru/plugins/mods/events#settings-read-returns), строка содержит причину, указанную этим хуком:

372 377 

373```text theme={null}378```text theme={null}

374settings.read: refused to the engine (engine: $.settings.read: <reason>); the settings' own values stand379settings.read: refused to the engine (engine: $.settings.read: <reason>); the settings' own values stand

375```380```

376 381 

377Найдите текст `<reason>` в коде своего хука:382Найдите в своём коде причину, указанную в скобках:

378 383 

379* **Текст есть в вашем коде**: в чтении отказал ваш хук. Сделайте так, чтобы он возвращал `{ value }`, когда [`next.origin`](https://code.claude.com/docs/ru/plugins/mods/events#settings-read-origin) указывает на собственное чтение Claude Code.384* **Текст есть в вашем коде**: в чтении отказал ваш хук. Сделайте так, чтобы он возвращал `{ value }`, когда [`next.origin`](https://code.claude.com/docs/ru/plugins/mods/events#settings-read-origin) указывает на собственное чтение Claude Code.

380* **Текста нет в вашем коде**: [отключайте](https://code.claude.com/docs/ru/plugins/mods/overview.md#turn-mods-on-or-off) другие свои моды по одному. После каждого отключения повторно выполните команду этой сессии из оболочки с одним `--debug-file`, указывающим на новый путь, и найдите в этом файле `refused to the engine`. Если строка есть, отключите следующий мод. Если нет — в чтении отказал последний отключённый вами мод, поэтому оставьте его отключённым.385* **Её нет в вашем коде**: [отключайте](https://code.claude.com/docs/ru/plugins/mods/overview.md#turn-mods-on-or-off) другие свои моды по одному. Если мод развернула ваша организация, попросите её администратора отключить его. После каждого отключения:

386 1. Запустите сессию из оболочки командой `claude --debug-file ./settings-read-2.log`, добавив флаги, с которыми она была запущена. Каждый раз используйте новый путь.

387 2. Найдите в этом файле `refused to the engine`. Если строка есть, отключите следующий мод. Если нет — в чтении отказал последний отключённый вами мод, поэтому оставьте его отключённым.

381 388 

382Если других модов не осталось, используйте [файл настроек](https://code.claude.com/docs/ru/settings.md) для ключей, которые возвращает ваш хук. Его значения действуют, пока в чтении отказано.389Если строка остаётся, а других модов не осталось, задайте ключи, которые возвращает ваш хук, в [файле настроек](https://code.claude.com/docs/ru/settings.md). Его значения действуют, пока в чтении отказано.

383 390 

384## Прочитайте лог отладки391## Прочитайте лог отладки

385 392 

Details

192Расширение VS Code и приложение Desktop также имеют переключатель автоподключения:192Расширение VS Code и приложение Desktop также имеют переключатель автоподключения:

193 193 

194* **Расширение VS Code**: **Enable Remote Control for all sessions** в разделе Settings [меню команд](https://code.claude.com/docs/ru/vs-code.md#use-the-prompt-box).194* **Расширение VS Code**: **Enable Remote Control for all sessions** в разделе Settings [меню команд](https://code.claude.com/docs/ru/vs-code.md#use-the-prompt-box).

195* **Приложение Desktop**: **Settings > Claude Code > Connect new sessions to Remote Control**. См. [Управление тем, какие сессии появляются на других ваших устройствах](https://code.claude.com/docs/ru/desktop.md#control-which-sessions-appear-on-your-other-devices).195* **Приложение Desktop**: **Connect new sessions to Remote Control** в **Settings > Code** или **Settings > Claude Code**. См. [Управление тем, какие сессии появляются на других ваших устройствах](https://code.claude.com/docs/ru/desktop.md#control-which-sessions-appear-on-your-other-devices).

196 196 

197Чтобы вместо этого включить автоподключение из файла параметров, установите [`remoteControlAtStartup`](https://code.claude.com/docs/ru/settings-reference#remotecontrolatstartup) на `true` в ваш пользовательский файл `~/.claude/settings.json` или в [управляемые параметры](https://code.claude.com/docs/ru/managed-settings.md). В параметрах проекта или локальных параметрах (`.claude/settings.json`, `.claude/settings.local.json`), Claude Code соблюдает `false` и отключает автоподключение для этого репозитория, но игнорирует `true`, поэтому проверенный файл не может включить Remote Control для всех, кто открывает репозиторий.197Чтобы вместо этого включить автоподключение из файла параметров, установите [`remoteControlAtStartup`](https://code.claude.com/docs/ru/settings-reference#remotecontrolatstartup) на `true` в ваш пользовательский файл `~/.claude/settings.json` или в [управляемые параметры](https://code.claude.com/docs/ru/managed-settings.md). В параметрах проекта или локальных параметрах (`.claude/settings.json`, `.claude/settings.local.json`), Claude Code соблюдает `false` и отключает автоподключение для этого репозитория, но игнорирует `true`, поэтому проверенный файл не может включить Remote Control для всех, кто открывает репозиторий.

198 198 


363 * Команды с текстовым выводом: `/compact`, `/clear`, `/context`, `/usage`, `/exit`, `/usage-credits`, `/recap` и `/reload-plugins`. `/usage-credits` выводит URL биллинга вместо открытия браузера. `/reload-plugins` работает, только когда сессия выполняется в интерактивном терминале; сессия без него отклоняет эту команду.363 * Команды с текстовым выводом: `/compact`, `/clear`, `/context`, `/usage`, `/exit`, `/usage-credits`, `/recap` и `/reload-plugins`. `/usage-credits` выводит URL биллинга вместо открытия браузера. `/reload-plugins` работает, только когда сессия выполняется в интерактивном терминале; сессия без него отклоняет эту команду.

364 * `/model`, `/effort`, `/fast`, `/color` и `/rename`: передайте значение как аргумент, например `/model sonnet` или `/effort high`. С мобильного устройства и в вебе `/model` и `/effort` принимают аргумент вместо терминального меню выбора или ползунка.364 * `/model`, `/effort`, `/fast`, `/color` и `/rename`: передайте значение как аргумент, например `/model sonnet` или `/effort high`. С мобильного устройства и в вебе `/model` и `/effort` принимают аргумент вместо терминального меню выбора или ползунка.

365 * `/mcp`: в мобильном приложении возвращает текстовую сводку состояния серверов вместо открытия меню выбора. В вебе `/mcp` без аргументов открывает каталог [коннекторов claude.ai](https://code.claude.com/docs/ru/mcp.md#use-mcp-servers-from-claude-ai) вместо возврата сводки. [Подкоманды](https://code.claude.com/docs/ru/commands.md#all-commands) `reconnect`, `enable` и `disable` работают в обоих случаях, когда сессия выполняется в интерактивном терминале. `/mcp reconnect` без имени сервера повторяет попытку для каждого сервера, который дал сбой или требует аутентификации. Чтобы авторизовать коннектор claude.ai без меню выбора, см. [Повторная авторизация коннектора из оболочки](#authorize-a-connector-again-from-your-shell).365 * `/mcp`: в мобильном приложении возвращает текстовую сводку состояния серверов вместо открытия меню выбора. В вебе `/mcp` без аргументов открывает каталог [коннекторов claude.ai](https://code.claude.com/docs/ru/mcp.md#use-mcp-servers-from-claude-ai) вместо возврата сводки. [Подкоманды](https://code.claude.com/docs/ru/commands.md#all-commands) `reconnect`, `enable` и `disable` работают в обоих случаях, когда сессия выполняется в интерактивном терминале. `/mcp reconnect` без имени сервера повторяет попытку для каждого сервера, который дал сбой или требует аутентификации. Чтобы авторизовать коннектор claude.ai без меню выбора, см. [Повторная авторизация коннектора из оболочки](#authorize-a-connector-again-from-your-shell).

366 * `/config`: в мобильном приложении передайте `key=value`, чтобы задать настройку, или выполните команду без аргумента, чтобы вывести список ключей, которые можно задать. В вебе `/config` вместо этого открывает раздел Claude Code в ваших настройках.366 * `/config`: в мобильном приложении передайте `key=value`, чтобы задать настройку, или выполните команду без аргумента, чтобы вывести список ключей, которые можно задать. В вебе `/config` вместо этого открывает **Settings > Code** или **Settings > Claude Code**.

367 * В тарифах Team и Enterprise команда `/usage-credits` с мобильного устройства или в вебе не отправляет [запрос кредитов использования вашему администратору](https://code.claude.com/docs/ru/costs.md#add-usage-credits-to-your-subscription). Для отправки требуется подтверждение, которое появляется только в интерактивном CLI, поэтому команда предлагает вам выполнить её там.367 * В тарифах Team и Enterprise команда `/usage-credits` с мобильного устройства или в вебе не отправляет [запрос кредитов использования вашему администратору](https://code.claude.com/docs/ru/costs.md#add-usage-credits-to-your-subscription). Для отправки требуется подтверждение, которое появляется только в интерактивном CLI, поэтому команда предлагает вам выполнить её там.

368 * `/autocompact`, начиная с v2.1.221: передайте размер окна как аргумент, например `/autocompact 500k`. Без аргумента команда выводит текущий размер окна в виде текста вместо открытия диалога, который она показывает в терминальной сессии.368 * `/autocompact`, начиная с v2.1.221: передайте размер окна как аргумент, например `/autocompact 500k`. Без аргумента команда выводит текущий размер окна в виде текста вместо открытия диалога, который она показывает в терминальной сессии.

369 * `/advisor`, начиная с v2.1.260: передайте модель как аргумент, например `/advisor opus`, или передайте `off`, чтобы отключить советника. Обе формы применяются только к текущей сессии и не меняют сохранённое значение по умолчанию. Без аргумента команда выводит текущего советника в виде текста вместо открытия меню выбора.369 * `/advisor`, начиная с v2.1.260: передайте модель как аргумент, например `/advisor opus`, или передайте `off`, чтобы отключить советника. Обе формы применяются только к текущей сессии и не меняют сохранённое значение по умолчанию. Без аргумента команда выводит текущего советника в виде текста вместо открытия меню выбора.

routines.md +9 −5

Details

77 77 

78**2. Назовите задачу и напишите промпт**78**2. Назовите задачу и напишите промпт**

79 79 

80Дайте запланированной задаче описательное имя и напишите промпт, который Claude выполняет каждый раз. Промпт — самая важная часть: задача выполняется автономно, поэтому промпт должен быть самодостаточным и явно указывать, что делать и как выглядит успешный результат. Выберите модель в селекторе моделей поля ввода промпта. Claude использует её при каждом запуске.80Дайте запланированной задаче описательное имя и напишите промпт, который Claude выполняет каждый раз. Промпт — самая важная часть: задача выполняется автономно, поэтому промпт должен быть самодостаточным и явно указывать, что делать и как выглядит успешный результат.

81 81 

82Когда срабатывает триггер, сессия получает сохранённый промпт как своё задание и выполняет его, а не рассматривает как недоверенный контент, поступивший посреди диалога. Триггер лишь удостоверяет, что промпт был заранее сохранён авторизованной сессией в вашей учётной записи. Поэтому сработавший промпт не является живым вводом пользователя и не может служить подтверждением или согласием на действия во время запуска. Контент, который сессия получает во время запуска, обрабатывается как обычно.82Когда срабатывает триггер, сессия получает сохранённый промпт как своё задание и выполняет его, а не рассматривает как недоверенный контент, поступивший посреди диалога. Триггер лишь удостоверяет, что промпт был заранее сохранён авторизованной сессией в вашей учётной записи. Поэтому сработавший промпт не является живым вводом пользователя и не может служить подтверждением или согласием на действия во время запуска. Контент, который сессия получает во время запуска, обрабатывается как обычно.

83 83 


115 115 

116Если вашей задаче нужно обращаться напрямую к вашим собственным сервисам или к домену вне этого списка, измените [сетевой доступ](https://code.claude.com/docs/ru/cloud-environments.md#network-access) окружения перед запуском. Чтобы использовать отдельное окружение, сначала [создайте его](https://code.claude.com/docs/ru/cloud-environments.md#configure-your-environment).116Если вашей задаче нужно обращаться напрямую к вашим собственным сервисам или к домену вне этого списка, измените [сетевой доступ](https://code.claude.com/docs/ru/cloud-environments.md#network-access) окружения перед запуском. Чтобы использовать отдельное окружение, сначала [создайте его](https://code.claude.com/docs/ru/cloud-environments.md#configure-your-environment).

117 117 

118**6. Проверьте коннекторы**118**6. Выберите модель и уровень effort**

119 

120Выберите модель в селекторе моделей поля ввода промпта. Claude использует её при каждом запуске. Для задачи Claude Code, если модель поддерживает [уровни effort](https://code.claude.com/docs/ru/model-config.md#adjust-effort-level), пункт **Effort** в том же селекторе показывает текущий уровень. Чтобы изменить его, выберите другой уровень. Вариант **Default** в селекторе не предлагает уровней.

121 

122**7. Проверьте коннекторы**

119 123 

120Перейдите на вкладку **Connectors** в **Advanced settings**. Все ваши подключённые [MCP-коннекторы](https://code.claude.com/docs/ru/mcp.md) включены по умолчанию. Удалите те, что не нужны задаче: Claude может использовать включённый коннектор во время запуска, в том числе для операций записи. О том, когда запуск останавливается, чтобы сначала спросить вас, см. [Запросы разрешений во время запуска](#permission-prompts-during-a-run).124Перейдите на вкладку **Connectors** в **Advanced settings**. Все ваши подключённые [MCP-коннекторы](https://code.claude.com/docs/ru/mcp.md) включены по умолчанию. Удалите те, что не нужны задаче: Claude может использовать включённый коннектор во время запуска, в том числе для операций записи. О том, когда запуск останавливается, чтобы сначала спросить вас, см. [Запросы разрешений во время запуска](#permission-prompts-during-a-run).

121 125 

122**7. Создайте задачу**126**8. Создайте задачу**

123 127 

124Нажмите **Create**. Диалоговое окно закроется, и откроется страница сведений о новой задаче. Задача запустится в следующий раз, когда сработает один из её триггеров. Чтобы запустить её немедленно, нажмите **Run now** на странице сведений.128Нажмите **Create**. Диалоговое окно закроется, и откроется страница сведений о новой задаче. Задача запустится в следующий раз, когда сработает один из её триггеров. Чтобы запустить её немедленно, нажмите **Run now** на странице сведений.

125 129 


136Если в приложении Desktop открывается меню с пунктами **Local** и **Cloud**, выберите **Cloud**. Откроется страница с заголовком **New routine** или **New scheduled task**. Заполните её поля:140Если в приложении Desktop открывается меню с пунктами **Local** и **Cloud**, выберите **Cloud**. Откроется страница с заголовком **New routine** или **New scheduled task**. Заполните её поля:

137 141 

138* **Name**: введите имя.142* **Name**: введите имя.

139* **Instructions**: введите промпт. В том же поле выберите модель, репозитории и окружение. О том, что определяет каждый из этих параметров, см. шаги в разделе [Создание в веб-версии](#create-from-the-web).143* **Instructions**: введите промпт. В том же поле выберите модель, уровень effort, если модель его поддерживает, репозитории и окружение. О том, что определяет каждый из этих параметров, см. шаги в разделе [Создание в веб-версии](#create-from-the-web).

140* **Select a trigger**: выберите **Schedule**, **GitHub event** или **API**. Для расписания см. [Добавление триггера расписания](#add-a-schedule-trigger). Для [события GitHub](#add-a-github-trigger) выберите репозиторий. Для [триггера API](#add-an-api-trigger) скопируйте токен из диалогового окна **API token**, которое откроется после нажатия **Create**, поскольку он показывается один раз. Чтобы объединить несколько триггеров, нажмите **Add another trigger**.144* **Select a trigger**: выберите **Schedule**, **GitHub event** или **API**. Для расписания см. [Добавление триггера расписания](#add-a-schedule-trigger). Для [события GitHub](#add-a-github-trigger) выберите репозиторий. Для [триггера API](#add-an-api-trigger) скопируйте токен из диалогового окна **API token**, которое откроется после нажатия **Create**, поскольку он показывается один раз. Чтобы объединить несколько триггеров, нажмите **Add another trigger**.

141* **Connectors**: все ваши подключённые коннекторы включены по умолчанию, поэтому удалите те, что не нужны задаче.145* **Connectors**: все ваши подключённые коннекторы включены по умолчанию, поэтому удалите те, что не нужны задаче.

142 146 


153* **Триггер API**: отредактируйте задачу в веб-версии на [claude.ai/code/routines](https://claude.ai/code/routines)157* **Триггер API**: отредактируйте задачу в веб-версии на [claude.ai/code/routines](https://claude.ai/code/routines)

154* **[Триггер GitHub](#add-a-github-trigger)**: отредактируйте задачу в веб-версии или попросите Claude в CLI. Для добавления из CLI требуется Claude Code v2.1.225 или новее158* **[Триггер GitHub](#add-a-github-trigger)**: отредактируйте задачу в веб-версии или попросите Claude в CLI. Для добавления из CLI требуется Claude Code v2.1.225 или новее

155 159 

156У запланированной задачи без триггера расписания, например запускаемой только вызовами API или событиями GitHub, нет времени следующего запуска. CLI не показывает его, когда Claude сохраняет или обновляет такую задачу. До v2.1.211 CLI сообщал для таких задач время следующего запуска в 1 году.160У запланированной задачи без триггера расписания, например запускаемой только вызовами API или событиями GitHub, нет времени следующего запуска. CLI не показывает его, когда Claude сохраняет или обновляет такую задачу.

157 161 

158## Настройка триггеров162## Настройка триггеров

159 163 

sandboxing.md +2 −1

Details

320* **Каждая команда в вызове должна совпадать**: `npm ci && docker compose build` остаётся в песочнице, если другая запись не покрывает `npm ci`320* **Каждая команда в вызове должна совпадать**: `npm ci && docker compose build` остаётся в песочнице, если другая запись не покрывает `npm ci`

321* **Claude Code сопоставляет текст вызова**: скрипт или цель `make`, которые вызывают `docker` внутри, не совпадают, как и `/usr/local/bin/docker`321* **Claude Code сопоставляет текст вызова**: скрипт или цель `make`, которые вызывают `docker` внутри, не совпадают, как и `/usr/local/bin/docker`

322* **Некоторые вызовы остаются в песочнице**: перенаправление в файл, `cd` или подстановка команды, например `$(...)`, оставляют весь вызов в песочнице. В [справочной записи](https://code.claude.com/docs/ru/settings-reference.md#sandbox-excludedcommands) перечислены другие вызовы, которые остаются в песочнице322* **Некоторые вызовы остаются в песочнице**: перенаправление в файл, `cd` или подстановка команды, например `$(...)`, оставляют весь вызов в песочнице. В [справочной записи](https://code.claude.com/docs/ru/settings-reference.md#sandbox-excludedcommands) перечислены другие вызовы, которые остаются в песочнице

323* **Для `git clone` нужны относительные пути**: ваша запись не покрывает клонирование, в котором указан абсолютный путь, путь, начинающийся с `~`, или путь с сегментом `..`. Если клонирование можно выполнить внутри вашего рабочего каталога, попросите Claude использовать относительный путь без сегмента `..`, например `vendor/lib`

323* **Место сохранения записи может иметь значение**: пока песочница [обязательна по требованию администратора](#repository-settings-under-an-admin-required-sandbox), Claude Code игнорирует записи в `.claude/settings.json` и `.claude/settings.local.json`324* **Место сохранения записи может иметь значение**: пока песочница [обязательна по требованию администратора](#repository-settings-under-an-admin-required-sandbox), Claude Code игнорирует записи в `.claude/settings.json` и `.claude/settings.local.json`

324 325 

325Исключённая команда проходит обычный процесс проверки разрешений:326Исключённая команда проходит обычный процесс проверки разрешений:


354 355 

355Песочница имеет два независимых уровня: [изоляция файловой системы](#filesystem-isolation) определяет, какие пути команды в песочнице могут читать и записывать, а [сетевая изоляция](#network-isolation) определяет, к каким доменам они могут обращаться. При отключённом уровне файловой системы команды в песочнице получают неограниченный доступ на чтение и запись к файловой системе хоста, а их исходящий сетевой трафик по-прежнему ограничен разрешёнными доменами. Отключайте этот уровень, когда вы используете песочницу, чтобы контролировать, куда подключаются команды, а не то, что они записывают.356Песочница имеет два независимых уровня: [изоляция файловой системы](#filesystem-isolation) определяет, какие пути команды в песочнице могут читать и записывать, а [сетевая изоляция](#network-isolation) определяет, к каким доменам они могут обращаться. При отключённом уровне файловой системы команды в песочнице получают неограниченный доступ на чтение и запись к файловой системе хоста, а их исходящий сетевой трафик по-прежнему ограничен разрешёнными доменами. Отключайте этот уровень, когда вы используете песочницу, чтобы контролировать, куда подключаются команды, а не то, что они записывают.

356 357 

357По умолчанию `sandbox.filesystem.disabled` имеет значение `false`. Требуется Claude Code v2.1.216 или новее.358По умолчанию `sandbox.filesystem.disabled` имеет значение `false`.

358 359 

359> [!WARNING]360> [!WARNING]

360>361>

Details

381 381 

382| Флаг с примером значения | Кому передавать | Что он делает |382| Флаг с примером значения | Кому передавать | Что он делает |

383| :- | :- | :- |383| :- | :- | :- |

384| `--release-idle-session-min 30` | Каждому средству выполнения, которое запускает ваш хук | Средство выполнения освобождает свою сессию после указанного числа минут простоя, а затем завершается с кодом 0. Сессия возобновляется, когда её пользователь отправляет следующее сообщение, но [работа, которую она не успела отправить через push, теряется](https://code.claude.com/docs/ru/self-hosted-environments-deploy.md#additional-limitations). |384| `--release-idle-session-min 30` | Каждому средству выполнения, которое запускает ваш хук | Средство выполнения освобождает свою сессию после указанного числа минут простоя, а затем завершается с кодом 0. Сессия возобновляется, когда её пользователь отправляет следующее сообщение, но [работа, которую она не успела отправить через push, теряется](https://code.claude.com/docs/ru/self-hosted-environments-deploy.md#additional-limitations). [Удерживайте сессию](https://code.claude.com/docs/ru/self-hosted-environments-deploy.md#keep-an-idle-session-while-its-processes-run) для процессов, которые она оставила запущенными. |

385| `--kill-session-after-min 480` | Каждому средству выполнения, которое запускает ваш хук | Ограничивает каждую сессию указанным числом минут в качестве страховки для [сессий, которые не считаются простаивающими](https://code.claude.com/docs/ru/self-hosted-environments-deploy.md#some-sessions-don’t-count-as-idle), поэтому задайте значение больше самой длинной ожидаемой сессии |385| `--kill-session-after-min 480` | Каждому средству выполнения, которое запускает ваш хук | Ограничивает каждую сессию указанным числом минут в качестве страховки для [сессий, которые не считаются простаивающими](https://code.claude.com/docs/ru/self-hosted-environments-deploy.md#some-sessions-don’t-count-as-idle), поэтому задайте значение больше самой длинной ожидаемой сессии |

386| `--exit-if-unused-min 60` | Резервным средствам выполнения, которые ваш хук запускает для запросов предварительного прогрева | Резервное средство выполнения, которое так и не получило сессию, завершается через указанное число минут. Если вы задали [`--min-idle`](https://code.claude.com/docs/ru/self-hosted-environments-reference#orchestrator-cli-flags), вы получите замену, если только резервное средство не было избыточным, поэтому используйте значение значительно больше времени загрузки. |386| `--exit-if-unused-min 60` | Резервным средствам выполнения, которые ваш хук запускает для запросов предварительного прогрева | Резервное средство выполнения, которое так и не получило сессию, завершается через указанное число минут. Если вы задали [`--min-idle`](https://code.claude.com/docs/ru/self-hosted-environments-reference#orchestrator-cli-flags), вы получите замену, если только резервное средство не было избыточным, поэтому используйте значение значительно больше времени загрузки. |

387 387 

Details

68| `code.claude.com` и `claude.com` | 443 | Поиск документации встроенным агентом claude-code-guide и предварительно одобренные запросы WebFetch во время сеансов. Блокировка этих хостов влияет только на поиск документации. |68| `code.claude.com` и `claude.com` | 443 | Поиск документации встроенным агентом claude-code-guide и предварительно одобренные запросы WebFetch во время сеансов. Блокировка этих хостов влияет только на поиск документации. |

69| `*.frame.claudeusercontent.com` | 443 | Только когда [инструмент Artifact](https://code.claude.com/docs/ru/artifacts.md#availability) доступен для сеансов в вашей организации; значения по умолчанию варьируются по плану, согласно таблице доступности там. Установите `CLAUDE_CODE_DISABLE_ARTIFACT=1` на runner, чтобы держать инструмент отключенным независимо от параметра организации. |69| `*.frame.claudeusercontent.com` | 443 | Только когда [инструмент Artifact](https://code.claude.com/docs/ru/artifacts.md#availability) доступен для сеансов в вашей организации; значения по умолчанию варьируются по плану, согласно таблице доступности там. Установите `CLAUDE_CODE_DISABLE_ARTIFACT=1` на runner, чтобы держать инструмент отключенным независимо от параметра организации. |

70| `registry.npmjs.org` | 443 | Когда сеанс устанавливает плагин, как для получения пакетов плагинов npm-source, так и для установки зависимостей Node.js плагина, или когда запускается MCP-сервер, запущенный `npx` |70| `registry.npmjs.org` | 443 | Когда сеанс устанавливает плагин, как для получения пакетов плагинов npm-source, так и для установки зависимостей Node.js плагина, или когда запускается MCP-сервер, запущенный `npx` |

71| Внутреннее зеркало реестров пакетов, которые используют ваши сборки, или сами эти реестры | 443 или порт вашего зеркала | Когда сессии устанавливают зависимости, чтобы собрать или протестировать ваши репозитории |

71| `http-intake.logs.us5.datadoghq.com` | 443 | Метрики операций Anthropic. Только когда установлено `CLAUDE_CODE_BYOC_ENABLE_DATADOG=1`; отключено по умолчанию в самостоятельно размещаемых окружениях. |72| `http-intake.logs.us5.datadoghq.com` | 443 | Метрики операций Anthropic. Только когда установлено `CLAUDE_CODE_BYOC_ENABLE_DATADOG=1`; отключено по умолчанию в самостоятельно размещаемых окружениях. |

72| `browser-intake-us5-datadoghq.com` | 443 | Загрузки отчетов об ошибках Anthropic, отправляемые только когда [отчетность об ошибках](https://code.claude.com/docs/ru/data-usage.md#telemetry-services) включена для учетной записи сеанса. Подавляется `DISABLE_ERROR_REPORTING=1` или `DISABLE_TELEMETRY=1`. |73| `browser-intake-us5-datadoghq.com` | 443 | Загрузки отчетов об ошибках Anthropic, отправляемые только когда [отчетность об ошибках](https://code.claude.com/docs/ru/data-usage.md#telemetry-services) включена для учетной записи сеанса. Подавляется `DISABLE_ERROR_REPORTING=1` или `DISABLE_TELEMETRY=1`. |

73| Эндпоинты вашего облачного провайдера для запросов к модели, поиска моделей и обновления учётных данных, такие как `bedrock-runtime.us-east-1.amazonaws.com` или `aiplatform.googleapis.com` | 443 | Только когда runner [отправляет запросы к модели в Amazon Bedrock или Google Cloud's Agent Platform](https://code.claude.com/docs/ru/self-hosted-environments-configuration.md#send-model-requests-to-bedrock-or-agent-platform) |74| Эндпоинты вашего облачного провайдера для запросов к модели, поиска моделей и обновления учётных данных, такие как `bedrock-runtime.us-east-1.amazonaws.com` или `aiplatform.googleapis.com` | 443 | Только когда runner [отправляет запросы к модели в Amazon Bedrock или Google Cloud's Agent Platform](https://code.claude.com/docs/ru/self-hosted-environments-configuration.md#send-model-requests-to-bedrock-or-agent-platform) |


631 632 

632На первых двух этапах, следующих за сигналом, runner выпускает сессии, и выпущенная сессия возобновляется на свежем runner, когда её пользователь отправляет следующее сообщение. Отсчитывая от первого сигнала, runner проходит через три этапа:633На первых двух этапах, следующих за сигналом, runner выпускает сессии, и выпущенная сессия возобновляется на свежем runner, когда её пользователь отправляет следующее сообщение. Отсчитывая от первого сигнала, runner проходит через три этапа:

633 634 

634* **В течение первых `n` минут**: runner обслуживает свои сессии нормально и продолжает применять `--startup-timeout-min` и `--kill-session-after-min`. Если вы также установили [`--release-idle-session-min`](https://code.claude.com/docs/ru/self-hosted-environments-reference#runner-cli-flags), runner выпускает любую сессию, пользователь которой был неактивен столько времени; без этого неактивные сессии остаются на runner.635* **В течение первых `n` минут**: runner обслуживает свои сессии нормально и продолжает применять `--startup-timeout-min` и `--kill-session-after-min`. Если вы также установили [`--release-idle-session-min`](https://code.claude.com/docs/ru/self-hosted-environments-reference#runner-cli-flags), runner выпускает любую сессию, пользователь которой был неактивен столько времени, если только вы не [удерживаете эту сессию](#keep-an-idle-session-while-its-processes-run). Без этого флага неактивные сессии остаются на runner.

635* **Когда истекают `n` минут**: runner выпускает каждую сессию, которую он всё ещё удерживает, неактивную или нет. Runner ждёт, пока завершится ход сессии, находящейся посреди хода, и ещё до 60 секунд для фоновых задач этого хода, прежде чем выпустить эту сессию.636* **Когда истекают `n` минут**: runner выпускает каждую сессию, которую он всё ещё удерживает, неактивную или нет. Runner ждёт, пока завершится ход сессии, находящейся посреди хода, и ещё до 60 секунд для фоновых задач этого хода, прежде чем выпустить эту сессию.

636* **Когда истекает post-release grace**: runner выполняет drain любых сессий, которые он всё ещё удерживает, и control plane сразу же переставляет каждую такую сессию на другой runner. Post-release grace начинается, когда истекают `n` минут, и составляет 75 секунд при значениях по умолчанию. Если вы установили `--drain-wait-sec` выше 60 секунд, post-release grace вместо этого составляет `--drain-wait-sec` плюс 15 секунд.637* **Когда истекает post-release grace**: runner выполняет drain любых сессий, которые он всё ещё удерживает, и control plane сразу же переставляет каждую такую сессию на другой runner. Post-release grace начинается, когда истекают `n` минут, и составляет 75 секунд при значениях по умолчанию. Если вы установили `--drain-wait-sec` выше 60 секунд, post-release grace вместо этого составляет `--drain-wait-sec` плюс 15 секунд.

637 638 


716 717 

717### Освобождение простаивающих сессий во фиксированном флоте718### Освобождение простаивающих сессий во фиксированном флоте

718 719 

719Если сессии остаются в очереди во фиксированном флоте, хотя все runners в сети, причиной могут быть простаивающие сессии. По умолчанию сессия сохраняет свой слот после завершения своего хода, а её runner остаётся заблокированным за [владельцем](https://code.claude.com/docs/ru/self-hosted-environments#key-concepts) этой сессии. Если [облачная запланированная задача](https://code.claude.com/docs/ru/routines.md) вашей команды запускает новую сессию при каждом выполнении, её простаивающие сессии могут занять все слоты.720Если сессии остаются в очереди во фиксированном флоте, хотя все runners в сети, причиной могут быть простаивающие сессии. По умолчанию сессия сохраняет свой слот после завершения своего хода, а её runner остаётся заблокированным за [владельцем](https://code.claude.com/docs/ru/self-hosted-environments#key-concepts) этой сессии. Сессии других владельцев не могут использовать свободные слоты этого runner. Если [облачная запланированная задача](https://code.claude.com/docs/ru/routines.md) вашей команды запускает новую сессию при каждом выполнении, её простаивающие сессии могут занять все слоты.

720 721 

721Чтобы проверить это, посмотрите `claude_code_self_hosted_runner_session_idle_seconds` в [Prometheus metrics](https://code.claude.com/docs/ru/self-hosted-environments-reference.md#prometheus-metrics) каждого runner. У каждой сессии, которую удерживает runner, есть собственный ряд: `0`, пока сессия занята, в противном случае — количество секунд с момента перехода в простой. Выберите допустимое время простоя: дольше пауз, которые люди делают посреди задачи, и достаточно короткое, чтобы каждое выполнение освобождалось до начала следующего выполнения запланированной задачи. Сравните ряды с этим временем.722Чтобы проверить это, посмотрите `claude_code_self_hosted_runner_session_idle_seconds` в [Prometheus metrics](https://code.claude.com/docs/ru/self-hosted-environments-reference.md#prometheus-metrics) каждого runner. У каждой сессии, которую удерживает runner, есть собственный ряд: `0`, пока сессия занята, в противном случае — количество секунд с момента перехода в простой. Выберите допустимое время простоя: дольше пауз, которые люди делают посреди задачи, и достаточно короткое, чтобы каждое выполнение освобождалось до начала следующего выполнения запланированной задачи. Сравните ряды с этим временем.

722 723 


725* **Runner без рядов**: его не удерживает ни одна сессия. См. **Sessions stay queued** в разделе [Устранение неполадок](#troubleshooting).726* **Runner без рядов**: его не удерживает ни одна сессия. См. **Sessions stay queued** в разделе [Устранение неполадок](#troubleshooting).

726* **Runner, метрики которого не отвечают**: его процесс мог завершиться. См. **An environment that looks healthy** в разделе [Когда runner завершает работу](#when-the-runner-exits).727* **Runner, метрики которого не отвечают**: его процесс мог завершиться. См. **An environment that looks healthy** в разделе [Когда runner завершает работу](#when-the-runner-exits).

727 728 

728Чтобы освобождать простаивающие сессии, запускайте каждый runner с [`--release-idle-session-min`](https://code.claude.com/docs/ru/self-hosted-environments-reference#runner-cli-flags) и этим временем в минутах, например `--release-idle-session-min 30`. Тогда runner освобождает любую сессию, которая простаивает так долго, независимо от того, запустила её запланированная задача или человек.729Чтобы освобождать простаивающие сессии, запускайте каждый runner с [`--release-idle-session-min`](https://code.claude.com/docs/ru/self-hosted-environments-reference#runner-cli-flags) и этим временем в минутах, например `--release-idle-session-min 30`. Тогда runner освобождает любую сессию, которая простаивает так долго, независимо от того, запустила её запланированная задача или человек, если только вы не [удерживаете её ради оставленных ею запущенных процессов](#keep-an-idle-session-while-its-processes-run).

729 730 

730* **Неотправленная работа**: освобождённая сессия возобновляется при следующем сообщении, но без работы, которую она не отправила (push). Чтобы сохранить её коммиты, см. [Resumed sessions lose unpushed work](#additional-limitations).731* **Неотправленная работа**: освобождённая сессия возобновляется при следующем сообщении, но без работы, которую она не отправила (push). Чтобы сохранить её коммиты, см. [Resumed sessions lose unpushed work](#additional-limitations).

731* **Завершение runner**: runner, освободивший свою последнюю сессию, начинает [обычное завершение](#when-the-runner-exits). Настройте ваш супервизор так, чтобы он перезапускал его на чистой файловой системе, как описано в разделе [Усиление защиты развёртывания](#harden-your-deployment).732* **Завершение runner**: runner, освободивший свою последнюю сессию, начинает [обычное завершение](#when-the-runner-exits). Настройте ваш супервизор так, чтобы он перезапускал его на чистой файловой системе, как описано в разделе [Усиление защиты развёртывания](#harden-your-deployment).

732* **Сессии, которые никогда не переходят в простой**: также задайте [`--kill-session-after-min`](https://code.claude.com/docs/ru/self-hosted-environments-reference#runner-cli-flags), потому что [некоторые сессии не считаются простаивающими](#some-sessions-don’t-count-as-idle)733* **Сессии, которые никогда не переходят в простой**: также задайте [`--kill-session-after-min`](https://code.claude.com/docs/ru/self-hosted-environments-reference#runner-cli-flags), потому что [некоторые сессии не считаются простаивающими](#some-sessions-don’t-count-as-idle)

733 734 

735### Сохранение простаивающей сессии, пока работают её процессы

736 

737Чтобы сохранять простаивающую сессию до завершения процессов, которые она оставила на вашем хосте, например заданий `nohup`, запустите runner с [`--hold-idle-file`](https://code.claude.com/docs/ru/self-hosted-environments-reference#runner-cli-flags) и продолжайте обновлять (touch) этот файл с хоста. Требуется Claude Code v2.1.311 или новее.

738 

739Эти шаги предполагают, что runner работает на хосте не от имени root. Если ваш runner работает от имени `root`, его сессии могут сами обновлять файл, поэтому сначала запустите его от имени выделенного пользователя.

740 

741**1. Выберите путь к файлу**

742 

743Выберите локальный обычный файл, например `/var/lib/claude-hold/hold-idle`, в каталоге, в который сессии не могут записывать, включая родительские каталоги, чтобы сессия не могла записать в него. Runner и его сессии используют одного пользователя ОС, поэтому сначала создайте этот каталог, принадлежащий другому пользователю, например `root`, с режимом `755`.

744 

745**2. Запустите runner**

746 

747Из вашей оболочки запустите runner с `--hold-idle-file`, `--release-idle-session-min` и [`--max-hold-min`](https://code.claude.com/docs/ru/self-hosted-environments-reference#runner-cli-flags) — ограничением на удержание, отсчитываемым с момента перехода сессии в простой. Без него ограничение составляет один день. Задайте его больше, чем `--release-idle-session-min`, иначе ничего не будет удерживаться. В этом примере простаивающие сессии освобождаются через 30 минут, а удерживаемая сессия освобождается не позднее чем через 4 часа после перехода в простой:

748 

749```bash theme={null}

750claude self-hosted-runner \

751 --environment-secret-file /etc/claude/environment-secret \

752 --release-idle-session-min 30 \

753 --hold-idle-file /var/lib/claude-hold/hold-idle \

754 --max-hold-min 240

755```

756 

757**3. Обновляйте файл, пока работают процессы**

758 

759Пока работают процессы, выполняйте `touch` для файла с хоста от имени владельца каталога чаще, чем раз в три минуты. Первый `touch` создаёт файл. Например, добавьте эту строку в crontab пользователя `root`:

760 

761```text theme={null}

762* * * * * pgrep -x nightly-build > /dev/null && touch /var/lib/claude-hold/hold-idle

763```

764 

765Эта строка выполняется раз в минуту и обновляет файл, пока работает любой процесс с именем `nightly-build`, поэтому сессия, запустившая такой процесс, удерживается вплоть до ограничения. Замените проверку `pgrep` тем способом, которым ваш хост определяет, что оставили запущенным сессии.

766 

767Проверка должна перестать срабатывать, когда они завершатся, иначе каждая простаивающая сессия на этом runner будет удерживаться до ограничения.

768 

769**4. Убедитесь, что удержание работает**

770 

771Пока работают процессы, проверяйте, что время изменения файла остаётся не старше трёх минут. Когда время простоя сессии истечёт, найдите `idle release held` в логе runner. Если такой строки нет, посмотрите `leftover-hold=` в строке `watchdog config`, которую runner записывает в лог при запуске: там указаны файл и ограничение или причина, по которой ничего не удерживается.

772 

773Через три минуты после последнего `touch` удержание заканчивается. Ещё примерно через минуту в логе появляется `idle release no longer held`, и runner освобождает сессию.

774 

775Даже если файл продолжает изменяться, удержание может закончиться, например в таких случаях:

776 

777* **Превышено ограничение**: истекает `--max-hold-min`. Чтобы удерживать дольше, увеличьте его

778* **Принудительное освобождение**: вы задали [`--retire-at`](https://code.claude.com/docs/ru/self-hosted-environments-reference#runner-cli-flags), [`--defer-shutdown-max-min`](https://code.claude.com/docs/ru/self-hosted-environments-reference#runner-cli-flags) или [`--kill-session-after-min`](https://code.claude.com/docs/ru/self-hosted-environments-reference#runner-cli-flags), и этот предел наступил. Чтобы удерживать дольше, задайте более поздний предел

779 

734## Известные проблемы и ограничения780## Известные проблемы и ограничения

735 781 

736Ниже приведены ограничения в этом выпуске с обходными путями, где они существуют.782Ниже приведены ограничения в этом выпуске с обходными путями, где они существуют.


828* **Claude Tag иногда не публикует свой ответ в Slack**: напоминание об ответе — это [хук, который предоставляет плоскость управления](https://code.claude.com/docs/ru/self-hosted-environments-configuration.md#how-each-session’s-config-is-assembled). Убедитесь с помощью `claude --version`, что runner работает на Claude Code v2.1.229 или новее, поскольку более старые runner'ы игнорируют предоставленные хуки; убедитесь, что `python3 --version` успешно выполняется внутри образа runner'а, поскольку хуки запускают `python3`; и убедитесь, что ни один файл настроек не отключает хуки — ни `disableAllHooks` в `managed-settings.json`, в `~/.claude/settings.json` пользователя runner'а или в `.claude/settings.json` либо `.claude/settings.local.json` репозитория, ни `allowManagedHooksOnly` или [`strictPluginOnlyCustomization`](https://code.claude.com/docs/ru/settings-reference#strictpluginonlycustomization), охватывающий хуки, в управляемых настройках.874* **Claude Tag иногда не публикует свой ответ в Slack**: напоминание об ответе — это [хук, который предоставляет плоскость управления](https://code.claude.com/docs/ru/self-hosted-environments-configuration.md#how-each-session’s-config-is-assembled). Убедитесь с помощью `claude --version`, что runner работает на Claude Code v2.1.229 или новее, поскольку более старые runner'ы игнорируют предоставленные хуки; убедитесь, что `python3 --version` успешно выполняется внутри образа runner'а, поскольку хуки запускают `python3`; и убедитесь, что ни один файл настроек не отключает хуки — ни `disableAllHooks` в `managed-settings.json`, в `~/.claude/settings.json` пользователя runner'а или в `.claude/settings.json` либо `.claude/settings.local.json` репозитория, ни `allowManagedHooksOnly` или [`strictPluginOnlyCustomization`](https://code.claude.com/docs/ru/settings-reference#strictpluginonlycustomization), охватывающий хуки, в управляемых настройках.

829* **Сессия запускается без одного из своих репозиториев**: на runner'е без [хука `checkout`](https://code.claude.com/docs/ru/self-hosted-environments-configuration#checkout) git-хост может отклонить проверку доступа runner'а к репозиторию, из которого сессия только читает. Тогда runner пропускает этот репозиторий, записывает в лог строку `[runner:warn] could not access context source` с указанием отказа и запускает сессию с остальными репозиториями.875* **Сессия запускается без одного из своих репозиториев**: на runner'е без [хука `checkout`](https://code.claude.com/docs/ru/self-hosted-environments-configuration#checkout) git-хост может отклонить проверку доступа runner'а к репозиторию, из которого сессия только читает. Тогда runner пропускает этот репозиторий, записывает в лог строку `[runner:warn] could not access context source` с указанием отказа и запускает сессию с остальными репозиториями.

830 876 

831 Runner пропускает только явный отказ: хост отвечает, что репозиторий не найден, git не находит учётных данных для хоста или аутентификация не проходит. Сбой сети, таймаут или HTTP `403` по-прежнему приводят к сбою запуска сессии, как и отказ для репозитория, в который сессия отправляет результаты. Runner по-прежнему намеренно завершает сбоем сессию, которую пропуск оставил бы вообще без репозитория. С [`--use-anthropic-git-proxy`](#use-the-anthropic-git-proxy) runner пропускает только репозиторий, доступ к которому отклоняет сам git-прокси.877 С собственными учётными данными git runner может пропустить репозиторий, если хост отвечает, что репозиторий не найден, git не находит учётных данных для хоста или аутентификация не проходит.

878 

879 С [`--use-anthropic-git-proxy`](#use-the-anthropic-git-proxy), когда git-прокси отклоняет репозиторий с `access denied by the git proxy`, runner пропускает его. Тогда в строке лога указано `blocked by the git proxy`. Причины, которые следует проверить, см. в случае `remote: access denied by the git proxy` в разделе [Если сессии не запускаются на runner'е с git-прокси](#when-anthropic-doesnt-serve-a-session).

880 

881 Сбой сети, таймаут или любой другой HTTP `403` по-прежнему приводят к сбою запуска сессии, как и отказ для репозитория, в который сессия отправляет результаты. Runner по-прежнему завершает сбоем сессию, которую пропуск оставил бы вообще без репозитория.

832 882 

833 Проверка доступа выполняется заново при каждом запуске сессии на runner'е, поэтому, как только git-идентичность runner'а получит доступ на чтение, следующий запуск клонирует репозиторий. До v2.1.274 каждый из этих отказов приводил к сбою запуска сессии.883 Проверка доступа выполняется заново при каждом запуске сессии на runner'е, поэтому, как только git-идентичность runner'а получит доступ на чтение, следующий запуск клонирует репозиторий. До v2.1.274 каждый из этих отказов приводил к сбою запуска сессии.

884* **В логе есть `could not read context source`**: эта строка, в отличие от `could not access context source`, означает, что git-хост продолжал отвечать HTTP `429` или обёртка, которую вы установили в качестве `git`, продолжала завершаться с кодом `75`. Runner пропустил этот репозиторий. Чтобы повторить попытку, запустите новую сессию. Runner также снова пробует этот репозиторий каждый раз, когда эта сессия запускается на runner'е.

885 

886 Без хука `checkout` runner может пропустить репозиторий, из которого сессия только читает, если только он не первый среди репозиториев сессии. До v2.1.311 запуск сессии завершался сбоем.

834* **Сессия не запускается с `This runner couldn't read`**: runner запросил у git-хоста репозиторий со своими [учётными данными git](#configure-git) и получил ответ «не найдено». Репозиторий не существует, или эти учётные данные не дают доступа к репозиторию.887* **Сессия не запускается с `This runner couldn't read`**: runner запросил у git-хоста репозиторий со своими [учётными данными git](#configure-git) и получил ответ «не найдено». Репозиторий не существует, или эти учётные данные не дают доступа к репозиторию.

835 * **Если вы администрируете runner**: предоставьте его учётным данным git доступ на чтение к репозиторию, затем запустите новую сессию.888 * **Если вы администрируете runner**: предоставьте его учётным данным git доступ на чтение к репозиторию, затем запустите новую сессию.

836 * **Если вы запустили сессию**: если репозиторий не существует, запустите новую сессию с правильным репозиторием. Если у runner'а нет доступа к репозиторию, попросите администратора runner'а предоставить доступ, затем запустите новую сессию.889 * **Если вы запустили сессию**: если репозиторий не существует, запустите новую сессию с правильным репозиторием. Если у runner'а нет доступа к репозиторию, попросите администратора runner'а предоставить доступ, затем запустите новую сессию.

Details

89(umask 077 && cat > /etc/claude/environment-secret)89(umask 077 && cat > /etc/claude/environment-secret)

90```90```

91 91 

92Выберите базовую директорию, заменив `<writable-dir>` в команде runner ниже абсолютным путём, который runner может писать или создавать. Runner создаёт директорию при запуске, затем проверяет репозитории и создаёт директории для каждого сеанса под ней. Без `--base-dir` он использует `/workspace`, что работает только если эта директория уже существует и доступна для записи или вы запускаете runner как root.92Выберите базовую директорию, заменив `<writable-dir>` в команде runner ниже абсолютным путём, который runner может писать или создавать. Runner создаёт директорию при запуске, затем извлекает репозитории и создаёт директории для каждого сеанса под ней. Без `--base-dir` он использует `/workspace`, что работает только если эта директория уже существует и доступна для записи или вы запускаете runner как root.

93 93 

94> [!WARNING]94> [!WARNING]

95>95>

Details

37| `--git-host-rewrite <from>=<to>` | none | unset | Переписать URL источников `https://<from>/...` на `https://<to>/...` перед клонированием для разделенного DNS горизонта. Повторяемо; только флаг. |37| `--git-host-rewrite <from>=<to>` | none | unset | Переписать URL источников `https://<from>/...` на `https://<to>/...` перед клонированием для разделенного DNS горизонта. Повторяемо; только флаг. |

38| `--git-ssh-rewrite <host>` | none | unset | Переписать URL источников `https://<host>/...` на `git@<host>:...` перед клонированием для хостов git только с SSH. Повторяемо; только флаг. |38| `--git-ssh-rewrite <host>` | none | unset | Переписать URL источников `https://<host>/...` на `git@<host>:...` перед клонированием для хостов git только с SSH. Повторяемо; только флаг. |

39| `--health-port <port>` | `SELF_HOSTED_RUNNER_HEALTH_PORT` | `8080` | Порт для слушателя `/healthz` и `/metrics`. Установите `0` для отключения. |39| `--health-port <port>` | `SELF_HOSTED_RUNNER_HEALTH_PORT` | `8080` | Порт для слушателя `/healthz` и `/metrics`. Установите `0` для отключения. |

40| `--hold-idle-file <path>` | `SELF_HOSTED_RUNNER_HOLD_IDLE_FILE` | unset | Файл, который ваш хост постоянно изменяет, чтобы удерживать простаивающую сессию на runner. См. [Keep an idle session while its processes run](https://code.claude.com/docs/ru/self-hosted-environments-deploy.md#keep-an-idle-session-while-its-processes-run). Требует Claude Code v2.1.311 или новее. |

40| `--hooks-dir <path>` | `SELF_HOSTED_RUNNER_HOOKS_DIR` | unset | Каталог скриптов hooks жизненного цикла. См. [Lifecycle hooks](https://code.claude.com/docs/ru/self-hosted-environments-configuration.md#lifecycle-hooks). |41| `--hooks-dir <path>` | `SELF_HOSTED_RUNNER_HOOKS_DIR` | unset | Каталог скриптов hooks жизненного цикла. См. [Lifecycle hooks](https://code.claude.com/docs/ru/self-hosted-environments-configuration.md#lifecycle-hooks). |

41| `--host-config-snapshot <mode>` | `SELF_HOSTED_RUNNER_HOST_CONFIG_SNAPSHOT` | `disk` | Где runner хранит снимок при запуске [каталога конфигурации хоста](#environment-variable-only-settings), который он засевает каждый сеанс. `disk` копирует снимок в каталог, принадлежащий runner, под `--base-dir` и при каждом запуске сеанса проверяет каждый файл по дайджесту в памяти. Если файл в копии был изменен, сеанс не удается и runner отказывает в сеансах, пока вы не перезагрузите его. `memory` держит весь снимок на куче, ограниченный 64 МиБ; сверх лимита сеансы запускаются без конфигурации хоста и показывают уведомление об этом. Когда runner не может записать снимок на диск, он регистрирует сбой и использует `memory` для этого запуска. Требует Claude Code v2.1.271 или позже. |42| `--host-config-snapshot <mode>` | `SELF_HOSTED_RUNNER_HOST_CONFIG_SNAPSHOT` | `disk` | Где runner хранит снимок при запуске [каталога конфигурации хоста](#environment-variable-only-settings), который он засевает каждый сеанс. `disk` копирует снимок в каталог, принадлежащий runner, под `--base-dir` и при каждом запуске сеанса проверяет каждый файл по дайджесту в памяти. Если файл в копии был изменен, сеанс не удается и runner отказывает в сеансах, пока вы не перезагрузите его. `memory` держит весь снимок на куче, ограниченный 64 МиБ; сверх лимита сеансы запускаются без конфигурации хоста и показывают уведомление об этом. Когда runner не может записать снимок на диск, он регистрирует сбой и использует `memory` для этого запуска. Требует Claude Code v2.1.271 или позже. |

42| `--kill-session-after-min <n>` | `SELF_HOSTED_RUNNER_MAX_LIFETIME_MS` | `0` | Ограничьте сеанс N минутами настенного времени как предел безопасности для зависших сеансов. На v2.1.260 или позже runner отпускает сеанс, который достигает лимита, чтобы он мог возобновиться при следующем сообщении пользователя, и завершает его только если он все еще на runner, когда окончится окно благодати [`SELF_HOSTED_RUNNER_MAX_LIFETIME_GRACE_MS`](#environment-variable-only-settings). До v2.1.260 runner завершал сеанс на лимите. См. [Some sessions don't count as idle](https://code.claude.com/docs/ru/self-hosted-environments-deploy.md#some-sessions-don%E2%80%99t-count-as-idle) для деталей и как выбрать значение. `0` отключает. |43| `--kill-session-after-min <n>` | `SELF_HOSTED_RUNNER_MAX_LIFETIME_MS` | `0` | Ограничьте сеанс N минутами настенного времени как предел безопасности для зависших сеансов. На v2.1.260 или позже runner отпускает сеанс, который достигает лимита, чтобы он мог возобновиться при следующем сообщении пользователя, и завершает его только если он все еще на runner, когда окончится окно благодати [`SELF_HOSTED_RUNNER_MAX_LIFETIME_GRACE_MS`](#environment-variable-only-settings). До v2.1.260 runner завершал сеанс на лимите. См. [Some sessions don't count as idle](https://code.claude.com/docs/ru/self-hosted-environments-deploy.md#some-sessions-don%E2%80%99t-count-as-idle) для деталей и как выбрать значение. `0` отключает. |

43| `--lock-to-account <id>` | `SELF_HOSTED_RUNNER_LOCK_TO_ACCOUNT` | unset | Предварительно заблокируйте runner на конкретный аккаунт при запуске вместо блокировки при первом сеансе. Принимает адрес электронной почты или ID `user_...` в организации среды. Предварительно заблокированный runner никогда не подхватывает сеансы канала Claude Tag, у которых нет аккаунта. |44| `--lock-to-account <id>` | `SELF_HOSTED_RUNNER_LOCK_TO_ACCOUNT` | unset | Предварительно заблокируйте runner на конкретный аккаунт при запуске вместо блокировки при первом сеансе. Принимает адрес электронной почты или ID `user_...` в организации среды. Предварительно заблокированный runner никогда не подхватывает сеансы канала Claude Tag, у которых нет аккаунта. |

44| `--log-file <path>` | `SELF_HOSTED_RUNNER_LOG_FILE` | unset | Зеркалируйте логи runner в файл в дополнение к stdout и stderr, созданный с разрешениями `0600`. Требуется для `self-hosted-runner doctor` для локального отслеживания логов. |45| `--log-file <path>` | `SELF_HOSTED_RUNNER_LOG_FILE` | unset | Зеркалируйте логи runner в файл в дополнение к stdout и stderr, созданный с разрешениями `0600`. Требуется для `self-hosted-runner doctor` для локального отслеживания логов. |

45| `--log-level <level>` | none | `info` | `info` или `debug` |46| `--log-level <level>` | none | `info` | `info` или `debug` |

47| `--max-hold-min <n>` | `SELF_HOSTED_RUNNER_MAX_HOLD_MS` | `1440` | При использовании `--hold-idle-file` всё равно отпускает удерживаемую сессию через N минут после того, как она стала простаивать. Значение, меньшее или равное `--release-idle-session-min`, ничего не удерживает. `0` отключает удержание. Требует Claude Code v2.1.311 или новее. |

46| `--post-session-hook-timeout-sec <n>` | `SELF_HOSTED_RUNNER_POST_SESSION_HOOK_TIMEOUT_MS` | `60` | Бюджет для [`post-session` hook](https://code.claude.com/docs/ru/self-hosted-environments-configuration#post-session) при завершении каждого сеанса, включая завершение runner |48| `--post-session-hook-timeout-sec <n>` | `SELF_HOSTED_RUNNER_POST_SESSION_HOOK_TIMEOUT_MS` | `60` | Бюджет для [`post-session` hook](https://code.claude.com/docs/ru/self-hosted-environments-configuration#post-session) при завершении каждого сеанса, включая завершение runner |

47| `--proxy-authorization-command <command>` | `SELF_HOSTED_RUNNER_PROXY_AUTHORIZATION_COMMAND` | unset | Команда shell, которую runner запускает для каждого подключения к вашему прокси выхода, используя его обрезанный stdout как значение заголовка `Proxy-Authorization`. Требует `HTTPS_PROXY` или `HTTP_PROXY`, и не может быть объединен с `--proxy-authorization-file`. См. [Authenticate to an egress proxy](https://code.claude.com/docs/ru/self-hosted-environments-deploy.md#authenticate-to-an-egress-proxy). Требует Claude Code v2.1.238 или позже. |49| `--proxy-authorization-command <command>` | `SELF_HOSTED_RUNNER_PROXY_AUTHORIZATION_COMMAND` | unset | Команда shell, которую runner запускает для каждого подключения к вашему прокси выхода, используя его обрезанный stdout как значение заголовка `Proxy-Authorization`. Требует `HTTPS_PROXY` или `HTTP_PROXY`, и не может быть объединен с `--proxy-authorization-file`. См. [Authenticate to an egress proxy](https://code.claude.com/docs/ru/self-hosted-environments-deploy.md#authenticate-to-an-egress-proxy). Требует Claude Code v2.1.238 или позже. |

48| `--proxy-authorization-file <path>` | `SELF_HOSTED_RUNNER_PROXY_AUTHORIZATION_FILE` | unset | Файл, который runner читает для каждого подключения к вашему прокси выхода, используя его обрезанное содержимое как значение заголовка `Proxy-Authorization`. Используйте этот флаг для токена, который другой процесс ротирует на месте. Несет те же требования, что и `--proxy-authorization-command`, и не может быть объединен с ним. См. [Authenticate to an egress proxy](https://code.claude.com/docs/ru/self-hosted-environments-deploy.md#authenticate-to-an-egress-proxy). Требует Claude Code v2.1.238 или позже. |50| `--proxy-authorization-file <path>` | `SELF_HOSTED_RUNNER_PROXY_AUTHORIZATION_FILE` | unset | Файл, который runner читает для каждого подключения к вашему прокси выхода, используя его обрезанное содержимое как значение заголовка `Proxy-Authorization`. Используйте этот флаг для токена, который другой процесс ротирует на месте. Несет те же требования, что и `--proxy-authorization-command`, и не может быть объединен с ним. См. [Authenticate to an egress proxy](https://code.claude.com/docs/ru/self-hosted-environments-deploy.md#authenticate-to-an-egress-proxy). Требует Claude Code v2.1.238 или позже. |

49| `--push-outcome-on-release` | `SELF_HOSTED_RUNNER_PUSH_OUTCOME_ON_RELEASE` | off | При инициированном runner завершении сеанса, таком как осушение или отпуск при простое, отправьте отслеживаемые ветви результатов в `origin` перед удалением рабочего пространства, чтобы текущие коммиты пережили перезагрузку. Лучшее усилие; добавляет 30 секунд к бюджету завершения и требует git 2.29 или новее для возобновления с отправленной ветви. Ограничьте доступ на отправку к ссылкам `claude/*` перед включением; см. [Resumed sessions lose unpushed work](https://code.claude.com/docs/ru/self-hosted-environments-deploy.md#additional-limitations). Репозитории, проверенные через hook `checkout` жизненного цикла, не отправляются; снимите их с помощью [`post-session` hook](https://code.claude.com/docs/ru/self-hosted-environments-configuration#post-session) вместо этого. |51| `--push-outcome-on-release` | `SELF_HOSTED_RUNNER_PUSH_OUTCOME_ON_RELEASE` | off | При инициированном runner завершении сеанса, таком как осушение или отпуск при простое, отправьте отслеживаемые ветви результатов в `origin` перед удалением рабочего пространства, чтобы текущие коммиты пережили перезагрузку. Лучшее усилие; добавляет 30 секунд к бюджету завершения и требует git 2.29 или новее для возобновления с отправленной ветви. Ограничьте доступ на отправку к ссылкам `claude/*` перед включением; см. [Resumed sessions lose unpushed work](https://code.claude.com/docs/ru/self-hosted-environments-deploy.md#additional-limitations). Репозитории, проверенные через hook `checkout` жизненного цикла, не отправляются; снимите их с помощью [`post-session` hook](https://code.claude.com/docs/ru/self-hosted-environments-configuration#post-session) вместо этого. |

50| `--release-idle-session-min <n>` | `SELF_HOSTED_RUNNER_SESSION_IDLE_MS` | `0` | Отпустите слот сеанса после N минут неактивности после завершения хода или ожидания сеансом действия пользователя. Сеанс, который все еще находится в процессе хода, включая тот, который держит никогда не заканчивающуюся фоновую задачу или одобрение, запрошенное изнутри работающего вызова инструмента, не считается неактивным; объедините с `--kill-session-after-min` как жесткий упор. После завершения фоновой задачи сеанса runner считает сеанс занятым до тех пор, пока не начнется следующий ход, который читает результат, в течение максимум окна [`SELF_HOSTED_RUNNER_BG_RESULT_GRACE_MS`](#environment-variable-only-settings). До тех пор, пока runner не получит сигнал завершения или не достигнет времени выхода на пенсию, отпуск, который оставляет runner без активных сеансов, запускает тот же путь выхода, что и нормальное осушение, управляемое `--drain-grace-sec`. После первого сигнала, который вы отложили с помощью [`--defer-shutdown-max-min`](https://code.claude.com/docs/ru/self-hosted-environments-deploy#defer-the-drain-past-the-first-signal), runner выходит, как только отпуск оставляет его без сеансов. `0` отключает. |52| `--release-idle-session-min <n>` | `SELF_HOSTED_RUNNER_SESSION_IDLE_MS` | `0` | Отпускает слот сессии после N минут неактивности после завершения хода или когда сессия ожидает действия пользователя. [Некоторые сессии не считаются простаивающими](https://code.claude.com/docs/ru/self-hosted-environments-deploy.md#some-sessions-don’t-count-as-idle), поэтому используйте вместе с `--kill-session-after-min`. Завершённая фоновая задача держит сессию занятой в течение максимум окна [`SELF_HOSTED_RUNNER_BG_RESULT_GRACE_MS`](#environment-variable-only-settings). Чтобы отложить отпуск, задайте [`--hold-idle-file`](https://code.claude.com/docs/ru/self-hosted-environments-deploy#keep-an-idle-session-while-its-processes-run). `0` отключает. |

51| `--remove-session-state [bool]` | `SELF_HOSTED_RUNNER_REMOVE_SESSION_STATE` | off | Удалите каталоги сеанса для каждого сеанса под `<base-dir>/_sessions/` когда сеанс заканчивается на этом runner, независимо от результата. [Reuse a pre-warmed checkout](https://code.claude.com/docs/ru/self-hosted-environments-deploy.md#reuse-a-pre-warmed-checkout) описывает, что они содержат и кто может их читать, когда они остаются. Удаление является лучшим усилием: каталоги для каждого сеанса остаются на месте, когда runner убивается или достигает крайнего срока осушения перед запуском очистки. С флагом включенным, логи отладки неудачного или прерванного сеанса не сохраняются на диск. Требует Claude Code v2.1.268 или позже. |53| `--remove-session-state [bool]` | `SELF_HOSTED_RUNNER_REMOVE_SESSION_STATE` | off | Удалите каталоги сеанса для каждого сеанса под `<base-dir>/_sessions/` когда сеанс заканчивается на этом runner, независимо от результата. [Reuse a pre-warmed checkout](https://code.claude.com/docs/ru/self-hosted-environments-deploy.md#reuse-a-pre-warmed-checkout) описывает, что они содержат и кто может их читать, когда они остаются. Удаление является лучшим усилием: каталоги для каждого сеанса остаются на месте, когда runner убивается или достигает крайнего срока осушения перед запуском очистки. С флагом включенным, логи отладки неудачного или прерванного сеанса не сохраняются на диск. Требует Claude Code v2.1.268 или позже. |

52| `--retire-at <epoch-seconds>` | `SELF_HOSTED_RUNNER_RETIRE_AT` | unset | Выведите runner на пенсию в абсолютный временной штамп Unix в секундах для инфраструктуры, которая убивает runner в известное время; [Runner lifecycle](https://code.claude.com/docs/ru/self-hosted-environments#runner-lifecycle) описывает последовательность отпуска и как определить размер маржи. Значения до 2001 или после года 5138 отклоняются флагом и игнорируются переменной окружения. |54| `--retire-at <epoch-seconds>` | `SELF_HOSTED_RUNNER_RETIRE_AT` | unset | Выведите runner на пенсию в абсолютный временной штамп Unix в секундах для инфраструктуры, которая убивает runner в известное время; [Runner lifecycle](https://code.claude.com/docs/ru/self-hosted-environments#runner-lifecycle) описывает последовательность отпуска и как определить размер маржи. Значения до 2001 или после года 5138 отклоняются флагом и игнорируются переменной окружения. |

53| `--server-auto-mode-lists <mode>` | `SELF_HOSTED_RUNNER_SERVER_AUTO_MODE_LISTS` | `no-allow` | Какие из списков правил классификатора [авторежима](https://code.claude.com/docs/ru/permission-modes.md#eliminate-prompts-with-auto-mode), которые управляющий уровень отправляет вместе с сессией, могут применяться к этой сессии: `all`, `no-allow` или `none`. Что применяет каждое значение, см. в разделе [Списки правил авторежима](#auto-mode-rule-lists). Недопустимое значение останавливает runner при запуске. Требуется Claude Code v2.1.295 или новее. |55| `--server-auto-mode-lists <mode>` | `SELF_HOSTED_RUNNER_SERVER_AUTO_MODE_LISTS` | `no-allow` | Какие из списков правил классификатора [авторежима](https://code.claude.com/docs/ru/permission-modes.md#eliminate-prompts-with-auto-mode), которые управляющий уровень отправляет вместе с сессией, могут применяться к этой сессии: `all`, `no-allow` или `none`. Что применяет каждое значение, см. в разделе [Списки правил авторежима](#auto-mode-rule-lists). Недопустимое значение останавливает runner при запуске. Требуется Claude Code v2.1.295 или новее. |


314 316 

315### Оповещения о потере runner и ожидающих сессиях317### Оповещения о потере runner и ожидающих сессиях

316 318 

317Для [фиксированного парка](https://code.claude.com/docs/ru/self-hosted-environments-deploy.md#scale-the-fleet) загрузите `ClaudeRunnersBelowFloor`. При использовании [runner по требованию](https://code.claude.com/docs/ru/self-hosted-environments-configuration.md#on-demand-runners) вместо этого загрузите `ClaudeOrchestratorSessionsWaiting` и `ClaudeOrchestratorQueueWaitHigh`.319Чтобы получать оповещения о потере runner, ожидании сессий или недоступности оркестратора, загрузите эти правила оповещений Prometheus вместе с [примерами правил оповещений](#sample-alert-rules):

320 

321* **[Фиксированный парк](https://code.claude.com/docs/ru/self-hosted-environments-deploy.md#scale-the-fleet)**: `ClaudeRunnersBelowFloor`

322* **[Runner по требованию](https://code.claude.com/docs/ru/self-hosted-environments-configuration.md#on-demand-runners)**: `ClaudeOrchestratorSessionsWaiting`, `ClaudeOrchestratorQueueWaitHigh` и `ClaudeOrchestratorAbsent`

318 323 

319#### Оповещение о потере runner в фиксированном парке324#### Оповещение о потере runner в фиксированном парке

320 325 


372* **Порог**: если какая-то сессия ожидает постоянно, поднимите `> 0` в `ClaudeOrchestratorSessionsWaiting` выше значения, которое вы обычно наблюдаете377* **Порог**: если какая-то сессия ожидает постоянно, поднимите `> 0` в `ClaudeOrchestratorSessionsWaiting` выше значения, которое вы обычно наблюдаете

373* **`ClaudeOrchestratorDisconnected`**: оставьте его загруженным из [примеров правил оповещений](#sample-alert-rules), поскольку `ClaudeOrchestratorSessionsWaiting` перестаёт срабатывать примерно через 2 минуты после отключения последнего оркестратора в пространстве имён378* **`ClaudeOrchestratorDisconnected`**: оставьте его загруженным из [примеров правил оповещений](#sample-alert-rules), поскольку `ClaudeOrchestratorSessionsWaiting` перестаёт срабатывать примерно через 2 минуты после отключения последнего оркестратора в пространстве имён

374 379 

380#### Оповещение о недоступности оркестратора

381 

382Чтобы узнавать о недоступности самого [оркестратора](https://code.claude.com/docs/ru/self-hosted-environments-configuration.md#on-demand-runners), загрузите `ClaudeOrchestratorAbsent`. Оно срабатывает, когда в течение 5 минут метрики не собираются ни с одного оркестратора в пространстве имён:

383 

384```yaml theme={null}

385groups:

386 # On-demand runners only. Replace claude-runners with the orchestrator's namespace.

387 - name: claude-code-self-hosted-on-demand-orchestrator

388 rules:

389 - alert: ClaudeOrchestratorAbsent

390 expr: absent(claude_code_self_hosted_orchestrator_connected{namespace="claude-runners"})

391 for: 5m

392 labels: {severity: critical}

393 annotations:

394 summary: "No orchestrator has been scraped for 5 minutes. If it's down, no on-demand runner starts, and sessions wait. Check the orchestrator workload first, then its scrape target if it's running."

395```

396 

397* **Пространство имён**: замените `claude-runners` на пространство имён оркестратора и скопируйте оповещение для каждого дополнительного пространства имён, в котором работает оркестратор. Если у ваших целей нет метки `namespace`, удалите matcher, иначе оповещение сработает через 5 минут и не отключится.

398* **Серверы Prometheus, которые не собирают метрики оркестратора**: не включайте это оповещение в их файлы правил, поскольку на таком сервере оно срабатывает через 5 минут и не отключается

399* **Не полагайтесь на другие оповещения оркестратора**: они читают метрики, которые отдаёт сам оркестратор. `ClaudeOrchestratorSessionsWaiting`, `ClaudeOrchestratorQueueWaitHigh` и [примеры правил оповещений](#sample-alert-rules) для оркестратора перестают срабатывать примерно в течение 10 минут после отказа оркестратора.

400 

375### Проброс метрик дочерних процессов сессий401### Проброс метрик дочерних процессов сессий

376 402 

377Каждая сессия выполняется в собственном дочернем процессе со своими метриками OpenTelemetry; при `--capacity` больше единицы runner изменяет способ публикации этих дочерних метрик. Если задать `OTEL_METRICS_EXPORTER=prometheus` на хосте runner и `CLAUDE_CODE_ENABLE_TELEMETRY=1` в окружении сессии, например из вашего [скрипта-обёртки](https://code.claude.com/docs/ru/self-hosted-environments-configuration.md#wrapper-scripts) или в собственном окружении runner, которое наследуют сессии, то инструменты типа counter и gauge каждого дочернего процесса будут повторно опубликованы на собственном эндпоинте `/metrics` runner рядом с сериями самого runner. Runner перенастраивает экспортёр дочернего процесса на отправку по OTLP в приёмник на порту health, доступный только через loopback, помечает каждую серию метками `session_id` и `client_platform` и удаляет серии сессии, когда эта сессия завершается. Гистограммы не пробрасываются, а дочерняя метрика, имя которой конфликтовало бы с собственным префиксом runner, отбрасывается.403Каждая сессия выполняется в собственном дочернем процессе со своими метриками OpenTelemetry; при `--capacity` больше единицы runner изменяет способ публикации этих дочерних метрик. Если задать `OTEL_METRICS_EXPORTER=prometheus` на хосте runner и `CLAUDE_CODE_ENABLE_TELEMETRY=1` в окружении сессии, например из вашего [скрипта-обёртки](https://code.claude.com/docs/ru/self-hosted-environments-configuration.md#wrapper-scripts) или в собственном окружении runner, которое наследуют сессии, то инструменты типа counter и gauge каждого дочернего процесса будут повторно опубликованы на собственном эндпоинте `/metrics` runner рядом с сериями самого runner. Runner перенастраивает экспортёр дочернего процесса на отправку по OTLP в приёмник на порту health, доступный только через loopback, помечает каждую серию метками `session_id` и `client_platform` и удаляет серии сессии, когда эта сессия завершается. Гистограммы не пробрасываются, а дочерняя метрика, имя которой конфликтовало бы с собственным префиксом runner, отбрасывается.

Details

288 288 

289 Команда не может читать ввод с клавиатуры, когда вы передаёте её ввод через конвейер или перенаправляете его и, в macOS и Linux, она также не может открыть `/dev/tty`. Если вы также передаёте через конвейер или перенаправляете её вывод, запуск считается неинтерактивным, и доставленные настройки применяются только для этого запуска.289 Команда не может читать ввод с клавиатуры, когда вы передаёте её ввод через конвейер или перенаправляете его и, в macOS и Linux, она также не может открыть `/dev/tty`. Если вы также передаёте через конвейер или перенаправляете её вывод, запуск считается неинтерактивным, и доставленные настройки применяются только для этого запуска.

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

291* **Неинтерактивный запуск**, такой как `claude -p`, сеанс Agent SDK или сеанс в панели чата расширения VS Code или на вкладке Code настольного приложения: Claude Code не может показать диалог, поэтому когда доставленные параметры требуют одобрения, он применяет их только для этого запуска. Он не записывает их как одобренные и не записывает их в [локальный кэш](#fetch-and-caching-behavior), и следующий интерактивный сеанс показывает диалог. До одобрения пользователем в интерактивном сеансе каждый неинтерактивный запуск выполняет выборку параметров снова при запуске. До v2.1.207 неинтерактивный запуск сохранял параметры как одобренные, поэтому более поздние интерактивные сеансы никогда не показывали диалог для них.291* **Неинтерактивный запуск**, такой как `claude -p`, сессия Agent SDK или сессия в панели чата расширения VS Code или на вкладке Code настольного приложения: Claude Code не может показать диалог. Если доставленные настройки требуют подтверждения, они применяются только для этого запуска.

292 

293 Claude Code не отмечает настройки как подтверждённые и не записывает их в [локальный кэш](#fetch-and-caching-behavior), а следующая интерактивная сессия показывает диалог. Пока пользователь не подтвердит их в интерактивной сессии, каждый неинтерактивный запуск заново выполняет выборку настроек при старте.

292 294 

293#### Переменные окружения и диалог одобрения295#### Переменные окружения и диалог одобрения

294 296 


306* `OTEL_EXPORTER_OTLP_ENDPOINT`308* `OTEL_EXPORTER_OTLP_ENDPOINT`

307* `CLAUDE_CODE_DISABLE_1M_CONTEXT`309* `CLAUDE_CODE_DISABLE_1M_CONTEXT`

308 310 

309Когда доставленная переменная требует подтверждения, диалог называет её, поэтому пользователь видит, что именно политика просит установить. До v2.1.218 Claude Code применял без запроса пользователю меньше переменных, поэтому такие настройки, как `DISABLE_AUTO_COMPACT`, вызывали диалог при любом непустом значении.311Когда доставленная переменная требует подтверждения, диалог называет её, поэтому пользователь видит, что именно политика просит установить.

310 312 

311Claude Code решает, требуют ли четыре переключателя конфиденциальности одобрения по доставленному значению, а не по имени переменной: `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`, `DISABLE_ERROR_REPORTING`, `DISABLE_TELEMETRY` и `DO_NOT_TRACK`. Истинное значение, такое как `1` или `true`, только отключает отслеживание, отчеты об ошибках или другой ненужный трафик, поэтому Claude Code применяет его без запроса пользователя. Для любого другого непустого значения Claude Code показывает диалог. До v2.1.218 все они, кроме `DO_NOT_TRACK`, применялись без одобрения при любом значении, и `DO_NOT_TRACK` вызывал диалог при любом непустом значении.313Для четырёх переключателей конфиденциальности Claude Code определяет необходимость подтверждения по доставленному значению, а не по имени переменной: `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`, `DISABLE_ERROR_REPORTING`, `DISABLE_TELEMETRY` и `DO_NOT_TRACK`. Истинное значение, такое как `1` или `true`, только отключает отслеживание, отчёты об ошибках или другой несущественный трафик, поэтому Claude Code применяет его, не спрашивая пользователя. Для любого другого непустого значения Claude Code показывает диалог.

312 314 

313Claude Code также решает, требует ли [`API_FORCE_IDLE_TIMEOUT`](https://code.claude.com/docs/ru/env-vars) одобрения по доставленному значению: истинное значение только включает [тайм-аут простоя тела](https://code.claude.com/docs/ru/network-config.md#streaming-idle-watchdogs), поэтому Claude Code применяет его без запроса пользователя. Для любого другого непустого значения Claude Code показывает диалог. До v2.1.248 любое непустое значение вызывало диалог.315Claude Code также решает, требует ли [`API_FORCE_IDLE_TIMEOUT`](https://code.claude.com/docs/ru/env-vars) одобрения по доставленному значению: истинное значение только включает [тайм-аут простоя тела](https://code.claude.com/docs/ru/network-config.md#streaming-idle-watchdogs), поэтому Claude Code применяет его без запроса пользователя. Для любого другого непустого значения Claude Code показывает диалог. До v2.1.248 любое непустое значение вызывало диалог.

314 316 

sessions.md +2 −2

Details

46Когда Claude Code загружает диалог из его транскрипта, возобновлённая сессия восстанавливает диалог вместе с сохранённым в нём состоянием:46Когда Claude Code загружает диалог из его транскрипта, возобновлённая сессия восстанавливает диалог вместе с сохранённым в нём состоянием:

47 47 

48* История диалога: сообщения, вызовы инструментов и результаты. Если к сессии применялось [сжатие контекста](https://code.claude.com/docs/ru/context-window.md#what-survives-compaction), диалог открывается на строке `Conversation compacted`. Claude продолжает работу со сводкой последнего сжатия, сообщениями, которые это сжатие оставило без сводки, и всеми последующими сообщениями. Сообщения, включённые в сводку последнего сжатия, повторно не загружаются.48* История диалога: сообщения, вызовы инструментов и результаты. Если к сессии применялось [сжатие контекста](https://code.claude.com/docs/ru/context-window.md#what-survives-compaction), диалог открывается на строке `Conversation compacted`. Claude продолжает работу со сводкой последнего сжатия, сообщениями, которые это сжатие оставило без сводки, и всеми последующими сообщениями. Сообщения, включённые в сводку последнего сжатия, повторно не загружаются.

49* Прерванные вызовы инструментов: инструмент, который всё ещё выполнялся, когда предыдущий процесс завершился, например при сбое, не завершается и не запускается снова при возобновлении. Claude видит вызов, помеченный как прерванный до записи его результата, и получает указание проверить, сработал ли он, прежде чем запускать его снова, если только не установлена переменная [`CLAUDE_CODE_RESUME_INTERRUPTED_TURN`](https://code.claude.com/docs/ru/env-vars#variables).49* Прерванные вызовы инструментов: инструмент, который всё ещё выполнялся, когда предыдущий процесс завершился, например при сбое, не запускается повторно при возобновлении.

50* Модель: сессия продолжается на модели, которую она использовала, за исключением случаев, описанных в разделе [Выбор модели](https://code.claude.com/docs/ru/model-config.md#setting-your-model).50* Модель: сессия продолжается на модели, которую она использовала, за исключением случаев, описанных в разделе [Выбор модели](https://code.claude.com/docs/ru/model-config.md#setting-your-model).

51* Агент: сессия, запущенная с помощью [`--agent`](https://code.claude.com/docs/ru/sub-agents#invoke-subagents-explicitly) или настройки `agent`, продолжается как этот агент, сохраняя его ограничения инструментов и модель. Передайте `--agent` при возобновлении, чтобы выбрать другого агента; о системном промпте в обоих случаях см. [Флаги системного промпта в возобновлённых диалогах](https://code.claude.com/docs/ru/cli-reference.md#system-prompt-flags-in-resumed-conversations). Claude Code ищет агента в двух местах: в исходном каталоге сессии, при условии что вы [доверяете этому рабочему пространству](https://code.claude.com/docs/ru/permissions.md#project-allow-rules-and-workspace-trust), а затем в каталоге, из которого вы возобновляете сессию, поэтому агент уровня проекта загружается и при возобновлении из другого каталога. Если Claude Code не находит агента ни в одном из этих мест, сессия возобновляется с инструментами по умолчанию и показывает [предупреждение с именем агента](https://code.claude.com/docs/ru/errors.md#session-agent-no-longer-available).51* Агент: сессия, запущенная с помощью [`--agent`](https://code.claude.com/docs/ru/sub-agents#invoke-subagents-explicitly) или настройки `agent`, продолжается как этот агент, сохраняя его ограничения инструментов и модель. Передайте `--agent` при возобновлении, чтобы выбрать другого агента; о системном промпте в обоих случаях см. [Флаги системного промпта в возобновлённых диалогах](https://code.claude.com/docs/ru/cli-reference.md#system-prompt-flags-in-resumed-conversations). Claude Code ищет агента в двух местах: в исходном каталоге сессии, при условии что вы [доверяете этому рабочему пространству](https://code.claude.com/docs/ru/permissions.md#project-allow-rules-and-workspace-trust), а затем в каталоге, из которого вы возобновляете сессию, поэтому агент уровня проекта загружается и при возобновлении из другого каталога. Если Claude Code не находит агента ни в одном из этих мест, сессия возобновляется с инструментами по умолчанию и показывает [предупреждение с именем агента](https://code.claude.com/docs/ru/errors.md#session-agent-no-longer-available).

52* Режим разрешений: если вы возобновляете сессию из терминала с помощью `claude --continue`, `claude --resume <session-id>` или `claude --resume <name>`, когда имя соответствует одной сессии, без `-p`, Claude Code восстанавливает режим разрешений, в котором находилась сессия, за исключением случаев, описанных в разделе [режим разрешений при возобновлении](#permission-mode-on-resume), который также охватывает средство выбора сессий, `/resume` и возобновление с помощью `claude -p`. Передайте `--permission-mode` или `--dangerously-skip-permissions`, чтобы переопределить восстановленный режим.52* Режим разрешений: если вы возобновляете сессию из терминала с помощью `claude --continue`, `claude --resume <session-id>` или `claude --resume <name>`, когда имя соответствует одной сессии, без `-p`, Claude Code восстанавливает режим разрешений, в котором находилась сессия, за исключением случаев, описанных в разделе [режим разрешений при возобновлении](#permission-mode-on-resume), который также охватывает средство выбора сессий, `/resume` и возобновление с помощью `claude -p`. Передайте `--permission-mode` или `--dangerously-skip-permissions`, чтобы переопределить восстановленный режим.


224* **`/compact [instructions]`**: заменить историю сводкой, опционально сосредоточенной на том, что вы указали224* **`/compact [instructions]`**: заменить историю сводкой, опционально сосредоточенной на том, что вы указали

225* **`/context`**: показать, что в настоящее время потребляет контекст225* **`/context`**: показать, что в настоящее время потребляет контекст

226 226 

227О том, как уплотнение взаимодействует с CLAUDE.md, skills и правилами, см. [руководство по окну контекста](https://code.claude.com/docs/ru/context-window.md). Для стратегий о том, когда очищать или уплотнять, см. [Best practices](https://code.claude.com/docs/ru/best-practices.md#manage-your-session).227О том, как сжатие контекста взаимодействует с CLAUDE.md, скиллами и правилами, см. [руководство по контекстному окну](https://code.claude.com/docs/ru/context-window.md). Стратегии о том, когда очищать, а когда сжимать контекст, см. в разделе [Лучшие практики](https://code.claude.com/docs/ru/best-practices.md#keep-cost-and-context-down).

228 228 

229## Экспорт и поиск данных сеанса229## Экспорт и поиск данных сеанса

230 230 

settings.md +1 −1

Details

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

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

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

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

330 330 

331[Что переносится из вашей установки](https://code.claude.com/docs/ru/cloud-environments.md#what-carries-over-from-your-setup) перечисляет остальное: `CLAUDE.md`, skills, MCP servers, plugins и учетные данные.331[Что переносится из вашей установки](https://code.claude.com/docs/ru/cloud-environments.md#what-carries-over-from-your-setup) перечисляет остальное: `CLAUDE.md`, skills, MCP servers, plugins и учетные данные.

332 332 

Details

1293* Команда, начинающаяся с `sudo`, `eval` или `xargs`1293* Команда, начинающаяся с `sudo`, `eval` или `xargs`

1294* `cd`, `pushd` или `popd`, где бы они ни появлялись в вызове1294* `cd`, `pushd` или `popd`, где бы они ни появлялись в вызове

1295* Подстановка команды, подоболочка или блок управления потоком, такой как `if` или `for`1295* Подстановка команды, подоболочка или блок управления потоком, такой как `if` или `for`

1296* Перенаправление, такое как `docker build . > build.log`, кроме того, которое только дублирует дескриптор файла, как `2>&1`1296* Перенаправление, такое как `docker build . > build.log` или heredoc `<<EOF`, кроме перенаправления, которое только дублирует файловый дескриптор, как `2>&1`

1297* Имя команды, которое поступает из переменной1297* Имя команды, которое поступает из переменной

1298* `git clone`, `git init`, `git worktree add`, `git worktree move` или `git bundle create` с аргументом пути, который является абсолютным, начинается с `~` или содержит сегмент `..`1298* `git clone`, `git init`, `git worktree add`, `git worktree move` или `git bundle create` с аргументом пути, который является абсолютным, начинается с `~` или содержит сегмент `..`

1299 1299 


1521 1521 

1522### `sandbox.filesystem.disabled`1522### `sandbox.filesystem.disabled`

1523 1523 

1524Пропустите изоляцию файловой системы, сохранив изоляцию сети. Изолированные команды получают неограниченный доступ на чтение и запись к файловой системе хоста, а их исходящий сетевой трафик остаётся ограниченным [`network.allowedDomains`](#sandbox-network-alloweddomains). Используйте это, когда вы изолируете команды, чтобы контролировать, куда они подключаются, а не что они записывают. Требует Claude Code v2.1.216 или более поздней версии.1524Пропускает изоляцию файловой системы, сохраняя сетевую изоляцию. Команды в песочнице получают неограниченный доступ на чтение и запись к файловой системе хоста, а их исходящий сетевой трафик остаётся ограниченным [`network.allowedDomains`](#sandbox-network-alloweddomains). Используйте этот параметр, когда песочница нужна вам для контроля того, куда подключаются команды, а не того, что они записывают.

1525 1525 

1526* **Scope**: [`User or managed`](#scopes). Когда управляемые настройки вообще настраивают `sandbox.filesystem` или содержат запись `sandbox.credentials.files` с `"mode": "deny"`, установить её могут только управляемые настройки.1526* **Scope**: [`User or managed`](#scopes). Когда управляемые настройки вообще настраивают `sandbox.filesystem` или содержат запись `sandbox.credentials.files` с `"mode": "deny"`, установить её могут только управляемые настройки.

1527* **Type**: Boolean1527* **Type**: Boolean


1545}1545}

1546```1546```

1547 1547 

1548При отключённом слое Claude Code не применяет записи `denyRead` или записи `credentials.files` с `deny`, тогда как записи `credentials.envVars` и применённые записи `mask` продолжают работать. [`autoAllowBashIfSandboxed`](#sandbox-autoallowbashifsandboxed) по-прежнему по умолчанию имеет значение `true`, поэтому установите `false`, чтобы запросы разрешений продолжались. См. [Disable filesystem isolation](https://code.claude.com/docs/ru/sandboxing.md#disable-filesystem-isolation), чтобы получить полный список источников, которые могут её установить, и узнать, что меняется при отключении изоляции. Требует Claude Code v2.1.216 или более поздней версии.1548Когда этот уровень отключён, 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).

1549 1549 

1550### `sandbox.ignoreViolations`1550### `sandbox.ignoreViolations`

1551 1551 


2392* [`CLAUDE_CODE_RESTRICTED`](https://code.claude.com/docs/ru/env-vars#variables), которую Claude Code читает только из среды запуска, игнорируется из каждого файла.2392* [`CLAUDE_CODE_RESTRICTED`](https://code.claude.com/docs/ru/env-vars#variables), которую Claude Code читает только из среды запуска, игнорируется из каждого файла.

2393* [`CLAUDE_CODE_DISABLE_POWERSHELL_CMD_RM_DENY`](https://code.claude.com/docs/ru/env-vars#variables), которую Claude Code читает только из среды запуска, игнорируется из каждого файла. Переменная требует Claude Code v2.1.283 или позже.2393* [`CLAUDE_CODE_DISABLE_POWERSHELL_CMD_RM_DENY`](https://code.claude.com/docs/ru/env-vars#variables), которую Claude Code читает только из среды запуска, игнорируется из каждого файла. Переменная требует Claude Code v2.1.283 или позже.

2394* [`CLAUDE_CODE_DISABLE_DANGEROUS_RM_TIMEOUT`, `CLAUDE_CODE_DISABLE_SUBSTITUTION_RM_PROMPT`, `CLAUDE_CODE_DISABLE_INLINE_SHELL_RM_PROMPT` и `CLAUDE_CODE_DISABLE_MOUNTED_DRIVE_RM_PROMPT`](https://code.claude.com/docs/ru/env-vars#variables), которые Claude Code читает только из среды запуска, игнорируются в любом файле.2394* [`CLAUDE_CODE_DISABLE_DANGEROUS_RM_TIMEOUT`, `CLAUDE_CODE_DISABLE_SUBSTITUTION_RM_PROMPT`, `CLAUDE_CODE_DISABLE_INLINE_SHELL_RM_PROMPT` и `CLAUDE_CODE_DISABLE_MOUNTED_DRIVE_RM_PROMPT`](https://code.claude.com/docs/ru/env-vars#variables), которые Claude Code читает только из среды запуска, игнорируются в любом файле.

2395* [`CLAUDE_CODE_EVEN_MORE_DANGEROUSLY_SKIP_PERMISSIONS`](https://code.claude.com/docs/ru/env-vars#variables), которую Claude Code читает только из среды запуска, игнорируется в любом файле.

2395* [`CLAUDE_CODE_WARN_DISK_FREE_GIB` и `CLAUDE_CODE_WARN_MEMORY_FREE_GIB`](https://code.claude.com/docs/ru/env-vars#variables), которые Claude Code читает только из среды запуска, игнорируются в любом файле. Эти переменные требуют Claude Code v2.1.304 или новее.2396* [`CLAUDE_CODE_WARN_DISK_FREE_GIB` и `CLAUDE_CODE_WARN_MEMORY_FREE_GIB`](https://code.claude.com/docs/ru/env-vars#variables), которые Claude Code читает только из среды запуска, игнорируются в любом файле. Эти переменные требуют Claude Code v2.1.304 или новее.

2396 2397 

2397### `fileCheckpointingEnabled`2398### `fileCheckpointingEnabled`


2716}2717}

2717```2718```

2718 2719 

2719См. [Короткие коды эмодзи](https://code.claude.com/docs/ru/interactive-mode.md#emoji-shortcodes). Требуется Claude Code v2.1.217 или новее.2720См. [Короткие коды эмодзи](https://code.claude.com/docs/ru/interactive-mode.md#emoji-shortcodes).

2720 2721 

2721### `fileSuggestion`2722### `fileSuggestion`

2722 2723 


3691 3692 

3692### `workflowSizeGuideline`3693### `workflowSizeGuideline`

3693 3694 

3694Задайте [количество агентов, к которому стремится Claude](https://code.claude.com/docs/ru/workflows.md#set-a-size-guideline) в создаваемых им динамических рабочих процессах. Claude Code передаёт значение Claude как рекомендацию, а не как жёсткий предел: `"small"` запрашивает менее 5 агентов, `"medium"` — менее 10, а `"large"` — менее 50. Выберите `"small"`, если хотите ограничить расходы рабочего процесса. Требуется Claude Code v2.1.219 или новее.3695Задайте [количество агентов, к которому стремится Claude](https://code.claude.com/docs/ru/workflows.md#set-a-size-guideline) в создаваемых им динамических рабочих процессах. Claude Code передаёт значение Claude как рекомендацию, а не как жёсткий предел: `"small"` запрашивает менее 5 агентов, `"medium"` — менее 10, а `"large"` — менее 50. Выберите `"small"`, если хотите ограничить расходы рабочего процесса.

3695 3696 

3696* **Область действия**: [`Any file`](#scopes). Значение из файла настроек имеет приоритет над выбором **Dynamic workflow size** в `/config`, который Claude Code хранит в `~/.claude.json`, и Claude Code скрывает эту строку, пока ключ задан в файле настроек.3697* **Область действия**: [`Any file`](#scopes). Значение из файла настроек имеет приоритет над выбором **Dynamic workflow size** в `/config`, который Claude Code хранит в `~/.claude.json`, и Claude Code скрывает эту строку, пока ключ задан в файле настроек.

3697* **Тип**: строка, одно из значений:3698* **Тип**: строка, одно из значений:


3707}3708}

3708```3709```

3709 3710 

3710Требуется Claude Code v2.1.219 или новее; в версиях с v2.1.202 по v2.1.218 вместо этого задавайте рекомендацию в `/config`.

3711 

3712## Plugins and skills3711## Plugins and skills

3713 3712 

3714Включайте плагины, регистрируйте маркетплейсы, ограничивайте источники плагинов, которые разрешены в вашей организации, и контролируйте, какие skills загружаются. Для установки и создания плагинов см. [Plugins](https://code.claude.com/docs/ru/plugins/overview.md).3713Включайте плагины, регистрируйте маркетплейсы, ограничивайте источники плагинов, которые разрешены в вашей организации, и контролируйте, какие skills загружаются. Для установки и создания плагинов см. [Plugins](https://code.claude.com/docs/ru/plugins/overview.md).

skills.md +5 −7

Details

83| Подкоманда | Что она делает | Минимальная версия |83| Подкоманда | Что она делает | Минимальная версия |

84| :- | :- | :- |84| :- | :- | :- |

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

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

87| `api-version` | Обновить ваш код Claude API для более новой [версии API](https://platform.claude.com/docs/en/api/versioning), а затем переключить ваши запросы на эту версию | v2.1.307 или позже |87| `api-version` | Обновить ваш код Claude API для более новой [версии API](https://platform.claude.com/docs/en/api/versioning), а затем переключить ваши запросы на эту версию | v2.1.307 или позже |

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

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


3713. Push to the deployment target3713. Push to the deployment target

372```372```

373 373 

374Держите само тело кратким. После загрузки skill его содержимое [остается в контексте между ходами](#skill-content-lifecycle), поэтому каждая строка — это повторяющаяся стоимость токена. Указывайте, что делать, а не рассказывайте, как или почему, и применяйте тот же тест краткости, который вы бы применили к [содержимому CLAUDE.md](https://code.claude.com/docs/ru/best-practices.md#write-an-effective-claude-md).374Держите само тело кратким. После загрузки skill его содержимое [остается в контексте между ходами](#skill-content-lifecycle), поэтому каждая строка — это повторяющаяся стоимость в токенах. Указывайте, что делать, а не рассказывайте, как или почему, и применяйте тот же тест краткости, который вы бы применили к [содержимому CLAUDE.md](https://code.claude.com/docs/ru/best-practices.md#keep-claude-md-short).

375 375 

376### Справочник Frontmatter376### Справочник Frontmatter

377 377 


388Your skill instructions here...388Your skill instructions here...

389```389```

390 390 

391Все поля являются необязательными. Рекомендуется только `description`, чтобы Claude знал, когда использовать skill. Имя поля должно точно совпадать с таблицей, включая дефисы: Claude Code игнорирует поле, которое не распознает, без сообщения об ошибке.391Все поля являются необязательными. Рекомендуется только `description`, чтобы Claude знал, когда использовать skill. Имя поля должно точно совпадать с таблицей, включая дефисы: Claude Code игнорирует поле, которое не распознает, без сообщения об ошибке. Логические поля принимают `yes`, `no`, `on`, `off`, `1` и `0` в любом регистре, в дополнение к `true` и `false`.

392 392 

393Claude Code читает frontmatter только когда открывающий `---` является первой строкой файла. В противном случае он обрабатывает весь файл, включая маркеры `---`, как содержимое skill. Если YAML между маркерами не анализируется, skill все равно загружается без установленных полей; см. [Skill не срабатывает](#skill-not-triggering), чтобы найти и исправить ошибку.393Claude Code читает frontmatter только когда открывающий `---` является первой строкой файла. В противном случае он обрабатывает весь файл, включая маркеры `---`, как содержимое skill. Если YAML между маркерами не анализируется, skill все равно загружается без установленных полей; см. [Skill не срабатывает](#skill-not-triggering), чтобы найти и исправить ошибку.

394 394 

395Логические поля принимают `yes`, `no`, `on`, `off`, `1` и `0` в любом регистре, в дополнение к `true` и `false`. До v2.1.218 Claude Code распознавал только `true` и `false`.

396 

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

398| :- | :- | :- |396| :- | :- | :- |

399| `name` | Нет | Имя команды, показываемое в меню `/`. По умолчанию используется имя каталога. См. [Как skill получает имя команды](#how-a-skill-gets-its-command-name), чтобы узнать, как это поле взаимодействует с именем, которое вы вводите для вызова skill. |397| `name` | Нет | Имя команды, показываемое в меню `/`. По умолчанию используется имя каталога. См. [Как skill получает имя команды](#how-a-skill-gets-its-command-name), чтобы узнать, как это поле взаимодействует с именем, которое вы вводите для вызова skill. |


409| `effort` | Нет | [Уровень effort](https://code.claude.com/docs/ru/model-config.md#adjust-effort-level) при активности этого skill. Переопределяет уровень effort сессии. Если поле опущено, уровень определяется [порядком разрешения уровня effort](https://code.claude.com/docs/ru/model-config.md#adjust-effort-level). Опции: `low`, `medium`, `high`, `xhigh`, `max`; доступные уровни зависят от модели. |407| `effort` | Нет | [Уровень effort](https://code.claude.com/docs/ru/model-config.md#adjust-effort-level) при активности этого skill. Переопределяет уровень effort сессии. Если поле опущено, уровень определяется [порядком разрешения уровня effort](https://code.claude.com/docs/ru/model-config.md#adjust-effort-level). Опции: `low`, `medium`, `high`, `xhigh`, `max`; доступные уровни зависят от модели. |

410| `context` | Нет | Установите значение `fork`, чтобы запустить в контексте подагента fork. См. [Запуск skills в подагенте](#run-skills-in-a-subagent). |408| `context` | Нет | Установите значение `fork`, чтобы запустить в контексте подагента fork. См. [Запуск skills в подагенте](#run-skills-in-a-subagent). |

411| `agent` | Нет | Какой тип подагента использовать, когда установлен `context: fork`. |409| `agent` | Нет | Какой тип подагента использовать, когда установлен `context: fork`. |

412| `background` | Нет | Применяется только с `context: fork`. Установите значение `false`, чтобы ждать результата подагента fork в ходе, который вызвал skill, вместо [запуска его в фоне](#run-skills-in-a-subagent). По умолчанию: `true`. Требует Claude Code v2.1.218 или позже. |410| `background` | Нет | Применяется только с `context: fork`. Установите значение `false`, чтобы ждать результата субагента fork в ходе, который вызвал skill, вместо [запуска его в фоне](#run-skills-in-a-subagent). По умолчанию: `true`. |

413| `hooks` | Нет | Хуки, которые Claude Code регистрирует при вызове skill и продолжает запускать для остальной части сессии. См. [Хуки в skills и агентах](https://code.claude.com/docs/ru/hooks.md#hooks-in-skills-and-agents) для формата конфигурации, опции `once` и [ограничений хуков skills](https://code.claude.com/docs/ru/hooks.md#limits-on-skill-hooks). |411| `hooks` | Нет | Хуки, которые Claude Code регистрирует при вызове skill и продолжает запускать для остальной части сессии. См. [Хуки в skills и агентах](https://code.claude.com/docs/ru/hooks.md#hooks-in-skills-and-agents) для формата конфигурации, опции `once` и [ограничений хуков skills](https://code.claude.com/docs/ru/hooks.md#limits-on-skill-hooks). |

414| `paths` | Нет | Glob-паттерны, которые ограничивают, когда этот skill активируется. Принимает строку, разделенную запятыми, или список YAML. Когда установлено, Claude загружает skill автоматически только при работе с файлами, соответствующими паттернам. Паттерны задаются относительно текущего рабочего каталога Claude, и файлы вне этого каталога им не соответствуют. Использует тот же формат glob, что и [правила для конкретных путей](https://code.claude.com/docs/ru/memory.md#path-specific-rules). |412| `paths` | Нет | Glob-паттерны, которые ограничивают, когда этот skill активируется. Принимает строку, разделенную запятыми, или список YAML. Когда установлено, Claude загружает skill автоматически только при работе с файлами, соответствующими паттернам. Паттерны задаются относительно текущего рабочего каталога Claude, и файлы вне этого каталога им не соответствуют. Использует тот же формат glob, что и [правила для конкретных путей](https://code.claude.com/docs/ru/memory.md#path-specific-rules). |

415| `shell` | Нет | Shell для использования в `` !`command` `` и ` ```! ` блоках в этом skill. Принимает `bash` (по умолчанию) или `powershell`. Установка `powershell` запускает встроенные shell-команды через PowerShell, когда [инструмент PowerShell](https://code.claude.com/docs/ru/tools-reference.md#powershell-tool) включен: он включен по умолчанию на Windows без Git Bash, включен по умолчанию с Git Bash для claude.ai и учетных записей Console, и требует `CLAUDE_CODE_USE_POWERSHELL_TOOL=1` в сеансах Amazon Bedrock, Google Cloud's Agent Platform и Microsoft Foundry, а также на macOS, Linux и WSL. Установите значение `0`, чтобы отключить инструмент. |413| `shell` | Нет | Shell для использования в `` !`command` `` и ` ```! ` блоках в этом skill. Принимает `bash` (по умолчанию) или `powershell`. Установка `powershell` запускает встроенные shell-команды через PowerShell, когда [инструмент PowerShell](https://code.claude.com/docs/ru/tools-reference.md#powershell-tool) включен: он включен по умолчанию на Windows без Git Bash, включен по умолчанию с Git Bash для claude.ai и учетных записей Console, и требует `CLAUDE_CODE_USE_POWERSHELL_TOOL=1` в сеансах Amazon Bedrock, Google Cloud's Agent Platform и Microsoft Foundry, а также на macOS, Linux и WSL. Установите значение `0`, чтобы отключить инструмент. |


800>798>

801> Несмотря на название, скилл с `context: fork` не выполняется в [ответвлении текущего диалога](https://code.claude.com/docs/ru/sub-agents.md#fork-the-current-conversation), которое передало бы субагенту всё, что вы успели обсудить. Если задача зависит от этой истории, ответвите диалог вместо использования `context: fork`.799> Несмотря на название, скилл с `context: fork` не выполняется в [ответвлении текущего диалога](https://code.claude.com/docs/ru/sub-agents.md#fork-the-current-conversation), которое передало бы субагенту всё, что вы успели обсудить. Если задача зависит от этой истории, ответвите диалог вместо использования `context: fork`.

802 800 

803Ответвлённый субагент выполняется в [фоне](https://code.claude.com/docs/ru/sub-agents.md#run-subagents-in-foreground-or-background): вы продолжаете работать, пока он выполняется, а его результат появляется в вашем диалоге по завершении. Задайте `background: false` во frontmatter, чтобы вместо этого ждать результата в том ходе, который вызвал скилл. До v2.1.218 ответвлённые скиллы всегда блокировали ход до своего завершения.801Ответвлённый субагент выполняется в [фоне](https://code.claude.com/docs/ru/sub-agents.md#run-subagents-in-foreground-or-background): вы продолжаете работать, пока он выполняется, а его результат появляется в вашем диалоге по завершении. Задайте `background: false` во frontmatter, чтобы вместо этого ждать результата в том ходе, который вызвал скилл.

804 802 

805Claude Code также ждёт результата, даже если скилл не задаёт `background: false`, в таких случаях:803Claude Code также ждёт результата, даже если скилл не задаёт `background: false`, в таких случаях:

806 804 

sub-agents.md +3 −10

Details

352* **Full model ID**: используйте полный ID модели, такой как `claude-opus-5-5` или `claude-sonnet-5`. Принимает те же значения, что и флаг `--model`352* **Full model ID**: используйте полный ID модели, такой как `claude-opus-5-5` или `claude-sonnet-5`. Принимает те же значения, что и флаг `--model`

353* **inherit**: используйте ту же модель, что и основной разговор353* **inherit**: используйте ту же модель, что и основной разговор

354 354 

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

356 356 

3571. Параметр `model` для конкретного вызова3571. Параметр `model` для конкретного вызова

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


760>760>

761> Frontmatter hooks срабатывают, когда агент порождается как subagent через инструмент Agent или @-упоминание, и когда агент работает как основной агент сессии через [`--agent`](#invoke-subagents-explicitly) или параметр `agent`. В случае основной сессии они запускаются вместе с любыми hooks, определёнными в [`settings.json`](https://code.claude.com/docs/ru/hooks).761> Frontmatter hooks срабатывают, когда агент порождается как subagent через инструмент Agent или @-упоминание, и когда агент работает как основной агент сессии через [`--agent`](#invoke-subagents-explicitly) или параметр `agent`. В случае основной сессии они запускаются вместе с любыми hooks, определёнными в [`settings.json`](https://code.claude.com/docs/ru/hooks).

762 762 

763Чтобы позволить frontmatter hooks subagent уровня проекта запуститься, примите [диалог доверия рабочего пространства](https://code.claude.com/docs/ru/permissions.md#project-allow-rules-and-workspace-trust) для папки, которая содержит файл агента. Hooks из user-level subagents в `~/.claude/agents/` и из определений, которые вы передаёте с помощью `--agents`, запускаются без этого шага. Если вы добавили папку с помощью `--add-dir` из вне репозитория вашего доверенного рабочего пространства, доверьте эту папку отдельно: её hooks `.claude/agents/` не наследуют доверие рабочего пространства.763Чтобы хуки во frontmatter субагента уровня проекта могли запускаться, примите [диалоговое окно доверия рабочему пространству](https://code.claude.com/docs/ru/permissions.md#project-allow-rules-and-workspace-trust) для папки, содержащей файл агента. Хуки пользовательских субагентов из `~/.claude/agents/` и определений, переданных через `--agents`, запускаются без этого шага. Если вы добавили с помощью `--add-dir` папку вне репозитория вашего доверенного рабочего пространства, доверьтесь этой папке отдельно: хуки из её `.claude/agents/` не наследуют доверие рабочего пространства.

764 764 

765До тех пор, пока вы не доверяете папке, subagent по-прежнему работает, но Claude Code пропускает его frontmatter hooks и регистрирует ошибку в журнал отладки, объясняющую, как доверить папке. Это более строгое правило, чем для hooks в файлах настроек: доверие родительской папки недостаточно, и сессия `-p` не считается доверенной. [What runs before you trust a folder](https://code.claude.com/docs/ru/permissions.md#what-runs-before-you-trust-a-folder) сравнивает эти два. До версии 2.1.218 frontmatter hooks могли запускаться из папок, которым вы не доверяли, включая в non-interactive сессиях.765Пока вы не доверитесь папке, субагент всё равно работает, но Claude Code пропускает его хуки во frontmatter и записывает в лог отладки ошибку с объяснением, как довериться папке. Это правило строже, чем для хуков в файлах настроек: доверия родительской папке недостаточно, а сессия `-p` не считается доверенной. Сравнение двух правил см. в разделе [What runs before you trust a folder](https://code.claude.com/docs/ru/permissions.md#what-runs-before-you-trust-a-folder).

766 766 

767Поддерживаются все [hook events](https://code.claude.com/docs/ru/hooks.md#hook-events). Наиболее распространённые события для subagents:767Поддерживаются все [hook events](https://code.claude.com/docs/ru/hooks.md#hook-events). Наиболее распространённые события для subagents:

768 768 


1075 1075 

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

1077 1077 

1078> [!NOTE]

1079>

1080> В более ранних версиях использовались другие значения по умолчанию:

1081>

1082> * **С v2.1.172 по v2.1.216**: субагенты по умолчанию могли вкладываться до пяти уровней, и этот лимит нельзя было изменить.

1083> * **С v2.1.217 по v2.1.218**: лимит по умолчанию равнялся одному, поэтому субагент не мог порождать собственных субагентов, пока вы не повышали лимит; в v2.1.219 значение по умолчанию было повышено до трёх.

1084 

1085### Лимит одновременных субагентов1078### Лимит одновременных субагентов

1086 1079 

1087Использование субагентов регулируют два лимита, у каждого из которых своя переменная: этот не позволяет Claude порождать новых субагентов, пока их работает слишком много, а [лимит глубины](#let-subagents-spawn-their-own-subagents) ограничивает глубину вложенности субагентов. Ограничения на общее число субагентов, которых Claude может породить за сессию, нет.1080Использование субагентов регулируют два лимита, у каждого из которых своя переменная: этот не позволяет Claude порождать новых субагентов, пока их работает слишком много, а [лимит глубины](#let-subagents-spawn-their-own-subagents) ограничивает глубину вложенности субагентов. Ограничения на общее число субагентов, которых Claude может породить за сессию, нет.

Details

223> | :- | :- |223> | :- | :- |

224> | `success` | Сообщения об успехе и прошедшие проверки |224> | `success` | Сообщения об успехе и прошедшие проверки |

225> | `error` | Сообщения об ошибках и отказы |225> | `error` | Сообщения об ошибках и отказы |

226> | `warning` | Предупреждения, сообщения о предостережении и граница режима auto |226> | `warning` | Предупреждения, сообщения о предостережении и индикатор режима auto |

227> | `merged` | Статус объединённого запроса на слияние |227> | `merged` | Статус объединённого запроса на слияние |

228>228>

229> #### Поле ввода и индикаторы режима229> #### Поле ввода и индикаторы режима


290>290>

291> Каждый [subagent](https://code.claude.com/docs/ru/sub-agents.md) и параллельная задача отображаются в одном из восьми именованных цветов, чтобы вы могли отличить их в стенограмме. Имена токенов следуют шаблону `<color>_FOR_SUBAGENTS_ONLY`, где `<color>` — это `red`, `blue`, `green`, `yellow`, `purple`, `orange`, `pink` или `cyan`. Переопределите их, чтобы изменить внешний вид каждого именованного цвета. Например, подагент с `color: blue` в его определении отрисовывается с использованием значения `blue_FOR_SUBAGENTS_ONLY`.291> Каждый [subagent](https://code.claude.com/docs/ru/sub-agents.md) и параллельная задача отображаются в одном из восьми именованных цветов, чтобы вы могли отличить их в стенограмме. Имена токенов следуют шаблону `<color>_FOR_SUBAGENTS_ONLY`, где `<color>` — это `red`, `blue`, `green`, `yellow`, `purple`, `orange`, `pink` или `cyan`. Переопределите их, чтобы изменить внешний вид каждого именованного цвета. Например, подагент с `color: blue` в его определении отрисовывается с использованием значения `blue_FOR_SUBAGENTS_ONLY`.

292>292>

293> Claude Code отрисовывает ключевое слово [`ultrathink`](https://code.claude.com/docs/ru/model-config#use-ultrathink-for-one-off-deep-reasoning) во входных данных приглашения с семицветным радужным градиентом. Имена токенов следуют шаблону `rainbow_<color>` и `rainbow_<color>_shimmer`, где `<color>` — это `red`, `orange`, `yellow`, `green`, `blue`, `indigo` или `violet`.293> Когда [`ultrathink`](https://code.claude.com/docs/ru/model-config#use-ultrathink-for-one-off-deep-reasoning) может повысить уровень усилий для хода, Claude Code отрисовывает это слово в поле ввода промпта семицветным радужным градиентом. Имена токенов следуют шаблону `rainbow_<color>` и `rainbow_<color>_shimmer`, где `<color>` — это `red`, `orange`, `yellow`, `green`, `blue`, `indigo` или `violet`.

294 294 

295## Переключение на полноэкранный рендеринг295## Переключение на полноэкранный рендеринг

296 296 

ultrareview.md +40 −38

Details

22 22 

23## Запуск ultrareview из CLI23## Запуск ultrareview из CLI

24 24 

25Начните анализ из любого репозитория git:25Запустите ревью из любого Git-репозитория:

26 26 

27```text theme={null}27```text theme={null}

28/code-review ultra28/code-review ultra

29```29```

30 30 

31Без аргументов ultrareview анализирует разницу между вашей текущей веткой и веткой по умолчанию, включая незафиксированные и подготовленные изменения.31Без аргументов ultrareview проверяет diff между вашей текущей веткой и веткой по умолчанию, включая незакоммиченные и проиндексированные изменения.

32 32 

33Для анализа ветки Claude Code упаковывает состояние репозитория и загружает его в облачную песочницу по правилам [загрузки локального репозитория в облачную сессию](https://code.claude.com/docs/ru/claude-code-on-the-web.md#send-local-repositories-without-github). Эти правила охватывают ограничения размера, требования к рабочей копии и то, что происходит с незафиксированными изменениями в файлах, названных как учётные данные или ключи, таких как файлы `.env` и `*.tfvars`. Когда вы [анализируете pull request](#review-a-pull-request), Claude Code ничего не загружает с вашей машины.33При ревью ветки Claude Code упаковывает состояние репозитория и загружает его в облачную песочницу по правилам [загрузки локального репозитория в облачную сессию](https://code.claude.com/docs/ru/claude-code-on-the-web.md#send-local-repositories-without-github). Эти правила описывают ограничения по размеру, требования к рабочей копии и то, что происходит с незакоммиченными изменениями в файлах, имена которых похожи на учётные данные или ключи, например `.env` и `*.tfvars`. Когда вы [проверяете pull request](#review-a-pull-request), Claude Code ничего не загружает с вашего компьютера.

34 34 

35Перед запуском Claude Code показывает диалоговое окно подтверждения с областью анализа, оставшимися бесплатными запусками и предполагаемой стоимостью; для анализа ветки область включает количество файлов и строк. После подтверждения анализ продолжается в фоновом режиме, пока вы продолжаете использовать вашу сессию.35Перед запуском Claude Code показывает диалоговое окно подтверждения с областью ревью, количеством оставшихся бесплатных запусков и оценочной стоимостью; при ревью ветки в область входит количество файлов и строк. После подтверждения ревью продолжается в фоновом режиме, а вы можете продолжать работать в сессии.

36 36 

37Команда запускается только при вызове с помощью `/code-review ultra`; Claude не запускает ultrareview самостоятельно.37Команда выполняется только тогда, когда вы вызываете её через `/code-review ultra`; Claude не запускает ultrareview самостоятельно.

38 38 

39### Анализ относительно другой базы39### Ревью относительно другой базы

40 40 

41Чтобы сравнить с базой, отличной от ветви по умолчанию, передайте имя ветви. Этот пример анализирует вашу текущую ветвь относительно `develop`:41Чтобы сравнить с базой, отличной от ветки по умолчанию, передайте имя ветки. В этом примере текущая ветка проверяется относительно `develop`:

42 42 

43```text theme={null}43```text theme={null}

44/code-review ultra develop44/code-review ultra develop

45```45```

46 46 

47Базовая ветвь не должна существовать в вашем локальном клоне; Claude Code получает её из `origin`. Если имя содержит опечатку, Claude Code предлагает ближайшее имя ветви в ошибке.47Базовой ветке не обязательно существовать в вашем локальном клоне: Claude Code получает её из `origin`. Если в имени есть опечатка, Claude Code предложит в сообщении об ошибке ближайшее подходящее имя ветки.

48 48 

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

50 50 

51### Анализ запроса на слияние51### Ревью pull request

52 52 

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

54 54 

55```text theme={null}55```text theme={null}

56/code-review ultra 123456/code-review ultra 1234


58 58 

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

60 60 

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

62 62 

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

64 64 

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

66 66 

67### Опубликуйте результаты в запросе на слияние67### Публикация результатов в pull request

68 68 

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

70 70 

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

72 72 

73* **Интерактивно**: в диалоговом окне запуска выберите **Run and post the findings to the PR as me**. Если вы добавите `--post` к команде, как в `/code-review ultra 1234 --post`, Claude Code предварительно выбирает этот выбор и все еще спрашивает перед запуском.73* **Интерактивно**: в диалоговом окне запуска выберите **Run and post the findings to the PR as me**. Если добавить к команде `--post`, например `/code-review ultra 1234 --post`, Claude Code заранее выберет этот вариант, но всё равно спросит перед запуском.

74* **Неинтерактивно**: запустите [подкоманду `claude ultrareview`](#run-ultrareview-non-interactively) с `--post`. Вы даете согласие на публикацию, запустив подкоманду с флагом, поэтому Claude Code публикует без вопросов. В запуске `claude -p '/code-review ultra'` Claude Code выходит перед прибытием результатов, поэтому ничего не публикует; используйте подкоманду вместо этого.74* **Неинтерактивно**: запустите [подкоманду `claude ultrareview`](#run-ultrareview-non-interactively) с `--post`. Запуская подкоманду с этим флагом, вы даёте согласие на публикацию, поэтому Claude Code публикует без вопросов. При запуске `claude -p '/code-review ultra'` Claude Code завершает работу до поступления результатов, поэтому ничего не публикует; используйте вместо этого подкоманду.

75 75 

76Claude Code не публикует с вашей машины. Он отправляет ID сессии анализа в API Anthropic, который публикует сохраненные результаты анализа как комментарий через учетную запись GitHub, которую вы подключили к Claude. Публикация требует того же входа claude.ai, что и сам анализ, и она недоступна у сторонних поставщиков или когда вы установили [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](https://code.claude.com/docs/ru/env-vars).76Claude Code не публикует с вашего компьютера. Он отправляет идентификатор сессии ревью в Anthropic API, который публикует сохранённые результаты ревью в виде комментария через аккаунт GitHub, подключённый к Claude. Для публикации требуется тот же вход в claude.ai, что и для самого ревью; она недоступна у сторонних провайдеров и при установленной переменной [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](https://code.claude.com/docs/ru/env-vars).

77 77 

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

79 79 

80Когда публикация завершается, Claude сообщает вам результат:80По завершении публикации Claude сообщает результат:

81 81 

82* **Опубликовано**: Claude дает вам ссылку на комментарий.82* **Опубликовано**: Claude даёт ссылку на комментарий.

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

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

85 85 

86### Передайте запрос простыми словами86### Запрос обычными словами

87 87 

88На Claude Code версии 2.1.218 или позже вы также можете описать, над чем вы работаете, простыми словами:88Вы также можете описать, над чем работаете, обычными словами:

89 89 

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

91/code-review ultra check my auth changes91/code-review ultra check my auth changes

92```92```

93 93 

94Анализ по-прежнему охватывает вашу текущую ветвь, ту же область, что и запуск без аргумента. Claude сохраняет ваш текст как примечание, показанное в диалоговом окне запуска, и связывает результаты с ним, когда они прибывают.94Ревью по-прежнему охватывает вашу текущую ветку — ту же область, что и при запуске без аргумента. Claude сохраняет ваш текст как заметку, показывает её в диалоговом окне запуска и соотносит с ней результаты, когда они поступают.

95 95 

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

97 97 

98> [!TIP]98> [!TIP]

99>99>

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

101 101 

102### Ограничения diff и резервные варианты102### Ограничения diff и резервные варианты

103 103 

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

105 105 

106* **Diff слишком большой**: анализ ветки может включать до 500 измененных файлов и 8000 измененных строк по умолчанию. Точные значения могут измениться, и [отказ](https://code.claude.com/docs/ru/errors.md#diff-is-too-large-for-ultrareview) указывает на действующие значения, размер вашего diff и файлы с наибольшим количеством измененных строк. Claude Code отказывает в анализе слишком большого запроса на слияние таким же образом, указывая количество файлов и строк, но не разбивку по файлам106* **Diff слишком велик**: по умолчанию ревью ветки может включать до 500 изменённых файлов и 8 000 изменённых строк. Точные значения могут меняться, а в [сообщении об отказе](https://code.claude.com/docs/ru/errors.md#diff-is-too-large-for-ultrareview) указываются действующие значения, размер вашего diff и файлы с наибольшим числом изменённых строк. Слишком большой pull request Claude Code отклоняет так же, указывая количество файлов и строк, но без разбивки по файлам

107* **Нечего анализировать**: когда diff относительно базы пуст, ultrareview отказывает и указывает на ветвь или коммит, с которым он сравнивал, и случай, в котором вы находитесь, например, находитесь на самой базовой ветви без ничего незафиксированного, или ветвь, чьи коммиты уже являются частью базы. Он также предлагает способ выхода для этого случая, например переключение на ветвь с вашей работой, подготовка или фиксация локальных правок или передача другой базы107* **Нечего проверять**: если diff относительно базы пуст, ultrareview отказывается и называет ветку или коммит, с которыми выполнялось сравнение, а также вашу ситуацию — например, вы находитесь на самой базовой ветке без незакоммиченных изменений или все коммиты ветки уже входят в базу. Он также предлагает выход для этой ситуации: переключиться на ветку с вашей работой, проиндексировать или закоммитить локальные правки либо указать другую базу

108* **Первый коммит**: первый коммит репозитория не имеет ничего более раннего для сравнения, поэтому ultrareview анализирует каждый файл в нем после вашего подтверждения в диалоговом окне запуска. Если у вас есть неотслеживаемые файлы, он отказывает вместо этого и говорит вам `git add` те, которые вы хотите анализировать. Применяются те же ограничения размера.108* **Первый коммит**: у первого коммита репозитория нет ничего более раннего для сравнения, поэтому ultrareview проверяет все файлы в нём после вашего подтверждения в диалоговом окне запуска. Если у вас есть неотслеживаемые файлы, он вместо этого отказывается и предлагает выполнить `git add` для файлов, которые нужно проверить. Действуют те же ограничения по размеру.

109 109 

110 Первый коммит анализируется целиком только после этого подтверждения, поэтому подкоманда `claude ultrareview` и `claude -p` отказывают в нем и указывают вам на интерактивную сессию вместо этого. Требует Claude Code версии 2.1.277 или позже110 Первый коммит проверяется целиком только после такого подтверждения, поэтому подкоманда `claude ultrareview` и `claude -p` отклоняют его и предлагают использовать интерактивную сессию. Требуется Claude Code v2.1.277 или новее

111* **Нет базы слияния**: когда ваша ветвь не имеет общей истории с базовой ветвью, или репозиторий не имеет базовой ветви для сравнения, ultrareview анализирует каждый отслеживаемый файл в репозитории вместо этого. Резервный вариант требует полного клона и применяет те же ограничения размера. Он запускается только когда вы подтверждаете в диалоговом окне запуска или запускаете подкоманду `claude ultrareview` самостоятельно. В `claude -p` и везде, где ни то, ни другое не происходит, ultrareview отказывает, говорит, что анализ охватит каждый файл, и указывает вам на интерактивную сессию.111* **Нет базы слияния**: если у вашей ветки нет общей истории с базовой веткой или в репозитории нет базовой ветки для сравнения, ultrareview вместо этого проверяет все отслеживаемые файлы репозитория. Этот резервный вариант требует полного клона и подчиняется тем же ограничениям по размеру. Он запускается только при подтверждении в диалоговом окне запуска или при самостоятельном запуске подкоманды `claude ultrareview`. В `claude -p` и везде, где ни то ни другое невозможно, ultrareview отказывается, сообщает, что ревью охватило бы все файлы, и предлагает использовать интерактивную сессию.

112 112 

113 При проверке без ветвей или других ссылок, такой как отсоединенный HEAD, созданный путем проверки `FETCH_HEAD` после получения URL, Claude Code [отказывает в анализе](https://code.claude.com/docs/ru/errors.md#your-checkout-has-no-branches) и предлагает сначала создать ветвь113 В рабочей копии без веток и других ссылок, например в состоянии detached HEAD, созданном переключением на `FETCH_HEAD` после получения по URL, Claude Code [отклоняет ревью](https://code.claude.com/docs/ru/errors.md#your-checkout-has-no-branches) и предлагает сначала создать ветку

114 114 

115## Цены и бесплатные запуски115## Цены и бесплатные запуски

116 116 


159 159 

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

161 161 

162`claude -p '/code-review ultra'` не возвращает вам результаты, поэтому в скриптах используйте `claude ultrareview`. Запуск с `-p` запускает облачный обзор и завершается, не дожидаясь его окончания. Если обзор будет списывать кредиты использования, запуск с `-p` останавливается, не запуская его. До v2.1.218 `/code-review ultra` в неинтерактивной сессии запускал локальный обзор.162> [!NOTE]

163>

164> `claude -p '/code-review ultra'` не возвращает вам результаты, поэтому в скриптах используйте `claude ultrareview`. Запуск с `-p` запускает облачный обзор и завершается, не дожидаясь его окончания. Если обзор будет списывать кредиты использования, запуск с `-p` останавливается, не запуская его.

163 165 

164| Флаг | Описание |166| Флаг | Описание |

165| - | - |167| - | - |

Details

182* Также можно нажать **Changes** в строке заголовка сессии или в меню **⋮** этой строки.182* Также можно нажать **Changes** в строке заголовка сессии или в меню **⋮** этой строки.

183* Чтобы показать панель, когда она скрыта, нажмите значок **Show session rail** в строке заголовка сессии или в меню **⋮** этой строки.183* Чтобы показать панель, когда она скрыта, нажмите значок **Show session rail** в строке заголовка сессии или в меню **⋮** этой строки.

184 184 

185Diff по умолчанию сравнивает изменения сессии с ее базовой веткой. Чтобы сравнить с другой веткой, выберите **Compare against** и выберите одну.185Diff по умолчанию сравнивает изменения сессии с ее базовой веткой. Чтобы сравнить с другой веткой, выберите **Compare against** и выберите одну. При сравнении с базовой веткой diff может [не включать изменения, которые еще не отправлены](https://code.claude.com/docs/ru/claude-code-on-the-web.md#troubleshoot-a-missing-file-in-the-diff-view).

186 186 

187**2. Оставляйте встроенные комментарии**187**2. Оставляйте встроенные комментарии**

188 188 

189Выберите любую строку в diff, введите свой отзыв и нажмите Enter. Комментарии накапливаются до тех пор, пока вы не отправите следующее сообщение, затем они объединяются с ним. Claude видит "at `src/auth.ts:47`, don't catch the error here" вместе с вашей основной инструкцией, поэтому вам не нужно описывать, где проблема.189Наведите указатель на строку в diff и нажмите **+**, который появляется рядом с номером строки, чтобы открыть поле комментария, затем введите свой отзыв и нажмите Enter. Комментарии накапливаются до тех пор, пока вы не отправите следующее сообщение, затем они объединяются с ним. Claude видит "at `src/auth.ts:47`, don't catch the error here" вместе с вашей основной инструкцией, поэтому вам не нужно описывать, где проблема.

190 190 

191**3. Создайте pull request**191**3. Создайте pull request**

192 192 

workflows.md +69 −73

Details

155* [concurrent subagent limit](https://code.claude.com/docs/ru/sub-agents.md#concurrent-subagent-limit) сессии не применяется для подагентов, которых Claude создаёт с помощью инструмента Agent155* [concurrent subagent limit](https://code.claude.com/docs/ru/sub-agents.md#concurrent-subagent-limit) сессии не применяется для подагентов, которых Claude создаёт с помощью инструмента Agent

156* В режиме автоматического разрешения вас не просят [одобрить первый запуск workflow](#approve-the-plan-before-it-runs)156* В режиме автоматического разрешения вас не просят [одобрить первый запуск workflow](#approve-the-plan-before-it-runs)

157 157 

158`/effort ultracode` длится для текущей сессии; чтобы каждая сессия начиналась с ним, установите параметр [`ultracode`](https://code.claude.com/docs/ru/settings-reference#ultracode). Отключите его с помощью `/effort ultracode off`, когда вы вернётесь к рутинной работе. Ползунок `/effort` предлагает переключатель только [когда ultracode доступен](https://code.claude.com/docs/ru/model-config.md#when-ultracode-is-available).158`/effort ultracode` действует в течение текущей сессии; чтобы каждая сессия начиналась с ним, установите настройку [`ultracode`](https://code.claude.com/docs/ru/settings-reference#ultracode). Отключите его с помощью `/effort ultracode off`, когда вернётесь к рутинной работе. Ползунок `/effort` предлагает переключатель только [когда ultracode доступен](https://code.claude.com/docs/ru/model-config.md#when-ultracode-is-available). До версии v2.1.284 `/effort ultracode` устанавливал для сессии уровень `xhigh`, а `/effort ultracode off` завершался ошибкой `Invalid argument`.

159 159 

160### Одобрить план перед его запуском160### Одобрить план перед его запуском

161 161 


198* `.claude/workflows/` в вашем проекте: общее с каждым, кто клонирует репо198* `.claude/workflows/` в вашем проекте: общее с каждым, кто клонирует репо

199* `~/.claude/workflows/` в вашем домашнем каталоге: доступно в каждом проекте, видимо только вам. Если вы установили [`CLAUDE_CONFIG_DIR`](https://code.claude.com/docs/ru/env-vars), это местоположение — это каталог `workflows/` под этим путём.199* `~/.claude/workflows/` в вашем домашнем каталоге: доступно в каждом проекте, видимо только вам. Если вы установили [`CLAUDE_CONFIG_DIR`](https://code.claude.com/docs/ru/env-vars), это местоположение — это каталог `workflows/` под этим путём.

200 200 

201Диалог сохранения показывает разрешённый путь для личного местоположения.201Диалоговое окно сохранения показывает полный путь для личного местоположения. Нажмите Enter для сохранения. Workflow запускается как `/<name>` в будущих сессиях из любого местоположения.

202 202 

203Нажмите Enter для сохранения. Workflow запускается как `/<name>` в будущих сессиях из любого местоположения.203Claude Code проверяет местоположение сохранения на наличие символических ссылок перед записью и показывает ошибку вместо записи через символическую ссылку:

204 

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

206 204 

207* Местоположение проекта: Claude Code отказывает, если `.claude`, `.claude/workflows` или целевой файл является символической ссылкой.205* Местоположение проекта: Claude Code отказывает, если `.claude`, `.claude/workflows` или целевой файл является символической ссылкой.

208* Личное местоположение: Claude Code отказывает только если сам целевой файл является символической ссылкой, поэтому каталог `~/.claude`, управляемый инструментом dotfiles, всё ещё работает.206* Личное местоположение: Claude Code отказывает только если сам целевой файл является символической ссылкой, поэтому каталог `~/.claude`, управляемый инструментом dotfiles, всё ещё работает.

209 207 

210До версии 2.1.216 Claude Code следовал ссылке, что могло поместить файл вне выбранного вами местоположения.

211 

212В монорепо с несколькими каталогами `.claude/` вы можете хранить workflows рядом с пакетом, к которому они применяются. Сохранение в местоположение проекта записывает в ближайший каталог `.claude/workflows/`, который уже существует между вашей рабочей директорией и корнем репозитория, или в корень репозитория, если ни один ещё не существует. Workflows проекта также загружаются из каждого `.claude/workflows/` вдоль этого пути, и когда более одного определяет одно имя, Claude Code запускает тот, который ближе всего к рабочей директории.208В монорепо с несколькими каталогами `.claude/` вы можете хранить workflows рядом с пакетом, к которому они применяются. Сохранение в местоположение проекта записывает в ближайший каталог `.claude/workflows/`, который уже существует между вашей рабочей директорией и корнем репозитория, или в корень репозитория, если ни один ещё не существует. Workflows проекта также загружаются из каждого `.claude/workflows/` вдоль этого пути, и когда более одного определяет одно имя, Claude Code запускает тот, который ближе всего к рабочей директории.

213 209 

214Если project workflow и personal workflow имеют одно имя, запускается project.210Если project workflow и personal workflow имеют одно имя, запускается project.


363 359 

364## Управление запусками360## Управление запусками

365 361 

366Как только запуск начинается, вы управляете им из представления `/workflows`, или расширяя его строку прогресса в панели задач ниже поля ввода.362После начала запуска вы управляете им из представления `/workflows` или развернув строку его прогресса в панели задач под полем ввода.

367 363 

368Когда вы останавливаете запуск, он остаётся в панели задач, пока процессы любого из его агентов всё ещё работают. Если вы остановите его снова, Claude Code повторно отправляет сигналы этим процессам.364Когда вы останавливаете запуск, он остаётся в панели задач, пока процессы каких-либо его агентов ещё выполняются. Если вы остановите его снова, Claude Code повторно отправит сигнал этим процессам.

369 365 

370### Возобновить после паузы366### Возобновление после паузы

371 367 

372Возобновите приостановленный запуск из `/workflows`, выбрав его и нажав `p`. Для запуска, который вы остановили, попросите Claude перезапустить workflow с тем же скриптом. Если агенты из остановленного запуска ещё не завершились, Claude Code отказывает в перезапуске до тех пор, пока они не завершатся, чтобы вторая копия этих агентов не могла работать рядом с ними.368Чтобы возобновить приостановленный запуск, выберите его в `/workflows` и нажмите `p`. Для остановленного вами запуска попросите Claude перезапустить рабочий процесс с тем же скриптом. Если агенты из остановленного запуска ещё не завершились, Claude Code отказывает в перезапуске, пока они не завершатся, чтобы вторая копия этих агентов не могла работать параллельно с ними.

373 369 

374#### Какие агенты запускаются снова370#### Какие агенты запускаются повторно

375 371 

376Claude Code воспроизводит запуск в порядке запуска агентов, и каждый агент либо возвращает свой сохранённый результат, либо работает снова:372Claude Code воспроизводит запуск в том порядке, в котором стартуют агенты, и каждый агент либо возвращает сохранённый результат, либо выполняется снова:

377 373 

378* **Завершено**: возвращает свой сохранённый результат. Первый агент, чей запрос отличается от предыдущего запуска, потому что вы отредактировали скрипт или более ранний агент вернул что-то другое, работает снова, и так же поступает каждый агент после него, даже те, которые завершились.374* **Завершённый**: возвращает сохранённый результат. Первый агент, чей промпт отличается от предыдущего запуска, потому что вы отредактировали скрипт или более ранний агент вернул что-то другое, выполняется снова, как и каждый агент после него, даже завершённые.

379 375 

380 До v2.1.305 завершённые агенты также могли запускаться снова, когда вы перезапускали неотредактированный скрипт, в котором каждый элемент `pipeline()` или каждая задача `parallel()` запускали более одного агента. Чтобы новые запуски не выполняли такие повторные запуски, обновите Claude Code.376 До v2.1.305 завершённые агенты также могли выполняться снова, когда вы перезапускали неизменённый скрипт, в котором элементы `pipeline()` или задачи `parallel()` запускали более одного агента каждый. Чтобы прекратить такие повторные выполнения для новых запусков, обновите Claude Code.

381* **Всё ещё работал, когда вы остановили**: начинает заново. Остановка всего запуска не считает ни одного агента неудачным.377* **Ещё выполнявшийся на момент остановки**: начинает заново. Остановка всего запуска не засчитывает ни одного агента как завершившегося с ошибкой.

382* **Не удалось**: работает снова, и так же поступает каждый агент, который скрипт запускает после него, даже те, которые завершились. Остановка одного агента отдельно, выбрав его в [`/workflows`](#watch-the-run) и нажав `x`, считается неудачей.378* **Завершившийся с ошибкой**: выполняется снова, как и каждый агент, которого скрипт запускает после него, даже завершённые. Остановка отдельного агента, когда вы выбираете его в [`/workflows`](#watch-the-run) и нажимаете `x`, считается ошибкой.

383 379 

384Последний случай означает, что сбой в середине fan-out повторно запускает работу, которая уже завершилась. Если скрипт запускает A, B, C и D в этом порядке и B не удаётся, перезапуск возвращает A из кэша и снова запускает B, C и D.380Последний случай означает, что ошибка посреди параллельного ветвления приводит к повторному выполнению уже завершённой работы. Если скрипт запускает A, B, C и D в таком порядке и B завершается с ошибкой, перезапуск возвращает A из кэша и снова выполняет B, C и D.

385 381 

386Если вы отредактируете скрипт, который запускал A, B, C и D, так, чтобы он запускал A, C, B и D, вторым запускаемым агентом теперь будет C, тогда как в предыдущем запуске вторым был B. Перезапуск возвращает A из кэша и снова запускает C, B и D.382Если вы отредактируете скрипт, запускавший A, B, C и D, так, что он запускает A, C, B и D, то вторым стартующим агентом теперь будет C, тогда как в предыдущем запуске стартовал B. Перезапуск возвращает A из кэша и снова выполняет C, B и D.

387 383 

388#### Возобновить после выхода из сессии384#### Возобновление после выхода из сессии

389 385 

390Если вы переводите сессию в фоновый режим или выходите из Claude Code, пока выполняется запуск workflow, запуск не продолжается сам по себе. Запуск продолжается, только когда Claude перезапускает его с помощью вызова `Workflow`, который [воспроизводит запуск из его сохранённых результатов](#which-agents-run-again).386Если вы переводите сессию в фоновый режим или выходите из Claude Code, пока запуск рабочего процесса выполняется, запуск не продолжается сам по себе. Запуск продолжается только тогда, когда Claude перезапускает его вызовом `Workflow`, который [воспроизводит запуск на основе сохранённых результатов](#which-agents-run-again).

391 387 

392* **Вы перевели сессию в фоновый режим или выбрали [`Move to background and exit`](https://code.claude.com/docs/ru/agent-view#from-inside-a-session)**: если запуск не продолжился, когда вы проверяете [фоновую сессию](https://code.claude.com/docs/ru/agent-view.md#what-carries-over-when-you-background), попросите Claude там перезапустить workflow. В зависимости от вашего [режима разрешений](#approve-the-plan-before-it-runs) Claude Code сначала попросит вас подтвердить перезапуск. Если сессия отображается в разделе `Needs input` в представлении агентов, [подключитесь к ней](https://code.claude.com/docs/ru/agent-view.md#attach-to-a-session), чтобы ответить на запрос подтверждения.388* **Вы перевели сессию в фоновый режим или выбрали [`Move to background and exit`](https://code.claude.com/docs/ru/agent-view#from-inside-a-session)**: если запуск не продолжился, когда вы проверяете [фоновую сессию](https://code.claude.com/docs/ru/agent-view.md#what-carries-over-when-you-background), попросите Claude там перезапустить рабочий процесс. В зависимости от вашего [режима разрешений](#approve-the-plan-before-it-runs) Claude Code сначала попросит вас подтвердить перезапуск. Если сессия отображается в разделе `Needs input` в представлении агентов, [подключитесь к ней](https://code.claude.com/docs/ru/agent-view.md#attach-to-a-session), чтобы ответить на запрос подтверждения.

393* **Перезапуск в фоновой сессии завершился ошибкой `nothing to resume`**: попросите Claude запустить workflow заново как новый запуск. Если Claude начал запуск по пути к файлу скрипта вне `~/.claude/projects/`, например к файлу в вашем рабочем каталоге, Claude не может перезапустить его в фоновой сессии.389* **Перезапуск в фоновой сессии завершился ошибкой `nothing to resume`**: попросите Claude начать рабочий процесс заново как новый запуск. Если Claude начал запуск по пути к файлу скрипта вне `~/.claude/projects/`, например в вашем рабочем каталоге, Claude не сможет перезапустить его в фоновой сессии.

394* **Вы выбрали `Exit and stop tasks`, или вам не был предложен вариант `Move to background and exit`**: запуск остановился вместе с сессией, и Claude Code хранит сохранённые результаты запуска в каталоге этой сессии в `~/.claude/projects/`. Возобновите сессию с помощью `claude --resume` в оболочке, затем попросите Claude перезапустить workflow. В новой сессии у Claude нет более раннего запуска для перезапуска, и он запускает workflow заново.390* **Вы выбрали `Exit and stop tasks` или вам не был предложен `Move to background and exit`**: запуск остановился вместе с сессией, и Claude Code хранит сохранённые результаты запуска в каталоге этой сессии в `~/.claude/projects/`. Возобновите сессию командой `claude --resume` в оболочке, затем попросите Claude перезапустить рабочий процесс. В новой сессии у Claude нет предыдущего запуска для перезапуска, и он начинает рабочий процесс заново.

395 391 

396В [облачной сессии](https://code.claude.com/docs/ru/claude-code-on-the-web.md) Claude Code также сохраняет результаты запуска с историей беседы сессии, которая сохраняется, когда виртуальная машина сессии освобождается. Когда вы [повторно открываете такую сессию](https://code.claude.com/docs/ru/claude-code-on-the-web.md#environment-expired) и просите Claude перезапустить workflow, завершённые агенты по-прежнему возвращают свои сохранённые результаты.392В [облачной сессии](https://code.claude.com/docs/ru/claude-code-on-the-web.md) Claude Code также сохраняет результаты запуска вместе с историей диалога сессии, которая сохраняется, когда виртуальная машина сессии освобождается. Когда вы [повторно открываете такую сессию](https://code.claude.com/docs/ru/claude-code-on-the-web.md#environment-expired) и просите Claude перезапустить рабочий процесс, завершённые агенты по-прежнему возвращают свои сохранённые результаты.

397 393 

398В локальных и облачных сессиях одинаково, когда Claude перезапускает более ранний запуск и Claude Code вообще не может найти сохранённые результаты этого запуска, перезапуск не удаётся с ошибкой `nothing to resume` вместо самостоятельного запуска запуска. Попросите Claude запустить workflow заново как новый запуск.394Как в локальных, так и в облачных сессиях, когда Claude перезапускает более ранний запуск, а Claude Code вообще не может найти сохранённые результаты этого запуска, перезапуск завершается ошибкой `nothing to resume` вместо того, чтобы самостоятельно начать запуск заново. Попросите Claude начать рабочий процесс заново как новый запуск.

399 395 

400### Когда запуск достигает вашего лимита использования396### Когда запуск достигает лимита использования

401 397 

402Когда агент достигает вашего лимита использования [usage limit](https://code.claude.com/docs/ru/interactive-mode.md#wait-for-a-usage-limit-to-reset) на claude.ai, запуск приостанавливается, а не отказывает этому агенту: агенты, которые достигли лимита, ждут сброса, и новые агенты не запускаются. Вскоре после сброса лимита ожидающие агенты работают снова и запуск продолжается самостоятельно. Требуется Claude Code v2.1.271 или позже; в более ранних версиях затронутые агенты отказывают.398Когда агент достигает вашего [лимита использования](https://code.claude.com/docs/ru/interactive-mode.md#wait-for-a-usage-limit-to-reset) claude.ai, запуск приостанавливается, а не завершает этого агента с ошибкой: агенты, достигшие лимита, ждут сброса, и новые агенты не запускаются. Вскоре после сброса лимита ожидающие агенты выполняются снова, и запуск продолжается сам по себе. Требуется Claude Code v2.1.271 или новее; в более ранних версиях затронутые агенты завершаются с ошибкой.

403 399 

404Пока запуск ждёт, его строка прогресса в панели задач и заголовок [`/workflows`](#watch-the-run) показывают, когда лимит сбросится.400Пока запуск ожидает, строка его прогресса в панели задач и заголовок [`/workflows`](#watch-the-run) показывают, когда лимит будет сброшен.

405 401 

406Запуск приостанавливается только когда все эти условия выполняются; когда одно из них не выполняется, затронутый агент отказывает вместо этого:402Запуск приостанавливается, только если выполняются все следующие условия; если какое-либо из них не выполняется, затронутый агент вместо этого завершается с ошибкой:

407 403 

408* Сессия интерактивна и вы вошли с подпиской claude.ai. Запуск не приостанавливается в [неинтерактивном режиме](https://code.claude.com/docs/ru/headless.md) с `claude -p` или в [Agent SDK](https://code.claude.com/docs/ru/agent-sdk/overview.md), в [фоновой сессии](https://code.claude.com/docs/ru/agent-view.md), или в сессии товарища по команде [Remote Control](https://code.claude.com/docs/ru/remote-control.md) или [agent team](https://code.claude.com/docs/ru/agent-teams.md).404* Сессия интерактивная, и вход выполнен с подпиской claude.ai. Запуск не приостанавливается в [неинтерактивном режиме](https://code.claude.com/docs/ru/headless.md) с `claude -p` или в [Agent SDK](https://code.claude.com/docs/ru/agent-sdk/overview.md), в [фоновой сессии](https://code.claude.com/docs/ru/agent-view.md), а также в сессии [Remote Control](https://code.claude.com/docs/ru/remote-control.md) или в сессии участника [команды агентов](https://code.claude.com/docs/ru/agent-teams.md).

409* [`autoContinueAtUsageLimit`](https://code.claude.com/docs/ru/settings-reference#autocontinueatusagelimit) включена, тот же параметр, который позволяет самой сессии [ждать сброса лимита использования](https://code.claude.com/docs/ru/interactive-mode.md#wait-for-a-usage-limit-to-reset). Если вы отключите его во время ожидания, ожидание заканчивается и ожидающие агенты отказывают.405* Включена настройка [`autoContinueAtUsageLimit`](https://code.claude.com/docs/ru/settings-reference#autocontinueatusagelimit) — та же настройка, которая позволяет самой сессии [ждать сброса лимита использования](https://code.claude.com/docs/ru/interactive-mode.md#wait-for-a-usage-limit-to-reset). Если вы отключите её во время ожидания, ожидание прекращается, и ожидающие агенты завершаются с ошибкой.

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

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

412 408 

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

414 410 

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

416 412 

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

418 414 

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

420 416 

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

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

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

424 420 

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

426 422 

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

428* **Все агенты**: задайте [`CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS`](https://code.claude.com/docs/ru/env-vars#variables), который также применяется к субагентам вне workflows424* **Все агенты**: задайте [`CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS`](https://code.claude.com/docs/ru/env-vars#variables), которая также применяется к субагентам вне рабочих процессов

429 425 

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

431 427 

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

433* **При прямом ожидании**: запуск завершается с ошибкой429* **С прямым ожиданием через await**: запуск завершается с ошибкой

434 430 

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

436 432 

437### Стоимость433### Стоимость

438 434 

439Workflow создаёт множество агентов, поэтому один запуск может использовать значительно больше токенов, чем работа через ту же задачу в беседе. Запуски считаются в сторону использования вашего плана и ограничений скорости.435Рабочий процесс порождает много агентов, поэтому один запуск может использовать заметно больше токенов, чем выполнение той же задачи в диалоге. Запуски учитываются в использовании вашего плана и в ограничениях частоты запросов.

440 436 

441Чтобы оценить расходы перед выполнением крупной задачи, сначала запустите workflow на небольшом срезе: один каталог вместо всего репозитория или узкий вопрос вместо широкого. Представление `/workflows` показывает использование токенов каждым агентом по мере выполнения запуска, и вы можете остановить запуск там в любое время, обычно без потери завершённой работы. [Возобновить после паузы](#resume-after-a-pause) охватывает то, что сохраняет остановленный запуск. [Ограничения агентов](#behavior-and-limits) среды выполнения ограничивают количество агентов, которых может создать один запуск, что ограничивает стоимость неконтролируемого скрипта. Чтобы сохранить запуски с меньшим количеством агентов, выберите [рекомендацию по размеру](#set-a-size-guideline) `small`.437Чтобы оценить расходы перед тем, как браться за большую задачу, сначала запустите рабочий процесс на небольшой части: один каталог вместо всего репозитория или узкий вопрос вместо широкого. Представление `/workflows` показывает использование токенов каждым агентом по мере выполнения запуска, и вы можете остановить запуск там в любой момент, обычно не теряя завершённую работу. Что сохраняет остановленный запуск, описано в разделе [Возобновление после паузы](#resume-after-a-pause). [Ограничения на число агентов](#behavior-and-limits) в среде выполнения ограничивают, сколько агентов может породить один запуск, что ограничивает стоимость вышедшего из-под контроля скрипта. Чтобы запуски использовали меньше агентов, выберите [ориентир по размеру](#set-a-size-guideline) `small`.

442 438 

443Claude Code также отмечает запуск, который растёт необычно быстро. Когда workflow планирует более 25 агентов, или его прогнозируемый общий объём токенов превышает 1,5 миллиона, его строка прогресса в панели задач ниже поля ввода показывает предупреждение `Large workflow`. Предупреждение указывает вам на [`/workflows`](#watch-the-run), где вы можете остановить запуск.439Claude Code также помечает запуск, который становится необычно большим. Когда рабочий процесс планирует более 25 агентов или его прогнозируемое общее число токенов превышает 1,5 миллиона, строка его прогресса в панели задач под полем ввода показывает предупреждение `Large workflow`. Предупреждение направляет вас в [`/workflows`](#watch-the-run), где вы можете остановить запуск.

444 440 

445Предупреждение носит рекомендательный характер: оно не приостанавливает и не ограничивает запуск. Два параметра изменяются, когда вы его видите:441Предупреждение носит рекомендательный характер: оно не приостанавливает и не ограничивает запуск. От двух настроек зависит, когда вы его видите:

446 442 

447* Если вы выберете [рекомендацию по размеру](#set-a-size-guideline) самостоятельно, количество агентов рекомендации заменяет порог в 25 агентов. Встроенная рекомендация по умолчанию оставляет порог на уровне 25.443* Если вы сами выбираете [ориентир по размеру](#set-a-size-guideline), его число агентов заменяет порог в 25 агентов. Встроенный ориентир по умолчанию оставляет порог равным 25.

448* Сессии с включённым [ultracode](#let-claude-decide-with-ultracode) не показывают предупреждение, потому что включение ultracode уже означает согласие на крупные запуски.444* В сессиях с включённым [ultracode](#let-claude-decide-with-ultracode) предупреждение не показывается, потому что включение ultracode уже означает ваше согласие на большие запуски.

449 445 

450Claude Code выбирает модель каждого агента workflow в том же [порядке, который он использует для подагентов](https://code.claude.com/docs/ru/sub-agents.md#choose-a-model). Модель, которую скрипт называет для этапа, считается моделью для каждого вызова в этом порядке. Когда ничто другое не назначает её, агент работает на модели вашей сессии.446Claude Code выбирает модель каждого агента рабочего процесса в том же [порядке, что и для субагентов](https://code.claude.com/docs/ru/sub-agents.md#choose-a-model). Модель, которую скрипт указывает для этапа, считается моделью для конкретного вызова в этом порядке. Когда ничто другое её не назначает, агент работает на модели вашей сессии.

451 447 

452Чтобы контролировать стоимость модели:448Чтобы контролировать стоимость моделей:

453 449 

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

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

456 452 

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

458 454 

459### Установить рекомендацию по размеру455### Задание ориентира по размеру

460 456 

461Рекомендация по размеру говорит Claude, на сколько агентов нужно нацеливаться при написании динамического workflow. Claude Code отправляет рекомендацию Claude в качестве совета, а не ограничения, поэтому промпт, который требует другого масштаба, по-прежнему переопределяет её.457Ориентир по размеру сообщает Claude, на какое число агентов ориентироваться при написании динамического рабочего процесса. Claude Code передаёт ориентир Claude как совет, а не как ограничение, поэтому промпт, требующий другого масштаба, всё равно его переопределяет.

462 458 

463Каждое значение соответствует количеству агентов:459Каждое значение соответствует числу агентов:

464 460 

465| Значение | Количество агентов, на которое Claude нацеливается |461| Значение | Число агентов, на которое ориентируется Claude |

466| :- | :- |462| :- | :- |

467| `unrestricted` | Нет рекомендации: Claude определяет размер workflow в соответствии с задачей |463| `unrestricted` | Без ориентира: Claude подбирает размер рабочего процесса под задачу |

468| `small` | Менее 5 агентов |464| `small` | Менее 5 агентов |

469| `medium` | Менее 10 агентов |465| `medium` | Менее 10 агентов |

470| `large` | Менее 50 агентов |466| `large` | Менее 50 агентов |

471 467 

472По умолчанию используется `medium`, или `small` когда вы вошли в Pro план с Claude Code v2.1.271 или позже. До тех пор, пока вы не выберете значение, строка `/config` показывает значение как значение по умолчанию, и строка `Running in background` workflow показывает размер в силе. Требуется Claude Code v2.1.219 или позже; более ранние версии по умолчанию используют `unrestricted`.468Значение по умолчанию — `medium`, или `small`, если вы вошли с тарифом Pro и используете Claude Code v2.1.271 или новее. Пока вы не выберете значение, строка в `/config` помечает значение как используемое по умолчанию, а строка рабочего процесса `Running in background` называет действующий размер.

473 469 

474Чтобы изменить рекомендацию, выберите значение для параметра Dynamic workflow size в `/config`, или запустите `/config workflowSizeGuideline=small`. На v2.1.219 и позже вы также можете установить ключ [`workflowSizeGuideline`](https://code.claude.com/docs/ru/settings-reference#workflowsizeguideline) в любом файле параметров; это значение имеет приоритет над `/config`, и Claude Code скрывает строку `/config`, пока файл параметров предоставляет один.470Чтобы изменить ориентир, выберите значение для настройки Dynamic workflow size в `/config` или выполните `/config workflowSizeGuideline=small`. Вы также можете задать [ключ `workflowSizeGuideline`](https://code.claude.com/docs/ru/settings-reference#workflowsizeguideline) в любом файле настроек; это значение имеет приоритет над `/config`, и Claude Code скрывает строку в `/config`, пока файл настроек его задаёт.

475 471 

476Изменения вступают в силу при следующем запросе. [Ограничения агентов среды выполнения](#behavior-and-limits) по-прежнему применяются независимо от параметра.472Изменения вступают в силу со следующего промпта. [Ограничения на число агентов в среде выполнения](#behavior-and-limits) применяются независимо от этой настройки.

477 473 

478### Отключить workflows474### Отключение рабочих процессов

479 475 

480Workflows доступны в CLI, приложении Desktop, расширениях IDE, [неинтерактивном режиме](https://code.claude.com/docs/ru/headless.md) с `claude -p` и [Agent SDK](https://code.claude.com/docs/ru/agent-sdk/overview.md). Те же параметры отключения применяются на каждой поверхности.476Рабочие процессы доступны в CLI, приложении Desktop, расширениях IDE, [неинтерактивном режиме](https://code.claude.com/docs/ru/headless.md) с `claude -p` и [Agent SDK](https://code.claude.com/docs/ru/agent-sdk/overview.md). Одни и те же настройки отключения действуют во всех интерфейсах.

481 477 

482Чтобы отключить workflows для себя:478Чтобы отключить рабочие процессы для себя:

483 479 

484* Переключите Dynamic workflows в `/config`. Сохраняется между сессиями.480* Выключите Dynamic workflows в `/config`. Сохраняется между сессиями.

485* Установите `"disableWorkflows": true` в `~/.claude/settings.json`. Сохраняется между сессиями.481* Задайте `"disableWorkflows": true` в `~/.claude/settings.json`. Сохраняется между сессиями.

486* Установите `CLAUDE_CODE_DISABLE_WORKFLOWS=1`. Читается при запуске, поэтому применяется везде, где вы это установите.482* Задайте `CLAUDE_CODE_DISABLE_WORKFLOWS=1`. Считывается при запуске, поэтому действует везде, где вы её задали.

487 483 

488Чтобы отключить workflows для всей вашей организации, установите `"disableWorkflows": true` в [управляемые параметры](https://code.claude.com/docs/ru/server-managed-settings.md), или используйте переключатель на странице [параметров администратора Claude Code](https://claude.ai/admin-settings/claude-code).484Чтобы отключить рабочие процессы для всей организации, задайте `"disableWorkflows": true` в [управляемых настройках](https://code.claude.com/docs/ru/server-managed-settings.md) или используйте переключатель на странице [настроек администратора Claude Code](https://claude.ai/admin-settings/claude-code).

489 485 

490Когда workflows отключены:486Когда рабочие процессы отключены:

491 487 

492* `/workflows`, команды workflow и скилл `/workflow-authoring` недоступны488* `/workflows`, команды рабочих процессов и скилл `/workflow-authoring` недоступны

493* Ключевое слово `ultracode` больше не запускает запуск, и переключатель **Ultracode** удаляется из `/effort`489* Ключевое слово `ultracode` больше не запускает рабочий процесс, а переключатель **Ultracode** удаляется из `/effort`

494 490 

495Запуск, который уже выполнялся, продолжает работу.491Запуск, который уже выполнялся, продолжается.

496 492 

497Отключение workflows также делает [ultracode](#let-claude-decide-with-ultracode) недоступным. Ни один параметр управления не исключает ultracode отдельно: везде, где он [доступен](https://code.claude.com/docs/ru/model-config.md#when-ultracode-is-available), пользователи могут включить его с помощью `/effort ultracode`. [Ограничение усилий](https://code.claude.com/docs/ru/model-config.md#organization-effort-limits) снижает уровень усилий, на котором работает сессия с включённым ultracode, но не отключает ultracode.493Отключение рабочих процессов также делает [ultracode](#let-claude-decide-with-ultracode) недоступным. Нет управляемой настройки, которая запрещала бы только ultracode: везде, где он [доступен](https://code.claude.com/docs/ru/model-config.md#when-ultracode-is-available), пользователи могут включить его с помощью `/effort ultracode`. [Ограничение effort](https://code.claude.com/docs/ru/model-config.md#organization-effort-limits) снижает уровень effort, на котором работает сессия с включённым ultracode, но не отключает ultracode.

498 494 

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

500 496 

worktrees.md +55 −43

Details

43 43 

44Вы также можете попросить Claude "работать в worktree" во время сеанса, и он создаст один с помощью инструмента [`EnterWorktree`](https://code.claude.com/docs/ru/tools-reference). После входа в worktree Claude может переключиться непосредственно на другой worktree в `.claude/worktrees/`, вызвав `EnterWorktree` с целевым путём; предыдущий worktree остаётся на диске нетронутым.44Вы также можете попросить Claude "работать в worktree" во время сеанса, и он создаст один с помощью инструмента [`EnterWorktree`](https://code.claude.com/docs/ru/tools-reference). После входа в worktree Claude может переключиться непосредственно на другой worktree в `.claude/worktrees/`, вызвав `EnterWorktree` с целевым путём; предыдущий worktree остаётся на диске нетронутым.

45 45 

46Когда Claude входит в путь вне каталога `.claude/worktrees/` репозитория, Claude Code сначала запрашивает ваше одобрение, потому что это перемещение берёт рабочий каталог сеанса, доступ на запись и конфигурацию проекта, такую как `CLAUDE.md` и settings, в это место. Правило разрешения `EnterWorktree` [permission rule](https://code.claude.com/docs/ru/permissions.md) или выбор "не спрашивать снова" не подавляет это приглашение; только режим `bypassPermissions` пропускает его. До версии 2.1.206 Claude мог войти в любой существующий путь worktree без запроса.46Когда Claude входит в путь вне каталога `.claude/worktrees/` репозитория, Claude Code сначала запрашивает ваше подтверждение. Это перемещение переносит в указанное место рабочий каталог сессии, доступ на запись и конфигурацию проекта, такую как `CLAUDE.md` и настройки. [Правило разрешений](https://code.claude.com/docs/ru/permissions.md) для `EnterWorktree` или выбор «не спрашивать снова» не отключает этот запрос подтверждения; пропускает его только режим `bypassPermissions`.

47 47 

48> [!NOTE]48> [!NOTE]

49>49>


63 63 

64Неинтерактивные запуски с `-p` не имеют подсказки выхода, поэтому Claude не очищает их worktrees, и Claude Code оставляет блокировку, которую он взял на каждый при создании, на месте до тех пор, пока более поздний сеанс [очистка устаревших блокировок](#clean-up-subagent-and-background-session-worktrees) не освободит её. Чтобы удалить один, запустите `git worktree remove`; если git отказывает, потому что worktree заблокирован, сначала запустите `git worktree unlock` на нём.64Неинтерактивные запуски с `-p` не имеют подсказки выхода, поэтому Claude не очищает их worktrees, и Claude Code оставляет блокировку, которую он взял на каждый при создании, на месте до тех пор, пока более поздний сеанс [очистка устаревших блокировок](#clean-up-subagent-and-background-session-worktrees) не освободит её. Чтобы удалить один, запустите `git worktree remove`; если git отказывает, потому что worktree заблокирован, сначала запустите `git worktree unlock` на нём.

65 65 

66На Windows удаление worktree не удаляет файлы вне него. Если папка внутри worktree — это ссылка на что-то другое, например соединение NTFS или символическая ссылка на каталог, Claude Code удаляет только ссылку и сохраняет папку, на которую она указывает. До версии 2.1.205 удаление worktree со ссылкой, вложенной в подкаталог, могло удалить папку, на которую она указывала.66На Windows удаление worktree не удаляет файлы вне него. Если папка внутри worktree — это ссылка на что-то другое, например соединение NTFS или символическая ссылка на каталог, Claude Code удаляет только ссылку.

67 67 

68## Возобновите сеанс worktree68## Возобновите сеанс worktree

69 69 


81>81>

82> До версии 2.1.212 неинтерактивное возобновление оставалось в начальном каталоге и `ExitWorktree` сообщал, что не было активного сеанса worktree для выхода.82> До версии 2.1.212 неинтерактивное возобновление оставалось в начальном каталоге и `ExitWorktree` сообщал, что не было активного сеанса worktree для выхода.

83 83 

84Когда Claude входит или выходит из worktree, который Claude Code создал с git, стенограмма следует: Claude Code записывает сеанс в новый рабочий каталог сеанса, так же как [`/cd`](https://code.claude.com/docs/ru/commands) это делает, поэтому `/desktop` и `--resume` находят его там. Выход перемещает его обратно тем же способом. Worktree, созданный hook [`WorktreeCreate`](#non-git-version-control), сохраняет свою стенограмму в каталоге запуска. Требуется Claude Code версии 2.1.198 или позже.84Когда Claude входит в worktree, который Claude Code создал с git, или выходит из него, транскрипт следует за ним. Claude Code записывает сессию в новый рабочий каталог сессии, так же как это делает [`/cd`](https://code.claude.com/docs/ru/commands), поэтому `/desktop` и `--resume` находят её там. Выход перемещает её обратно тем же способом. Worktree, созданный хуком [`WorktreeCreate`](#non-git-version-control), сохраняет свой транскрипт в каталоге запуска.

85 85 

86## Как Claude Code обеспечивает изоляцию86## Как Claude Code обеспечивает изоляцию

87 87 


139 139 

140Claude Code записывает маркер в метаданные git каждого worktree, который он создаёт с git, и очистка сохраняет любой worktree без него, включая worktree, который создал hook [`WorktreeCreate`](#non-git-version-control).140Claude Code записывает маркер в метаданные git каждого worktree, который он создаёт с git, и очистка сохраняет любой worktree без него, включая worktree, который создал hook [`WorktreeCreate`](#non-git-version-control).

141 141 

142#### Блокировки worktree и ручное удаление

143 

142Пока агент работает, Claude Code держит `git worktree lock` на его worktree, чтобы одновременная очистка не могла его удалить, и освобождает блокировку, когда агент завершает работу. Claude Code держит ту же блокировку на worktree, который он создал для фонового сеанса, пока сеанс работает, поэтому очистка оставляет worktree на месте и `git worktree remove` отказывает его удалить.144Пока агент работает, Claude Code держит `git worktree lock` на его worktree, чтобы одновременная очистка не могла его удалить, и освобождает блокировку, когда агент завершает работу. Claude Code держит ту же блокировку на worktree, который он создал для фонового сеанса, пока сеанс работает, поэтому очистка оставляет worktree на месте и `git worktree remove` отказывает его удалить.

143 145 

144Очистка также освобождает блокировку, которую Claude Code установил для сеанса, чей процесс завершился, поэтому убитый фоновый сеанс не оставляет его worktree постоянно заблокированным. Очистка никогда не освобождает блокировку, которую вы установили самостоятельно с `git worktree lock`. До версии 2.1.210 блокировка, оставленная убитым сеансом, оставалась на месте до тех пор, пока вы не запустили `git worktree unlock`.146Очистка также освобождает блокировку, которую Claude Code установил для сессии, чей процесс завершился, поэтому убитая фоновая сессия не оставляет свой worktree постоянно заблокированным. Очистка никогда не освобождает блокировку, которую вы установили самостоятельно с помощью `git worktree lock`.

145 147 

146Чтобы очистить worktree, который очистка сохраняет, запустите `git worktree remove`, добавив `--force`, если worktree содержит неотправленные изменения или неотслеживаемые файлы. Если git отказывает, потому что worktree заблокирован, сначала запустите `git worktree unlock` на нём.148Чтобы очистить worktree, который очистка сохраняет, запустите `git worktree remove`, добавив `--force`, если worktree содержит неотправленные изменения или неотслеживаемые файлы. Если git отказывает, потому что worktree заблокирован, сначала запустите `git worktree unlock` на нём.

147 149 

148## Настройте создание worktree150## Настройка создания worktree

151 

152Стандартные параметры Claude Code для создания worktree подходят для большинства сессий: worktree создаются в `.claude/worktrees/`, ответвляются от ветки по умолчанию вашего репозитория, и в них извлекаются только отслеживаемые файлы. Параметры в этом разделе изменяют эти стандартные значения.

149 153 

150Значения по умолчанию Claude Code для создания worktrees охватывают большинство сеансов: он создаёт их в `.claude/worktrees/`, ветвит их от ветки по умолчанию вашего репозитория и проверяет только отслеживаемые файлы. Параметры в этом разделе изменяют эти значения по умолчанию.154### Выбор базовой ветки

151 155 

152### Выберите базовую ветку156Новые worktree ответвляются от ветки по умолчанию репозитория, поэтому в большинстве сессий эта настройка не нужна. Задайте `worktree.baseRef` в [настройках](https://code.claude.com/docs/ru/settings-reference.md#worktree), чтобы вместо этого ответвляться от вашей текущей работы. Настройка принимает два значения:

153 157 

154Новые worktrees ветвятся от ветки по умолчанию репозитория, поэтому большинству сеансов это не нужно. Установите `worktree.baseRef` в [settings](https://code.claude.com/docs/ru/settings-reference.md#worktree), чтобы ветвиться от вашей текущей работы. Параметр принимает два значения:158* `"fresh"` (по умолчанию): ответвление от ветки по умолчанию репозитория на удалённом сервере, обычно `main`, чтобы worktree начинался с чистого дерева, совпадающего с удалённым.

159* `"head"`: ответвление от вашего текущего локального `HEAD`, чтобы worktree содержал ваши неотправленные коммиты и состояние feature-ветки. Используйте это значение при изоляции субагентов, которым нужно работать с незавершённой работой. Внутри worktree `"head"` указывает на `HEAD` этого worktree, а не основного checkout.

155 160 

156* `"fresh"` (по умолчанию): ветвиться от ветки по умолчанию репозитория на удалённом сервере, обычно `main`, поэтому worktree начинается с чистого дерева, соответствующего удалённому серверу.161Задать в `worktree.baseRef` имя ветки нельзя. Чтобы создать worktree от конкретной существующей ветки, [создайте его напрямую с помощью git](#manage-worktrees-manually).

157* `"head"`: ветвиться от вашей текущей локальной `HEAD`, поэтому worktree несёт ваши неотправленные коммиты и состояние ветки функции. Используйте это при изоляции subagents, которым нужно работать с незавершённой работой. Внутри worktree `"head"` разрешается в `HEAD` этого worktree, а не в основной копии.

158 162 

159Вы не можете установить `worktree.baseRef` на имя ветки. Чтобы запустить worktree из конкретной существующей ветки, [создайте его с git напрямую](#manage-worktrees-manually).163При базе `"fresh"` Claude Code поддерживает `origin/HEAD` в актуальном состоянии:

160 164 

161Для базы `"fresh"` Claude Code сохраняет `origin/HEAD` актуальным: когда репозиторий не был загружен в течение последних 24 часов, он загружает ветку по умолчанию, ограничивая это пятью секундами, и использует локально кэшированный ref, если загрузка не удалась. Загрузка никогда не ожидает ввода в вашем терминале, поэтому она также считается неудавшейся, если git или ssh запросили бы пароль, парольную фразу ключа или подтверждение нового SSH-хоста. Если удалённый сервер не настроен или `origin/HEAD` не кэширован локально и не может быть загружен, worktree переходит на вашу текущую локальную `HEAD`. До версии 2.1.208 свежий worktree использовал то, что уже было кэшировано локально в `origin/HEAD`.165* Если репозиторий не получал обновления в течение последних 24 часов, Claude Code выполняет fetch ветки по умолчанию с ограничением в пять секунд и использует локально кэшированную ссылку, если fetch завершился неудачно.

166* Fetch никогда не ожидает ввода в вашем терминале. Он также считается неудачным, если git или ssh запросили бы пароль, парольную фразу ключа или подтверждение нового SSH-хоста.

167* Если удалённый репозиторий не настроен либо `origin/HEAD` не кэширован локально и не может быть получен, worktree создаётся от вашего текущего локального `HEAD`.

162 168 

163Этот пример делает каждый новый worktree ветвящимся от вашей текущей работы:169В этом примере каждый новый worktree ответвляется от вашей текущей работы:

164 170 

165```json theme={null}171```json theme={null}

166{172{


170}176}

171```177```

172 178 

173### Ветвиться от pull request179### Ответвление от pull request

174 180 

175Чтобы ветвиться от конкретного pull request или merge request, передайте `--worktree` номер с префиксом `#`, URL GitHub pull request или URL GitLab merge request, такой как `https://gitlab.com/group/repo/-/merge_requests/123`. Claude Code загружает коммит head этого изменения из `origin` и создаёт worktree в `.claude/worktrees/pr-<number>`. Заключите аргумент в кавычки, чтобы ваша оболочка не рассматривала `#` как начало комментария:181Чтобы ответвиться от конкретного pull request или merge request, передайте `--worktree` номер с префиксом `#`, URL pull request GitHub или URL merge request GitLab, например `https://gitlab.com/group/repo/-/merge_requests/123`. Claude Code получает головной коммит этого изменения из `origin` и создаёт worktree в `.claude/worktrees/pr-<number>`. Заключите аргумент в кавычки, чтобы оболочка не восприняла `#` как начало комментария:

176 182 

177```bash theme={null}183```bash theme={null}

178claude --worktree "#1234"184claude --worktree "#1234"

179```185```

180 186 

181Claude Code читает только номер из URL. Он всегда загружает из удалённого сервера `origin` вашего репозитория и выбирает путь загрузки по хосту `origin`:187Claude Code считывает из URL только номер. Он всегда выполняет fetch из удалённого репозитория `origin` вашего репозитория и выбирает путь для fetch в зависимости от хоста `origin`:

182 188 

183* **github.com**: загружает `pull/<number>/head`189* **github.com**: получает `pull/<number>/head`

184* **gitlab.com**: загружает `merge-requests/<number>/head`190* **gitlab.com**: получает `merge-requests/<number>/head`

185* **GitHub Enterprise, самоуправляемый GitLab или любой другой хост**: сначала пытается `pull/<number>/head`, затем `merge-requests/<number>/head`191* **GitHub Enterprise, самостоятельно размещённый GitLab или любой другой хост**: сначала пробует `pull/<number>/head`, затем `merge-requests/<number>/head`

186 192 

187Эта загрузка никогда не ожидает ввода в вашем терминале. Если git или ssh запросили бы пароль, парольную фразу ключа или подтверждение нового SSH-хоста, загрузка вместо этого завершается ошибкой, и Claude Code завершает работу с сообщением `Error creating worktree: Failed to fetch PR/MR #<number>`. Ключ, хранящийся в `ssh-agent`, по-прежнему работает, поэтому загрузите туда свой ключ и один раз вручную выполните `git fetch`, чтобы записать новый хост, прежде чем начать.193Этот fetch никогда не ожидает ввода в вашем терминале. Если git или ssh запросили бы пароль, парольную фразу ключа или подтверждение нового SSH-хоста, fetch вместо этого завершается неудачно, и Claude Code завершает работу с сообщением `Error creating worktree: Failed to fetch PR/MR #<number>`. Ключ, который хранится в `ssh-agent`, по-прежнему работает, поэтому загрузите туда свой ключ и один раз выполните `git fetch` вручную, чтобы записать новый хост перед началом работы.

188 194 

189До версии 2.1.233 Claude Code принимал только `#<number>` и URL GitHub pull request для `--worktree` и всегда загружал `pull/<number>/head`.195До v2.1.233 Claude Code принимал для `--worktree` только `#<number>` и URL pull request в стиле GitHub и всегда получал `pull/<number>/head`.

190 196 

191### Скопируйте игнорируемые git файлы в worktrees197### Копирование игнорируемых git файлов в worktree

192 198 

193Worktree — это свежая копия, поэтому неотслеживаемые файлы, такие как `.env` или `.env.local` из вашего основного репозитория, отсутствуют. Чтобы скопировать их автоматически при создании Claude worktree, добавьте файл `.worktreeinclude` в корень вашего проекта.199Worktree — это новый checkout, поэтому неотслеживаемые файлы, такие как `.env` или `.env.local`, из вашего основного репозитория в нём отсутствуют. Чтобы автоматически копировать их, когда Claude создаёт worktree, добавьте файл `.worktreeinclude` в корень проекта.

194 200 

195Файл использует синтаксис `.gitignore`. Копируются только файлы, которые соответствуют шаблону и также игнорируются git, поэтому отслеживаемые файлы никогда не дублируются.201Файл использует синтаксис `.gitignore`. Копируются только файлы, которые соответствуют шаблону и при этом игнорируются git, поэтому отслеживаемые файлы никогда не дублируются.

196 202 

197Если вы напишете шаблон, который начинается с `**/`, и файлы, которые вам нужны, находятся внутри каталога, который игнорируется как целое, Claude Code копирует их только когда этот каталог сам соответствует шаблону, или когда первое имя после `**/` — одно из имён в пути каталога. Например, если вы напишете `**/.claude/skills/*.md`, это первое имя — `.claude`, поэтому Claude Code копирует соответствующие файлы из игнорируемого каталога `.claude/`. Чтобы скопировать файлы из игнорируемого каталога, который шаблон `**/` не достигает, назовите каталог в шаблоне вместо этого: напишите `vendor/**/config.json` вместо `**/config.json`. До версии 2.1.239 Claude Code копировал файлы из полностью игнорируемого каталога для шаблона `**/` только когда сам каталог соответствовал шаблону.203Если вы пишете шаблон, начинающийся с `**/`, а нужные файлы находятся внутри каталога, который игнорируется git целиком, Claude Code копирует их, только если сам этот каталог соответствует шаблону или если первое имя после `**/` является одним из имён в пути к каталогу. Например, если вы пишете `**/.claude/skills/*.md`, первое имя — `.claude`, поэтому Claude Code копирует соответствующие файлы из игнорируемого каталога `.claude/`. Чтобы копировать файлы из игнорируемого каталога, до которого шаблон с `**/` не доходит, укажите каталог в шаблоне явно: пишите `vendor/**/config.json`, а не `**/config.json`. До v2.1.239 Claude Code копировал файлы из полностью игнорируемого каталога для шаблона `**/`, только если сам каталог соответствовал шаблону.

198 204 

199Этот `.worktreeinclude` копирует два файла env и конфиг секретов в каждый новый worktree:205Этот `.worktreeinclude` копирует два env-файла и конфигурацию секретов в каждый новый worktree:

200 206 

201```text .worktreeinclude theme={null}207```text .worktreeinclude theme={null}

202.env208.env


204config/secrets.json210config/secrets.json

205```211```

206 212 

207Это применяется к каждому worktree, который Claude Code создаёт с git: worktrees `--worktree`, [worktrees subagent](#isolate-subagents-with-worktrees) и параллельные сеансы в [десктопном приложении](https://code.claude.com/docs/ru/desktop.md#work-in-parallel-with-sessions). С hook [`WorktreeCreate`](#non-git-version-control) скопируйте файлы внутри скрипта hook.213Это относится к каждому worktree, который Claude Code создаёт с помощью git: worktree через `--worktree`, [worktree субагентов](#isolate-subagents-with-worktrees) и параллельным сессиям в [десктопном приложении](https://code.claude.com/docs/ru/desktop.md#work-in-parallel-with-sessions). При использовании [хука `WorktreeCreate`](#non-git-version-control) копируйте файлы внутри скрипта хука.

208 214 

209### Повторное использование имени worktree215### Повторное использование имени worktree

210 216 

211Передача `--worktree` имени, чей каталог уже существует, открывает этот существующий worktree вместо создания нового.217Если передать `--worktree` имя, каталог которого уже существует, будет открыт этот существующий worktree, а не создан новый.

212 218 

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

214 220 

215* Он не имеет неотправленных изменений или неотслеживаемых файлов.221* В нём нет незакоммиченных изменений или неотслеживаемых файлов.

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

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

218 224 

219Claude Code обнаруживает объединённый случай только из состояния git: удалённая ветка, на которую ветвился worktree, больше не существует, и каждый коммит в worktree уже находится на ветке по умолчанию.225Claude Code определяет случай слияния только по состоянию git: удалённая ветка, в которую worktree отправлял изменения, больше не существует, и каждый коммит в worktree уже есть в ветке по умолчанию.

220 226 

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

222 228 

223* Worktree не проходит любое из условий.229* Worktree не удовлетворяет какому-либо из условий.

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

225* `worktree.baseRef` — это `"head"`.231* `worktree.baseRef` имеет значение `"head"`.

226* Имя — это ссылка на pull request или merge request.232* Имя является ссылкой на pull request или merge request.

227 233 

228До версии 2.1.208, когда вы повторно использовали имя, Claude Code всегда повторно открывал старый worktree на его старой вершине.234### Замена создания worktree хуком

229 235 

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

231 

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

233 237 

234## Что worktrees делят с основной копией238## Что worktrees делят с основной копией

235 239 

236Worktree получает собственные файлы и ветку, но делит следующее с основной копией:240Worktree получает собственные файлы и ветку, но делит следующее с основной копией:

237 241 

238* **Каталог `.git` репозитория**: команды git в worktree записывают в общий каталог `.git` основного репозитория, и [sandboxing](https://code.claude.com/docs/ru/sandboxing.md#filesystem-isolation) позволяет эти записи, поэтому команды, такие как `git commit`, работают из worktree с включённой песочницей.242* **Каталог `.git` репозитория**: команды git в worktree записывают в общий каталог `.git` основного репозитория, и [sandboxing](https://code.claude.com/docs/ru/sandboxing.md#filesystem-isolation) позволяет эти записи, поэтому команды, такие как `git commit`, работают из worktree с включённой песочницей.

239* **Плагины**: плагины, установленные в [области проекта](https://code.claude.com/docs/ru/plugins/loading.md#find-where-a-plugin-is-enabled) из основной копии, также загружаются в worktrees того же репозитория, поэтому вам не нужно переустанавливать их для каждого worktree. Требуется Claude Code версии 2.1.200 или позже.243* **Плагины**: плагины, установленные на [уровне проекта](https://code.claude.com/docs/ru/plugins/loading.md#find-where-a-plugin-is-enabled) из основной копии, также загружаются в worktrees того же репозитория, поэтому вам не нужно переустанавливать их для каждого worktree.

240* **Одобрения разрешений**: выбор "Да, и больше не спрашивать" для команды Bash в сеансе worktree сохраняет правило в `.claude/settings.local.json` основной копии, поэтому оно применяется в основной копии и в каждом другом worktree репозитория, и оно выживает удаление worktree. На Windows и в других случаях, когда Claude Code [не использует корень репозитория](https://code.claude.com/docs/ru/settings.md#where-claude-code-looks-for-each-file), правило остаётся с этим worktree. До версии 2.1.211 одобрение, предоставленное в worktree, было сохранено внутри этого worktree, не применялось в другом месте и было потеряно при удалении worktree. См. [где сохраняются одобрения](https://code.claude.com/docs/ru/permissions.md#permission-system).244* **Подтверждения разрешений**: выбор "Yes, and don't ask again" для команды Bash в сессии worktree сохраняет правило в `.claude/settings.local.json` основной копии. Правило применяется в основной копии и в каждом другом worktree репозитория и сохраняется после удаления worktree.

245 

246 На Windows и в других случаях, когда Claude Code [не использует корень репозитория](https://code.claude.com/docs/ru/settings.md#where-claude-code-looks-for-each-file), правило остаётся с этим worktree. См. [где сохраняются подтверждения](https://code.claude.com/docs/ru/permissions.md#permission-system).

241* **Неотслеживаемые skills, agents и commands**: когда копия worktree не имеет каталога `.claude/skills` в своём корне, например потому что ваш `.claude/skills` находится в gitignore, Claude Code загружает [project skills](https://code.claude.com/docs/ru/skills.md#where-skills-live) основной копии в сеансе worktree. В worktree с собственным каталогом `.claude/skills` загружается только эта копия.247* **Неотслеживаемые skills, agents и commands**: когда копия worktree не имеет каталога `.claude/skills` в своём корне, например потому что ваш `.claude/skills` находится в gitignore, Claude Code загружает [project skills](https://code.claude.com/docs/ru/skills.md#where-skills-live) основной копии в сеансе worktree. В worktree с собственным каталогом `.claude/skills` загружается только эта копия.

242 248 

243 То же самое применяется к `.claude/agents` и `.claude/commands`. Для skills это требует Claude Code версии 2.1.277 или позже.249 То же самое применяется к `.claude/agents` и `.claude/commands`. Для skills это требует Claude Code версии 2.1.277 или позже.


322 328 

323Claude Code отказывает создавать worktree, когда `.claude`, `.claude/worktrees` или сам каталог worktree — это символическая ссылка, и ошибка называет символически связанный путь. Удалите символическую ссылку и повторите попытку. До версии 2.1.212, если репозиторий уже содержал зафиксированную символическую ссылку в одном из этих путей, создание worktree следовало ей и могло создавать файлы вне репозитория.329Claude Code отказывает создавать worktree, когда `.claude`, `.claude/worktrees` или сам каталог worktree — это символическая ссылка, и ошибка называет символически связанный путь. Удалите символическую ссылку и повторите попытку. До версии 2.1.212, если репозиторий уже содержал зафиксированную символическую ссылку в одном из этих путей, создание worktree следовало ей и могло создавать файлы вне репозитория.

324 330 

331### Worktree, созданный Claude Code, содержит исходное содержимое заменённых объектов

332 

333Если ваш репозиторий использует [`git replace`](https://git-scm.com/docs/git-replace), файлы в worktree, который создаёт Claude Code, содержат содержимое исходных объектов, а не замены, указанные в ваших записях `refs/replace/`. Claude Code выполняет команды git, которые извлекают файлы worktree, с `GIT_NO_REPLACE_OBJECTS=1`, игнорируя любое значение, экспортированное вами для этой переменной.

334 

335Чтобы получить заменённое содержимое, [создайте worktree самостоятельно](#manage-worktrees-manually) с помощью `git worktree add` и запустите Claude Code внутри него.

336 

325### Файлы Git LFS — это файлы указателей в worktree, который создал Claude Code337### Файлы Git LFS — это файлы указателей в worktree, который создал Claude Code

326 338 

327Если вы настроили [Git LFS](https://git-lfs.com) с `git lfs install --local`, worktree, который создаёт Claude Code, содержит файлы указателей LFS вместо реальных файлов. Флаг `--local` записывает фильтр LFS в собственный `.git/config` репозитория, а не в вашу глобальную конфигурацию git. Простой `git lfs install` записывает в вашу глобальную конфигурацию и не затронут. То же самое применяется к любому другому [драйверу фильтра](https://git-scm.com/docs/gitattributes), определённому в собственной конфигурации репозитория.339Если вы настроили [Git LFS](https://git-lfs.com) с `git lfs install --local`, worktree, который создаёт Claude Code, содержит файлы указателей LFS вместо реальных файлов. Флаг `--local` записывает фильтр LFS в собственный `.git/config` репозитория, а не в вашу глобальную конфигурацию git. Простой `git lfs install` записывает в вашу глобальную конфигурацию и не затронут. То же самое применяется к любому другому [драйверу фильтра](https://git-scm.com/docs/gitattributes), определённому в собственной конфигурации репозитория.