SpyBara
Go Premium

Documentation 2026-10-14 22:58 UTC to 2026-10-15 23:58 UTC

47 files changed +1,759 −541. 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

636| Ограничение | Описание |636| Ограничение | Описание |

637| - | - |637| - | - |

638| Только инструменты Write/Edit/NotebookEdit | Изменения, внесённые через команды Bash, не отслеживаются |638| Только инструменты Write/Edit/NotebookEdit | Изменения, внесённые через команды Bash, не отслеживаются |

639| Edits subagent | Edits, которые применяет [subagent](/docs/ru/agent-sdk/subagents), не отслеживаются и не восстанавливаются, за исключением skill с `context: fork`, работающего на переднем плане; используйте git для отката неотслеживаемых edits |639| Правки субагента | Правки, которые применяет [субагент](/docs/ru/agent-sdk/subagents), не отслеживаются, за исключением скилла с `context: fork`, работающего на переднем плане. Откат отменяет их только в тех файлах, которые основной диалог уже редактировал; для отката остальных используйте git |

640| Один сеанс | Checkpoints привязаны к сеансу, который их создал |640| Один сеанс | Checkpoints привязаны к сеансу, который их создал |

641| Только содержимое файла | Создание, перемещение или удаление каталогов не отменяется отмоткой |641| Только содержимое файла | Создание, перемещение или удаление каталогов не отменяется отмоткой |

642| Локальные файлы | Удалённые или сетевые файлы не отслеживаются |642| Локальные файлы | Удалённые или сетевые файлы не отслеживаются |

Details

192 192 

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

194 194 

195Дайте каждому агенту свой рабочий каталог, чтобы они не перезаписывали файлы друг друга, и изолируйте загрузку параметров, чтобы файлы `CLAUDE.md` для каждого агента не просачивались между агентами. Смотрите [Multi-tenant isolation](#multi-tenant-isolation) для конкретных опций.195Дайте каждому агенту свой рабочий каталог, чтобы они не перезаписывали файлы друг друга, и изолируйте загрузку параметров, чтобы файлы `CLAUDE.md` для каждого агента не просачивались между агентами. Смотрите [Изоляция мультитенантности](#multi-tenant-isolation) для конкретных опций.

196 196 

197<h2 id="provision-the-container">197<h2 id="provision-the-container">

198 Подготовка контейнера198 Подготовка контейнера


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

392 392 

393<h2 id="troubleshoot-deployment-failures">393<h2 id="troubleshoot-deployment-failures">

394 Troubleshoot deployment failures394 Устранение неполадок развертывания

395</h2>395</h2>

396 396 

397Используйте этот раздел, когда агент, который работает на вашей машине, не работает в развёрнутом сервисе. Каждый элемент ниже называет сбой и ссылается на запись, которая его охватывает:397Используйте этот раздел, когда агент, который работает на вашей машине, не работает в развёрнутом сервисе. Каждый элемент ниже называет сбой и ссылается на запись, которая его охватывает:

398 398 

399* **CLI not found at service start**: в Python контейнер или менеджер сервисов запускает ваше приложение с другим `PATH`, чем ваша оболочка, поэтому установка, которая работает локально, не видна процессу. В TypeScript сборка образа пропустила дополнительные зависимости SDK, или `pathToClaudeCodeExecutable` указывает на файл, который не существует в образе. См. [Claude Code not found](/docs/ru/agent-sdk/troubleshooting#clinotfounderror-claude-code-not-found).399* **CLI не найден при запуске сервиса**: в Python контейнер или менеджер сервисов запускает ваше приложение с другим `PATH`, чем ваша оболочка, поэтому установка, которая работает локально, не видна процессу. В TypeScript сборка образа пропустила дополнительные зависимости SDK, или `pathToClaudeCodeExecutable` указывает на файл, который не существует в образе. См. [Claude Code not found](/docs/ru/agent-sdk/troubleshooting#clinotfounderror-claude-code-not-found).

400* **CLI present in the image but won't launch**: Claude Code не может запуститься из двоичного файла, который не соответствует архитектуре контейнера или libc, или из файла, который потерял разрешение на выполнение при сборке образа. См. [Failed to start Claude Code](/docs/ru/agent-sdk/troubleshooting#cliconnectionerror-failed-to-start-claude-code).400* **CLI есть в образе, но не запускается**: Claude Code не может запуститься из двоичного файла, который не соответствует архитектуре контейнера или libc, или из файла, который потерял разрешение на выполнение при сборке образа. См. [Failed to start Claude Code](/docs/ru/agent-sdk/troubleshooting#cliconnectionerror-failed-to-start-claude-code).

401* **Claude Code process exits mid-run**: ошибка, которую получает ваше приложение, зависит от языка SDK и от того, сообщил ли CLI об ошибке результата в первую очередь. Записи в разделе [CLI process exit](/docs/ru/agent-sdk/troubleshooting#cli-process-exit) охватывают каждое сообщение.401* **Процесс Claude Code завершается посреди выполнения**: ошибка, которую получает ваше приложение, зависит от языка SDK и от того, сообщил ли CLI перед этим о результате с ошибкой. Записи в разделе [Выход процесса CLI](/docs/ru/agent-sdk/troubleshooting#cli-process-exit) охватывают каждое сообщение.

402 402 

403<h2 id="next-steps">403<h2 id="next-steps">

404 Следующие шаги404 Следующие шаги

405</h2>405</h2>

406 406 

407* [Hosting cookbook](https://github.com/anthropics/claude-cookbooks/blob/main/claude_agent_sdk/07_Hosting_the_agent.ipynb): пошаговое руководство в виде notebook с [развертываемым кодом](https://github.com/anthropics/claude-cookbooks/tree/main/claude_agent_sdk/hosting) для Docker, Modal и Kubernetes.407* [Cookbook по хостингу](https://github.com/anthropics/claude-cookbooks/blob/main/claude_agent_sdk/07_Hosting_the_agent.ipynb): пошаговое руководство в виде notebook с [развертываемым кодом](https://github.com/anthropics/claude-cookbooks/tree/main/claude_agent_sdk/hosting) для Docker, Modal и Kubernetes.

408* [Хранилище сеанса](/docs/ru/agent-sdk/session-storage): сохранение транскриптов между хостами с помощью адаптера `SessionStore`.408* [Хранилище сеанса](/docs/ru/agent-sdk/session-storage): сохранение транскриптов между хостами с помощью адаптера `SessionStore`.

409* [Observability](/docs/ru/agent-sdk/observability): экспорт OTEL трассировок, метрик и логов в ваш сборщик.409* [Наблюдаемость](/docs/ru/agent-sdk/observability): экспорт OTEL трассировок, метрик и логов в ваш сборщик.

410* [Secure deployment](/docs/ru/agent-sdk/secure-deployment): сетевые элементы управления, управление учетными данными и усиление изоляции.410* [Безопасное развертывание](/docs/ru/agent-sdk/secure-deployment): сетевые элементы управления, управление учетными данными и усиление изоляции.

411* [Cost tracking](/docs/ru/agent-sdk/cost-tracking): учет токенов и затрат для каждого сеанса.411* [Отслеживание затрат](/docs/ru/agent-sdk/cost-tracking): учет токенов и затрат для каждого сеанса.

Details

205 205 

206**Текущее поведение:** Пропуск `settingSources` в `query()` загружает параметры пользователя, проекта и локальной файловой системы, соответствуя CLI. Это включает `~/.claude/settings.json`, `.claude/settings.json`, `.claude/settings.local.json`, файлы CLAUDE.md и пользовательские команды.206**Текущее поведение:** Пропуск `settingSources` в `query()` загружает параметры пользователя, проекта и локальной файловой системы, соответствуя CLI. Это включает `~/.claude/settings.json`, `.claude/settings.json`, `.claude/settings.local.json`, файлы CLAUDE.md и пользовательские команды.

207 207 

208Для работы в изоляции от параметров файловой системы передайте `settingSources: []` или `setting_sources=[]` в Python. См. [Control filesystem settings with settingSources](/docs/ru/agent-sdk/claude-code-features#control-filesystem-settings-with-settingsources) для информации о том, что загружает каждый источник.208Для работы в изоляции от параметров файловой системы передайте `settingSources: []` или `setting_sources=[]` в Python. См. [Управление параметрами файловой системы с помощью settingSources](/docs/ru/agent-sdk/claude-code-features#control-filesystem-settings-with-settingsources) для информации о том, что загружает каждый источник.

209 209 

210Изоляция особенно важна для конвейеров CI/CD, развёрнутых приложений, тестовых сред и многопользовательских систем, где локальные настройки не должны утекать.210Изоляция особенно важна для конвейеров CI/CD, развёрнутых приложений, тестовых сред и многопользовательских систем, где локальные настройки не должны утекать.

211 211 

212<Note>212<Note>

213 Python SDK 0.1.59 и более ранние версии обрабатывали пустой список так же, как пропуск опции, поэтому обновитесь перед использованием `setting_sources=[]`. См. [What settingSources does not control](/docs/ru/agent-sdk/claude-code-features#what-settingsources-does-not-control) для входных данных, которые читаются даже когда `settingSources` равен `[]`.213 Python SDK 0.1.59 и более ранние версии обрабатывали пустой список так же, как пропуск опции, поэтому обновитесь перед использованием `setting_sources=[]`. См. [Что settingSources не контролирует](/docs/ru/agent-sdk/claude-code-features#what-settingsources-does-not-control) для входных данных, которые читаются даже когда `settingSources` равен `[]`.

214</Note>214</Note>

215 215 

216<h2 id="next-steps">216<h2 id="next-steps">

Details

17 17 

18Это руководство объясняет, как SDK излучает телеметрию, как настроить экспорт и как помечать и фильтровать данные после их поступления на ваш бэкенд. Чтобы прочитать использование токенов и стоимость непосредственно из потока ответов SDK вместо экспорта на бэкенд, см. [Отслеживание стоимости и использования](/docs/ru/agent-sdk/cost-tracking).18Это руководство объясняет, как SDK излучает телеметрию, как настроить экспорт и как помечать и фильтровать данные после их поступления на ваш бэкенд. Чтобы прочитать использование токенов и стоимость непосредственно из потока ответов SDK вместо экспорта на бэкенд, см. [Отслеживание стоимости и использования](/docs/ru/agent-sdk/cost-tracking).

19 19 

20<Note>

21 Для Claude API или Managed Agents см. [OpenTelemetry для Claude API](https://platform.claude.com/docs/en/manage-claude/opentelemetry).

22</Note>

23 

20<h2 id="how-telemetry-flows-from-the-sdk">24<h2 id="how-telemetry-flows-from-the-sdk">

21 Как телеметрия поступает из SDK25 Как телеметрия поступает из SDK

22</h2>26</h2>

Details

37| MCP | Подключать внешние инструменты и источники данных через Model Context Protocol | [MCP](/docs/ru/agent-sdk/mcp) |37| MCP | Подключать внешние инструменты и источники данных через Model Context Protocol | [MCP](/docs/ru/agent-sdk/mcp) |

38| Permissions | Контролировать, какие инструменты запускаются автоматически, какие требуют одобрения | [Permissions](/docs/ru/agent-sdk/permissions) |38| Permissions | Контролировать, какие инструменты запускаются автоматически, какие требуют одобрения | [Permissions](/docs/ru/agent-sdk/permissions) |

39| Sessions | Сохранять контекст между обменами, возобновлять или разветвлять позже | [Sessions](/docs/ru/agent-sdk/sessions) |39| Sessions | Сохранять контекст между обменами, возобновлять или разветвлять позже | [Sessions](/docs/ru/agent-sdk/sessions) |

40| Skills, commands, и memory | Загружать автоматически из `.claude/` вашего проекта и из `~/.claude/`, как в Claude Code | [Skills](/docs/ru/agent-sdk/skills), [Commands](/docs/ru/agent-sdk/skills#commands-in-agent-sdk-sessions), [Memory](/docs/ru/agent-sdk/modifying-system-prompts), [Configuration loading](/docs/ru/agent-sdk/claude-code-features) |40| Skills, commands, и memory | Загружать автоматически из `.claude/` вашего проекта и из `~/.claude/`, как в Claude Code | [Skills](/docs/ru/agent-sdk/skills), [Commands](/docs/ru/agent-sdk/skills#commands-in-agent-sdk-sessions), [Memory](/docs/ru/agent-sdk/modifying-system-prompts), [Загрузка конфигурации](/docs/ru/agent-sdk/claude-code-features) |

41| Plugins | Упаковывать skills, агентов, hooks и MCP серверы, и загружать их по локальному пути | [Plugins](/docs/ru/agent-sdk/plugins) |41| Plugins | Упаковывать skills, агентов, hooks и MCP серверы, и загружать их по локальному пути | [Plugins](/docs/ru/agent-sdk/plugins) |

42 42 

43<h2 id="get-started">43<h2 id="get-started">

Details

1923| `cacheCreationInputTokens` | `int` | Токены создания кэша для этой модели. |1923| `cacheCreationInputTokens` | `int` | Токены создания кэша для этой модели. |

1924| `webSearchRequests` | `int` | Запросы веб-поиска, сделанные этой моделью. |1924| `webSearchRequests` | `int` | Запросы веб-поиска, сделанные этой моделью. |

1925| `thinkingTokens` | `int` | Токены мышления, созданные этой моделью, уже подсчитанные в `outputTokens`. Отсутствуют до тех пор, пока ход не запустится на версии Claude Code, которая его записывает, и не объявлены в TypedDict, поэтому читайте его с `.get()`. Требуется Python Agent SDK 0.2.150 или позже, чей поставляемый CLI его записывает. |1925| `thinkingTokens` | `int` | Токены мышления, созданные этой моделью, уже подсчитанные в `outputTokens`. Отсутствуют до тех пор, пока ход не запустится на версии Claude Code, которая его записывает, и не объявлены в TypedDict, поэтому читайте его с `.get()`. Требуется Python Agent SDK 0.2.150 или позже, чей поставляемый CLI его записывает. |

1926| `costUSD` | `float` | Предполагаемая стоимость в USD для этой модели, вычисленная на стороне клиента. См. [Track cost and usage](/docs/ru/agent-sdk/cost-tracking) для предостережений выставления счетов. |1926| `costUSD` | `float` | Предполагаемая стоимость в USD для этой модели, вычисленная на стороне клиента. См. [Отслеживание затрат и использования](/docs/ru/agent-sdk/cost-tracking) для предостережений выставления счетов. |

1927| `contextWindow` | `int` | Размер окна контекста для этой модели. |1927| `contextWindow` | `int` | Размер окна контекста для этой модели. |

1928| `maxOutputTokens` | `int` | Максимальный лимит выходных токенов для этой модели. |1928| `maxOutputTokens` | `int` | Максимальный лимит выходных токенов для этой модели. |

1929| `canonicalModel` | `str` | Канонический ID модели, используемый для поиска цены. Может отличаться от необработанной строки модели, по которой индексируется запись, такой как ID или псевдоним, специфичный для поставщика. Не всегда присутствует. |1929| `canonicalModel` | `str` | Канонический ID модели, используемый для поиска цены. Может отличаться от необработанной строки модели, по которой индексируется запись, такой как ID или псевдоним, специфичный для поставщика. Не всегда присутствует. |

Details

1829* `first_stream_post_ms`, `first_stream_post_ack_ms`, `first_stream_post_wall_ms`: тайминги загрузки первого события потока хода. Claude Code записывает их только в сессиях, которые он транслирует на claude.ai, например в [облачных сессиях](/docs/ru/claude-code-on-the-web), и результаты, которые выдаёт `query()`, их не содержат. Требует Agent SDK v0.3.260 или позже.1829* `first_stream_post_ms`, `first_stream_post_ack_ms`, `first_stream_post_wall_ms`: тайминги загрузки первого события потока хода. Claude Code записывает их только в сессиях, которые он транслирует на claude.ai, например в [облачных сессиях](/docs/ru/claude-code-on-the-web), и результаты, которые выдаёт `query()`, их не содержат. Требует Agent SDK v0.3.260 или позже.

1830* `usage`: только основной цикл агента. Исключает вызовы субагентов и вспомогательных моделей и в сессиях с потоковым вводом считается за ход. Для учёта токенов и затрат предпочитайте `modelUsage`.1830* `usage`: только основной цикл агента. Исключает вызовы субагентов и вспомогательных моделей и в сессиях с потоковым вводом считается за ход. Для учёта токенов и затрат предпочитайте `modelUsage`.

1831* `modelUsage`: итоги по моделям для каждого вызова модели, сделанного через конвейер запросов во время этого вызова `query()`, включая основной цикл, субагентов и внутренние вызовы, такие как сжатие контекста и агенты Workflow. Вспомогательные вызовы вне этого конвейера, такие как классификатор разрешений и запросы подсчёта токенов, исключены. Вызов, который возобновляет сессию, также учитывает [итоги по моделям, восстановленные из более ранних вызовов сессии](/docs/ru/agent-sdk/cost-tracking#accumulate-costs-across-multiple-calls). В сессиях с потоковым вводом итоги накапливаются по ходам, поэтому читайте последний результат, а не суммируйте по результатам. См. [Track costs in streaming input mode](/docs/ru/agent-sdk/cost-tracking#track-costs-in-streaming-input-mode) о сбросах и [Recover totals after a session crash](/docs/ru/agent-sdk/cost-tracking#recover-totals-after-a-session-crash) об обнулённых результатах.1831* `modelUsage`: итоги по моделям для каждого вызова модели, сделанного через конвейер запросов во время этого вызова `query()`, включая основной цикл, субагентов и внутренние вызовы, такие как сжатие контекста и агенты Workflow. Вспомогательные вызовы вне этого конвейера, такие как классификатор разрешений и запросы подсчёта токенов, исключены. Вызов, который возобновляет сессию, также учитывает [итоги по моделям, восстановленные из более ранних вызовов сессии](/docs/ru/agent-sdk/cost-tracking#accumulate-costs-across-multiple-calls). В сессиях с потоковым вводом итоги накапливаются по ходам, поэтому читайте последний результат, а не суммируйте по результатам. См. [Track costs in streaming input mode](/docs/ru/agent-sdk/cost-tracking#track-costs-in-streaming-input-mode) о сбросах и [Recover totals after a session crash](/docs/ru/agent-sdk/cost-tracking#recover-totals-after-a-session-crash) об обнулённых результатах.

1832* `total_cost_usd`: кумулятивная оценочная стоимость в USD, охватывающая те же вызовы, что и `modelUsage`, и сбрасываемая в тех же точках. Вызов, который возобновляет сессию, также учитывает [итоги, восстановленные из более ранних вызовов сессии](/docs/ru/agent-sdk/cost-tracking#accumulate-costs-across-multiple-calls). Это оценка, а не выписка по счёту. См. [Track cost and usage](/docs/ru/agent-sdk/cost-tracking) о предостережениях по точности.1832* `total_cost_usd`: кумулятивная оценочная стоимость в USD, охватывающая те же вызовы, что и `modelUsage`, и сбрасываемая в тех же точках. Вызов, который возобновляет сессию, также учитывает [итоги, восстановленные из более ранних вызовов сессии](/docs/ru/agent-sdk/cost-tracking#accumulate-costs-across-multiple-calls). Это оценка, а не выписка по счёту. См. [Отслеживание затрат и использования](/docs/ru/agent-sdk/cost-tracking) о предостережениях по точности.

1833* `queued_turn_count`: количество отправленных вами сообщений с `origin: { kind: "human" }`, которые всё ещё ожидают, когда Claude Code создал результат. См. [`queued_turn_count`](#queued_turn_count), чтобы узнать, что означают `0` и отсутствующее поле.1833* `queued_turn_count`: количество отправленных вами сообщений с `origin: { kind: "human" }`, которые всё ещё ожидают, когда Claude Code создал результат. См. [`queued_turn_count`](#queued_turn_count), чтобы узнать, что означают `0` и отсутствующее поле.

1834* `result_index`: позиция этого результата в порядке доставки запуска, считая от 0 по всем результатам, которые записывает процесс. Присутствует в обеих ветвях. Результат, запись которого не удалась, всё равно занимает свой номер, поэтому разрыв в последовательности означает, что результат был потерян. Требует Agent SDK v0.3.268 или позже.1834* `result_index`: позиция этого результата в порядке доставки запуска, считая от 0 по всем результатам, которые записывает процесс. Присутствует в обеих ветвях. Результат, запись которого не удалась, всё равно занимает свой номер, поэтому разрыв в последовательности означает, что результат был потерян. Требует Agent SDK v0.3.268 или позже.

1835* `startup_failure_reason`: почему Claude Code отказался запускаться, в результате `error_during_execution`, который он записывает перед выходом при известной ошибке запуска. См. [`startup_failure_reason`](#startup_failure_reason) о значениях и о том, какие ошибки его содержат. Требует Agent SDK v0.3.274 или позже.1835* `startup_failure_reason`: почему Claude Code отказался запускаться, в результате `error_during_execution`, который он записывает перед выходом при известной ошибке запуска. См. [`startup_failure_reason`](#startup_failure_reason) о значениях и о том, какие ошибки его содержат. Требует Agent SDK v0.3.274 или позже.

agent-view.md +5 −5

Details

500 Что переносится при отправке в фон500 Что переносится при отправке в фон

501</h4>501</h4>

502 502 

503При отправке в фон запускается новый процесс, который возобновляет работу из сохранённого диалога, и выполняющаяся работа переходит в него: запущенные фоновые shell-команды, субагенты в фоне, динамические рабочие процессы, запланированные задачи, созданные с помощью [`/loop`](/docs/ru/scheduled-tasks), и [автоматические ответы Claude на комментарии к артефактам](/docs/ru/artifacts#let-claude-reply-to-comments-on-its-own) — всё это переносится и продолжает выполняться там. Субагент переходит вместе со всем, что он запустил, поэтому он переносится, только если вся эта работа тоже может перейти. Чтобы останавливать выполняющуюся работу вместо переноса, задайте переменную окружения [`CLAUDE_DISABLE_ADOPT=1`](/docs/ru/env-vars#variables); тогда Claude Code будет просить подтверждения перед отправкой в фон.503При отправке в фон запускается новый процесс, который возобновляет работу из сохранённого диалога, и выполняющаяся фоновая работа переходит в него: запущенные фоновые shell-команды, субагенты в фоне, динамические рабочие процессы, запланированные задачи, созданные с помощью [`/loop`](/docs/ru/scheduled-tasks), и [автоматические ответы Claude на комментарии к артефактам](/docs/ru/artifacts#let-claude-reply-to-comments-on-its-own) — всё это переносится и продолжает выполняться там. Субагент переходит вместе со всем, что он запустил, поэтому он переносится, только если вся эта работа тоже может перейти. Чтобы останавливать выполняющуюся фоновую работу вместо переноса, задайте переменную окружения [`CLAUDE_DISABLE_ADOPT=1`](/docs/ru/env-vars#variables); тогда Claude Code будет просить подтверждения перед отправкой в фон.

504 504 

505Если в [динамическом рабочем процессе](/docs/ru/workflows) ещё выполняются субагенты, Claude Code перед отправкой в фон показывает диалоговое окно `Background this session?`, в котором указано, сколько субагентов будет перезапущено. Выберите `Stay`, чтобы сначала дать им завершиться. Если вы подтвердите, Claude Code воспроизведёт запуск в фоновой сессии: субагенты, которые ещё выполнялись, начнут работу с самого начала, поэтому уже израсходованные ими токены будут потрачены снова. О том, какие завершённые субагенты возвращают сохранённые результаты, а какие запускаются заново, см. в разделе [Возобновление после паузы](/docs/ru/workflows#resume-after-a-pause).505Если в [динамическом рабочем процессе](/docs/ru/workflows) ещё выполняются субагенты, Claude Code перед отправкой в фон показывает диалоговое окно `Background this session?`, в котором указано, сколько субагентов будет перезапущено. Выберите `Stay`, чтобы сначала дать им завершиться. Если вы подтвердите, Claude Code воспроизведёт запуск в фоновой сессии: субагенты, которые ещё выполнялись, начнут работу с самого начала, поэтому уже израсходованные ими токены будут потрачены снова. О том, какие завершённые субагенты возвращают сохранённые результаты, а какие запускаются заново, см. в разделе [Возобновление после паузы](/docs/ru/workflows#resume-after-a-pause).

506 506 

507Claude Code останавливает работу, которую нельзя перенести, например запущенный [монитор](/docs/ru/tools-reference#monitor-tool), а вместе с ним — и субагента в фоне, которому принадлежит монитор. Если такая работа выполняется, Claude Code показывает диалоговое окно `Background this session?`, чтобы вы подтвердили её остановку.507Claude Code останавливает фоновую работу, которую нельзя перенести, например запущенный [монитор](/docs/ru/tools-reference#monitor-tool), а вместе с ним — и субагента в фоне, которому принадлежит монитор. Если такая работа выполняется, Claude Code показывает диалоговое окно `Background this session?`, чтобы вы подтвердили её остановку.

508 508 

509Уже находясь в фоне, сессия может запускать новых субагентов, мониторы и фоновые команды, и они продолжают работать при последующих отключениях и повторных подключениях.509Уже находясь в фоне, сессия может запускать новых субагентов, мониторы и фоновые команды, и они продолжают работать при последующих отключениях и повторных подключениях.

510 510 


949 При переводе в фоновый режим показывается диалоговое окно `Background this session?`949 При переводе в фоновый режим показывается диалоговое окно `Background this session?`

950</h3>950</h3>

951 951 

952Если при нажатии `←` для перевода текущей сессии в фоновый режим Claude Code показывает диалоговое окно `Background this session?`, значит, в сессии выполняется работа, которую перевод в фоновый режим остановил бы, перезапустил или оставил бы работать без присмотра, и Claude Code запрашивает подтверждение перед любым из этих действий:952Если при нажатии `←` для перевода текущей сессии в фоновый режим Claude Code показывает диалоговое окно `Background this session?`, значит, в сессии выполняется фоновая работа, которую перевод в фоновый режим остановил бы, перезапустил или оставил бы работать без присмотра, и Claude Code запрашивает подтверждение перед любым из этих действий:

953 953 

954* **Работа, которую нельзя перенести**: в сессии есть работа, которую нельзя перенести в фоновую сессию, например работающий [monitor](/docs/ru/tools-reference#monitor-tool). Диалоговое окно называет работу, которую Claude Code остановит, и отдельно указывает количество задач, которые будут перенесены.954* **Работа, которую нельзя перенести**: в сессии есть работа, которую нельзя перенести в фоновую сессию, например работающий [монитор](/docs/ru/tools-reference#monitor-tool). Диалоговое окно называет фоновую работу, которую Claude Code остановит, и отдельно указывает количество задач, которые будут перенесены.

955* **Workflow с работающими субагентами**: у [динамического workflow](/docs/ru/workflows) всё ещё работают субагенты. Сам workflow переносится, но его работающие субагенты перезапускаются с начала, и диалоговое окно указывает, сколько их.955* **Workflow с работающими субагентами**: у [динамического workflow](/docs/ru/workflows) всё ещё работают субагенты. Сам workflow переносится, но его работающие субагенты перезапускаются с начала, и диалоговое окно указывает, сколько их.

956* **Автоматические ответы в артефакте**: Claude [самостоятельно отвечает на комментарии к артефакту](/docs/ru/artifacts#let-claude-reply-to-comments-on-its-own). Эти ответы продолжаются в фоновой сессии, и диалоговое окно сообщает об этом.956* **Автоматические ответы в артефакте**: Claude [самостоятельно отвечает на комментарии к артефакту](/docs/ru/artifacts#let-claude-reply-to-comments-on-its-own). Эти ответы продолжаются в фоновой сессии, и диалоговое окно сообщает об этом.

957 957 


1175| v2.1.199 | Фоновая сессия, процесс которой завершается до окончания запуска на хосте с нехваткой памяти, показывает `possibly low memory — free some up and retry` в статусе своей строки вместо одной лишь причины завершения. Перевод сессии в фон с помощью `←` или `/background` переносит её `/color` в новую строку. |1175| v2.1.199 | Фоновая сессия, процесс которой завершается до окончания запуска на хосте с нехваткой памяти, показывает `possibly low memory — free some up and retry` в статусе своей строки вместо одной лишь причины завершения. Перевод сессии в фон с помощью `←` или `/background` переносит её `/color` в новую строку. |

1176| v2.1.198 | Agent view отправляет уведомление через `preferredNotifChannel`, когда фоновой сессии требуется ввод, когда она завершается или завершается сбоем, и запускает хук `Notification` с типом `agent_needs_input` или `agent_completed`. `←` и `/exit` внутри `claude attach <id>` возвращают в agent view вместо выхода в оболочку; `Ctrl+Z` возвращает в оболочку. Фоновая сессия, изолировавшая свою работу в worktree, при завершении делает коммит, отправляет свою собственную изолированную ветку — никогда не `main` или `master` — и открывает черновой pull request, не спрашивая предварительно. `/login` работает в agent view и открывает диалоговое окно входа. Диалоговое окно выхода `Background work is running` предлагает `Move to background and exit`. Передача при выходе также охватывает фоновых субагентов, которые возобновляются из своего транскрипта при следующем пробуждении вместо того, чтобы отмечаться как завершившиеся сбоем. `claude --bg` в сочетании с `-p` или `--print` отклоняется с ошибкой. Хост фоновой сессии запрашивает разрешение macOS Local Network при первом обращении к локальной сети вместо сбоя с `connect: no route to host`. |1176| v2.1.198 | Agent view отправляет уведомление через `preferredNotifChannel`, когда фоновой сессии требуется ввод, когда она завершается или завершается сбоем, и запускает хук `Notification` с типом `agent_needs_input` или `agent_completed`. `←` и `/exit` внутри `claude attach <id>` возвращают в agent view вместо выхода в оболочку; `Ctrl+Z` возвращает в оболочку. Фоновая сессия, изолировавшая свою работу в worktree, при завершении делает коммит, отправляет свою собственную изолированную ветку — никогда не `main` или `master` — и открывает черновой pull request, не спрашивая предварительно. `/login` работает в agent view и открывает диалоговое окно входа. Диалоговое окно выхода `Background work is running` предлагает `Move to background and exit`. Передача при выходе также охватывает фоновых субагентов, которые возобновляются из своего транскрипта при следующем пробуждении вместо того, чтобы отмечаться как завершившиеся сбоем. `claude --bg` в сочетании с `-p` или `--print` отклоняется с ошибкой. Хост фоновой сессии запрашивает разрешение macOS Local Network при первом обращении к локальной сети вместо сбоя с `connect: no route to host`. |

1177| v2.1.196 | Одно нажатие `←` переводит сессию переднего плана в фон; более ранние версии требовали двух нажатий с подсказкой в нижней строке и подтверждением. `--dangerously-skip-permissions`, переданный в `claude agents`, показывает предупреждение об обходе разрешений вместо того, чтобы незаметно отбрасываться. Интерактивные сессии, которым вы не дали имя, получают имя по умолчанию, например `my-app-3f`, в списках сессий и в `claude agents --json`. Фоновые shell-команды и динамические рабочие процессы переживают остановку, перезапуск или обновление процесса сессии, в том числе в Windows; установите `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF=1`, чтобы отключить эту передачу. Транскрипт, ошибочно прочитанный как пустой при перезапуске, переименовывается с суффиксом `.orphaned-` вместо удаления. |1177| v2.1.196 | Одно нажатие `←` переводит сессию переднего плана в фон; более ранние версии требовали двух нажатий с подсказкой в нижней строке и подтверждением. `--dangerously-skip-permissions`, переданный в `claude agents`, показывает предупреждение об обходе разрешений вместо того, чтобы незаметно отбрасываться. Интерактивные сессии, которым вы не дали имя, получают имя по умолчанию, например `my-app-3f`, в списках сессий и в `claude agents --json`. Фоновые shell-команды и динамические рабочие процессы переживают остановку, перезапуск или обновление процесса сессии, в том числе в Windows; установите `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF=1`, чтобы отключить эту передачу. Транскрипт, ошибочно прочитанный как пустой при перезапуске, переименовывается с суффиксом `.orphaned-` вместо удаления. |

1178| v2.1.195 | Выполняющаяся работа переносится при переводе сессии в фон и в Windows; установите `CLAUDE_DISABLE_ADOPT=1`, чтобы вместо этого останавливать её. Группа `Completed` заполняет оставшееся вертикальное пространство, а заголовок сжимается в невысоких терминалах. Более старая версия Claude Code больше не отбрасывает поля `state.json` более новых сессий и не скрывает эти сессии из `claude agents`. Присоединение к остановленной сессии переключает сразу вместо показа пустого экрана до пяти секунд. Супервизор, который не может принимать подключения, сам завершает работу и освобождает свою блокировку. |1178| v2.1.195 | Выполняющаяся фоновая работа переносится при переводе сессии в фон и в Windows; установите `CLAUDE_DISABLE_ADOPT=1`, чтобы вместо этого останавливать её. Группа `Completed` заполняет оставшееся вертикальное пространство, а заголовок сжимается в невысоких терминалах. Более старая версия Claude Code больше не отбрасывает поля `state.json` более новых сессий и не скрывает эти сессии из `claude agents`. Присоединение к остановленной сессии переключает сразу вместо показа пустого экрана до пяти секунд. Супервизор, который не может принимать подключения, сам завершает работу и освобождает свою блокировку. |

1179| v2.1.191 | `claude --bg` с именем `--agent`, не совпадающим ни с одним из ваших субагентов, приводит к сбою запуска: сессия сразу завершается с ошибкой `--agent '<name>' not found` вместо работы с агентом по умолчанию. |1179| v2.1.191 | `claude --bg` с именем `--agent`, не совпадающим ни с одним из ваших субагентов, приводит к сбою запуска: сессия сразу завершается с ошибкой `--agent '<name>' not found` вместо работы с агентом по умолчанию. |

1180| v2.1.174 | Фоновые сессии больше не наследуют переменные эндпоинта шлюза, такие как `ANTHROPIC_BASE_URL`, из оболочки, в которой был запущен супервизор; супервизор передаёт свежий снимок учётных данных предварительно прогретым рабочим процессам, что исправляет ложные ошибки `Could not resolve authentication method`. |1180| v2.1.174 | Фоновые сессии больше не наследуют переменные эндпоинта шлюза, такие как `ANTHROPIC_BASE_URL`, из оболочки, в которой был запущен супервизор; супервизор передаёт свежий снимок учётных данных предварительно прогретым рабочим процессам, что исправляет ложные ошибки `Could not resolve authentication method`. |

1181| v2.1.172 | `/model` в поле отправки задаёт переопределение модели отправки в пределах сессии. |1181| v2.1.172 | `/model` в поле отправки задаёт переопределение модели отправки в пределах сессии. |

analytics.md +2 −0

Details

13| Claude for Teams / Enterprise | [claude.ai/analytics/claude-code](https://claude.ai/analytics/claude-code) | Метрики использования, метрики вклада с интеграцией GitHub, таблица лидеров, экспорт данных | [Подробности](#access-analytics-for-team-and-enterprise) |13| Claude for Teams / Enterprise | [claude.ai/analytics/claude-code](https://claude.ai/analytics/claude-code) | Метрики использования, метрики вклада с интеграцией GitHub, таблица лидеров, экспорт данных | [Подробности](#access-analytics-for-team-and-enterprise) |

14| API (Claude Console) | [platform.claude.com/claude-code](https://platform.claude.com/claude-code) | Метрики использования, отслеживание расходов, аналитика команды | [Подробности](#access-analytics-for-api-customers) |14| API (Claude Console) | [platform.claude.com/claude-code](https://platform.claude.com/claude-code) | Метрики использования, отслеживание расходов, аналитика команды | [Подробности](#access-analytics-for-api-customers) |

15 15 

16У Code Review есть собственная панель. Сведения об активности код-ревью и расходах см. в разделе [Просмотр использования](/docs/ru/code-review-costs#view-usage).

17 

16<h2 id="access-analytics-for-team-and-enterprise">18<h2 id="access-analytics-for-team-and-enterprise">

17 Доступ к аналитике для Team и Enterprise19 Доступ к аналитике для Team и Enterprise

18</h2>20</h2>

artifacts.md +5 −3

Details

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

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

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

78| Вы отключили [получение флагов функций](/docs/ru/env-vars#features-that-need-feature-flag-fetching) | Спрашивает перед первой публикацией каждого артефакта |

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

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

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

81 81 

82Claude читает файлы в [рабочих каталогах](/docs/ru/permissions#working-directories) вашей сессии, а также во временном каталоге, в который записывает страницы, не спрашивая. Чтобы Claude мог публиковать из другой папки без запроса, добавьте эту папку как рабочий каталог с помощью [`--add-dir`](/docs/ru/cli-reference#cli-flags) при запуске или `/add-dir` во время сессии.82Чтобы Claude мог читать файл вне ваших [рабочих каталогов](/docs/ru/permissions#working-directories) без вашего подтверждения, добавьте его папку как рабочий каталог с помощью [`--add-dir`](/docs/ru/cli-reference#cli-flags) при запуске или `/add-dir` во время сессии. Claude уже читает файлы в этих каталогах, а также во временном каталоге, в который записывает страницы, не спрашивая.

83 

84Если запрос на публикацию содержит предложение вроде `Also makes 1 edit to that file on disk.`, Claude изменяет файл артефакта и публикует его за один шаг. Когда вы подтверждаете запрос, Claude Code публикует страницу, а затем записывает изменение в ваш файл.

83 85 

84<h2 id="update-an-artifact">86<h2 id="update-an-artifact">

85 Обновление артефакта87 Обновление артефакта


149* **Облачная сессия без доступа к сети**: для [облачной среды](/docs/ru/cloud-environments#access-levels) это уровень **None**. В [авторежиме](/docs/ru/permission-modes#eliminate-prompts-with-auto-mode) вместо вас подтверждение может дать классификатор; в сессии [Cowork](https://claude.com/product/cowork) подтверждение даете только вы.151* **Облачная сессия без доступа к сети**: для [облачной среды](/docs/ru/cloud-environments#access-levels) это уровень **None**. В [авторежиме](/docs/ru/permission-modes#eliminate-prompts-with-auto-mode) вместо вас подтверждение может дать классификатор; в сессии [Cowork](https://claude.com/product/cowork) подтверждение даете только вы.

150* **Публичный артефакт другой организации**: Claude Code сначала спрашивает вас, даже в авторежиме. Если Claude Code не может спросить вас, например в режиме `bypassPermissions`, Claude не может прочитать артефакт. Claude может читать такие артефакты только при включенном [получении feature-флагов](/docs/ru/env-vars#features-that-need-feature-flag-fetching).152* **Публичный артефакт другой организации**: Claude Code сначала спрашивает вас, даже в авторежиме. Если Claude Code не может спросить вас, например в режиме `bypassPermissions`, Claude не может прочитать артефакт. Claude может читать такие артефакты только при включенном [получении feature-флагов](/docs/ru/env-vars#features-that-need-feature-flag-fetching).

151* **Неподтвержденный владелец или сетевая настройка**: если Claude Code не может подтвердить, кто создал артефакт, или не может подтвердить сетевую настройку облачной сессии, он спрашивает, и ваше подтверждение распространяется только на этот один запрос.153* **Неподтвержденный владелец или сетевая настройка**: если Claude Code не может подтвердить, кто создал артефакт, или не может подтвердить сетевую настройку облачной сессии, он спрашивает, и ваше подтверждение распространяется только на этот один запрос.

152* **Режим планирования или отключенное получение feature-флагов**: в [режиме планирования](/docs/ru/permission-modes#analyze-before-you-edit-with-plan-mode) или если вы отключили [получение feature-флагов](/docs/ru/env-vars#features-that-need-feature-flag-fetching), Claude Code спрашивает, прежде чем инструмент Artifact прочитает артефакт, созданный кем-то другим в вашей организации.154* **Режим планирования**: в [режиме планирования](/docs/ru/permission-modes#analyze-before-you-edit-with-plan-mode) Claude Code спрашивает, прежде чем инструмент Artifact прочитает артефакт, созданный кем-то другим в вашей организации.

153 155 

154Когда Claude читает артефакт с помощью WebFetch, собственные [правила запросов](/docs/ru/tools-reference#webfetch-tool-behavior) WebFetch по-прежнему действуют.156Когда Claude читает артефакт с помощью WebFetch, собственные [правила запросов](/docs/ru/tools-reference#webfetch-tool-behavior) WebFetch по-прежнему действуют.

155 157 

Details

102[Subagent](/docs/ru/sub-agents) вносит правки с помощью инструментов редактирования файлов Claude, но Claude Code обычно не фиксирует эти правки в checkpoints вашего сеанса. Восстанавливает ли rewind эти правки, зависит от того, как работает subagent:102[Subagent](/docs/ru/sub-agents) вносит правки с помощью инструментов редактирования файлов Claude, но Claude Code обычно не фиксирует эти правки в checkpoints вашего сеанса. Восстанавливает ли rewind эти правки, зависит от того, как работает subagent:

103 103 

104* **Foreground forked skill**: [skill с `context: fork`](/docs/ru/skills#run-skills-in-a-subagent), который работает на переднем плане, редактирует вашу рабочую папку во время вашего хода, поэтому rewind восстанавливает его правки как обычно. Установите `background: false`, чтобы запустить fork на переднем плане; в некоторых ситуациях, [перечисленных на странице skills](/docs/ru/skills#run-skills-in-a-subagent), он запускается там независимо от этого параметра.104* **Foreground forked skill**: [skill с `context: fork`](/docs/ru/skills#run-skills-in-a-subagent), который работает на переднем плане, редактирует вашу рабочую папку во время вашего хода, поэтому rewind восстанавливает его правки как обычно. Установите `background: false`, чтобы запустить fork на переднем плане; в некоторых ситуациях, [перечисленных на странице skills](/docs/ru/skills#run-skills-in-a-subagent), он запускается там независимо от этого параметра.

105* **Любой другой subagent**: rewind не восстанавливает правки. Используйте git для их отката. Это включает forked skill, который работает в фоновом режиме (по умолчанию), и фоновый запуск [`/code-review --fix`](/docs/ru/code-review).105* **Любой другой субагент**: rewind восстанавливает только те файлы, которые Claude уже редактировал в вашем диалоге. Правки субагента в других файлах остаются, поэтому используйте git для их отката. Это включает forked skill, который работает в фоновом режиме (по умолчанию), и фоновый запуск [`/code-review --fix`](/docs/ru/code-review-local).

106 106 

107<h3 id="external-changes-not-tracked">107<h3 id="external-changes-not-tracked">

108 Внешние изменения не отслеживаются108 Внешние изменения не отслеживаются

Details

64См. [Подключение из терминала](/docs/ru/web-quickstart#connect-from-your-terminal) для пошагового руководства `/web-setup`, включая то, что хранит `/web-setup` и как его удалить.64См. [Подключение из терминала](/docs/ru/web-quickstart#connect-from-your-terminal) для пошагового руководства `/web-setup`, включая то, что хранит `/web-setup` и как его удалить.

65 65 

66<Note>66<Note>

67 Организации с включённым [Zero Data Retention](/docs/ru/zero-data-retention) или с применённой [конфигурацией HIPAA](/docs/ru/hipaa-setup) не могут использовать `/web-setup` или другие функции облачных сессий.67 Организации с включённым [Zero Data Retention](/docs/ru/zero-data-retention) или с применённой [конфигурацией HIPAA](/docs/ru/hipaa-setup) не могут использовать `/web-setup` или другие функции облачных сессий. Организации, использующие [ключи шифрования, управляемые клиентом](https://platform.claude.com/docs/en/manage-claude/cmek) (CMEK), также не могут запускать облачные сессии.

68</Note>68</Note>

69 69 

70<h3 id="quick-setup-for-team-and-enterprise">70<h3 id="quick-setup-for-team-and-enterprise">

Details

559 559 

560`matcher` ограничивает hook событиями `startup` и `resume`, и `$CLAUDE_PROJECT_DIR` разрешается в корень репозитория, поэтому hook находит скрипт независимо от рабочего каталога сеанса.560`matcher` ограничивает hook событиями `startup` и `resume`, и `$CLAUDE_PROJECT_DIR` разрешается в корень репозитория, поэтому hook находит скрипт независимо от рабочего каталога сеанса.

561 561 

562Далее создайте скрипт в `scripts/install_pkgs.sh`. Он выходит немедленно вне облака, затем устанавливает ваши зависимости:562Далее создайте скрипт в `scripts/install_pkgs.sh`. Он немедленно завершается вне облака, затем устанавливает ваши зависимости. Он пропускает `npm install`, пока `package.json`, `package-lock.json` и сам скрипт не изменились с момента последней успешной установки:

563 563 

564```bash theme={null}564```bash theme={null}

565#!/bin/bash565#!/bin/bash


568 exit 0568 exit 0

569fi569fi

570 570 

571npm install571cd "$CLAUDE_PROJECT_DIR" || exit 1

572hashes=node_modules/.install_pkgs.sha256

573 

574if ! sha256sum --check --status "$hashes" 2>/dev/null; then

575 # Delete the old hashes first, so a failed install runs again next time

576 rm -f "$hashes"

577 if npm install; then

578 sha256sum scripts/install_pkgs.sh package.json package-lock.json > "$hashes" || rm -f "$hashes"

579 fi

580fi

581 

582# pip skips requirements that are already satisfied

572pip install -r requirements.txt583pip install -r requirements.txt

573exit 0584exit 0

574```585```

575 586 

576Проверка `CLAUDE_CODE_REMOTE` — это то, что ограничивает установку облачными сеансами: виртуальная машина сеанса несёт эту переменную как `true`, она никогда не `true` локально, поэтому на вашем ноутбуке скрипт выходит перед установкой чего-либо.587Проверка `CLAUDE_CODE_REMOTE` — это то, что ограничивает установку облачными сеансами: виртуальная машина сеанса несёт эту переменную как `true`, она никогда не `true` локально, поэтому на вашем ноутбуке скрипт выходит перед установкой чего-либо.

577 588 

578Вместе два файла дают каждому облачному сеансу свежий `npm install` и `pip install` при запуске, оставляя локальные сеансы нетронутыми.589Чтобы убедиться, что `npm install` выполнился успешно, запустите облачную сессию и попросите Claude показать `node_modules/.install_pkgs.sha256`. Файл содержит хэш для каждого из трёх файлов. Если файл отсутствует, попросите Claude запустить `npm install` и сообщить об ошибке.

590 

591<Note>

592 Если `npm install` читает другие файлы, например `package.json` рабочего пространства, `.npmrc` или входные данные вашего скрипта `postinstall`, добавьте их в команду `sha256sum`, которая сохраняет хэши. Иначе после изменения одного из этих файлов у вас останутся старые пакеты.

593</Note>

579 594 

580<h4 id="limitations-in-cloud-sessions">595<h4 id="limitations-in-cloud-sessions">

581 Ограничения в облачных сеансах596 Ограничения в облачных сеансах


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

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

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

590* **Добавляет задержку запуска**: hooks запускаются каждый раз, когда сеанс запускается или возобновляется, в отличие от скриптов установки, которые выигрывают от [кэширования среды](#environment-caching). Держите скрипты установки быстрыми, проверяя, присутствуют ли зависимости, перед переустановкой.605* **Добавляет задержку запуска**: хуки запускаются каждый раз, когда сессия запускается или возобновляется, в отличие от скриптов установки, которые выигрывают от [кэширования среды](#environment-caching). Держите скрипты установки быстрыми, пропуская уже выполненную работу, как это делает [скрипт установки зависимостей](#install-dependencies-with-a-sessionstart-hook).

591 606 

592Чтобы настроить базовый образ, используйте скрипт установки для установки того, что вам нужно, поверх [предоставленного образа](#installed-tools), или запустите свой собственный образ как контейнер рядом с Claude с помощью `docker compose`. Полная замена базового образа ещё не поддерживается.607Чтобы настроить базовый образ, используйте скрипт установки для установки того, что вам нужно, поверх [предоставленного образа](#installed-tools), или запустите свой собственный образ как контейнер рядом с Claude с помощью `docker compose`. Полная замена базового образа ещё не поддерживается.

593 608 

code-review.md +86 −390

Details

4 4 

5# Code Review5# Code Review

6 6 

7> Настройте автоматизированные проверки PR, которые выявляют логические ошибки, уязвимости безопасности и регрессии с помощью многоагентного анализа всей вашей кодовой базы7> Находите ошибки в pull request на GitHub с помощью Code Review: Claude проводит ревью каждого изменения, проверяет свои результаты и оставляет встроенные комментарии. Для планов Team и Enterprise

8 8 

9<Note>9С Code Review Claude проводит ревью pull request в ваших репозиториях GitHub. Несколько агентов читают каждое изменение вместе с окружающим кодом и ищут такие проблемы, как логические ошибки, уязвимости безопасности или нарушенные граничные случаи. Прежде чем о результатах будет сообщено, этап верификации сверяет их с кодом.

10 Code Review находится в статусе research preview и доступен для подписок [Team и Enterprise](https://claude.ai/admin-settings/claude-code). Он недоступен для организаций с включённым [Zero Data Retention](/docs/ru/zero-data-retention) или с применённой [конфигурацией HIPAA](/docs/ru/hipaa-setup), и на него не распространяется BAA Anthropic. На других планах вы всё ещё можете [проверить diff локально](#review-a-diff-locally) с помощью команды `/code-review`.

11</Note>

12 

13Code Review анализирует ваши pull-запросы GitHub и публикует результаты в виде встроенных комментариев на строках кода, где были обнаружены проблемы. Группа специализированных агентов изучает изменения кода в контексте всей вашей кодовой базы, ища логические ошибки, уязвимости безопасности, нарушенные граничные случаи и тонкие регрессии.

14 

15Результаты помечаются по степени серьёзности и не одобряют и не блокируют ваш PR, поэтому существующие рабочие процессы проверки остаются неизменными. Вы можете настроить, что Claude помечает, добавив файл `CLAUDE.md` или `REVIEW.md` в ваш репозиторий.

16 

17Чтобы запустить Claude в собственной инфраструктуре CI вместо этого управляемого сервиса, см. [GitHub Actions](/docs/ru/github-actions) или [GitLab CI/CD](/docs/ru/gitlab-ci-cd). Для репозиториев на самостоятельно размещённом экземпляре GitHub см. [GitHub Enterprise Server](/docs/ru/github-enterprise-server).

18 

19На этой странице рассматривается:

20 

21* [Как работают проверки](#how-reviews-work)

22* [Настройка](#set-up-code-review)

23* [Ручной запуск проверок](#manually-trigger-reviews) с помощью `@claude review` и `@claude review always`

24* [Настройка проверок](#customize-reviews) с помощью `CLAUDE.md` и `REVIEW.md`

25* [Цены](#pricing)

26* [Устранение неполадок](#troubleshooting) при сбое запусков и отсутствии комментариев

27* [Проверка diff локально](#review-a-diff-locally) с помощью команды `/code-review`

28 

29<h2 id="how-reviews-work">

30 Как работают проверки

31</h2>

32 

33После того как администратор [включит Code Review](#set-up-code-review) для вашей организации, проверки запускаются при открытии PR, при каждом push или при ручном запросе в зависимости от настроенного поведения репозитория. Комментарий `@claude review` [запускает проверки на PR](#manually-trigger-reviews) в любом режиме.

34 

35Когда запускается проверка, несколько агентов параллельно анализируют diff и окружающий код на инфраструктуре Anthropic. Каждый агент ищет другой класс проблем, затем этап проверки проверяет кандидатов на соответствие фактическому поведению кода, чтобы отфильтровать ложные срабатывания. Результаты дедублицируются, ранжируются по степени серьёзности и публикуются в виде встроенных комментариев на конкретных строках, где были обнаружены проблемы, с кратким резюме в теле проверки. Если проблемы не найдены, Code Review обновляет проверку GitHub, чтобы показать, что проблемы не обнаружены. Claude также может опубликовать краткий подтверждающий комментарий на PR.

36 

37Проверки масштабируются по стоимости в зависимости от размера и сложности PR, в среднем завершаясь за 20 минут. Администраторы могут отслеживать активность проверок и расходы через [панель аналитики](#view-usage).

38 

39<h3 id="severity-levels">

40 Уровни серьёзности

41</h3>

42 

43Каждый результат помечается уровнем серьёзности:

44 

45| Маркер | Серьёзность | Значение |

46| :- | :- | :- |

47| 🔴 | Important | Ошибка, которую следует исправить перед слиянием |

48| 🟡 | Nit | Незначительная проблема, стоит исправить, но не блокирует |

49| 🟣 | Pre-existing | Ошибка, которая существует в кодовой базе, но не была введена этим PR |

50 

51Результаты включают свёртываемый раздел **Why this was flagged**, который вы можете развернуть, чтобы понять, почему Claude пометил проблему и как она проверила проблему.

52 

53<h3 id="rate-and-reply-to-findings">

54 Оценка и ответ на результаты

55</h3>

56 

57Каждый комментарий проверки от Claude поступает с уже прикреплёнными 👍 и 👎, поэтому обе кнопки появляются в пользовательском интерфейсе GitHub для одноклассного рейтинга. Нажмите 👍, если результат был полезен, или 👎, если он был неправильным или шумным. Anthropic собирает количество реакций после слияния PR и использует их для настройки рецензента. Реакции не запускают повторную проверку и не изменяют ничего на PR.

58 

59Ответ на встроенный комментарий не побуждает Claude ответить или обновить PR. Чтобы действовать на основе результата, исправьте код и выполните push. Если PR подписан на проверки, запускаемые при push, следующий запуск разрешает поток при исправлении проблемы. Чтобы запросить свежую проверку без push, прокомментируйте `@claude review` как [комментарий верхнего уровня PR](#manually-trigger-reviews).

60 

61Чтобы отклонить результат без изменения кода, разрешите его поток; ответ не отклонит его.

62 

63<h3 id="check-run-output">

64 Вывод проверки

65</h3>

66 

67Помимо встроенных комментариев проверки, каждая проверка заполняет проверку **Claude Code Review**, которая появляется рядом с вашими проверками CI. Разверните её ссылку **Details**, чтобы увидеть сводку каждого результата в одном месте, отсортированную по степени серьёзности:

68 

69| Серьёзность | Файл:Строка | Проблема |

70| - | - | - |

71| 🔴 Important | `src/auth/session.ts:142` | Обновление токена гонится с выходом, оставляя активными устаревшие сеансы |

72| 🟡 Nit | `src/auth/session.ts:88` | `parseExpiry` молча возвращает 0 при неправильном вводе |

73 

74Каждый результат также появляется как аннотация на вкладке **Files changed**, отмеченный непосредственно на соответствующих строках diff. Важные результаты отображаются с красным маркером, nits с жёлтым предупреждением, а уже существующие ошибки с серым уведомлением. Аннотации и таблица серьёзности записываются в проверку независимо от встроенных комментариев проверки, поэтому они остаются доступными, даже если GitHub отклонит встроенный комментарий на строке, которая переместилась.

75 

76Проверка всегда завершается с нейтральным выводом, поэтому она никогда не блокирует слияние через правила защиты ветки. Если вы хотите заблокировать слияния на основе результатов Code Review, прочитайте разбор серьёзности из вывода проверки в вашем собственном CI. Последняя строка текста Details — это машиночитаемый комментарий, который ваш рабочий процесс может разобрать с помощью `gh` и jq. Чтобы найти ID проверки, выведите список проверок коммита с помощью `gh api repos/OWNER/REPO/commits/<commit-sha>/check-runs --jq '.check_runs[] | {id, name}'` и возьмите `id` запуска `Claude Code Review`. Замените `OWNER`, `REPO` и `CHECK_RUN_ID` на владельца вашего репозитория, имя репозитория и этот ID:

77 

78```bash theme={null}

79gh api repos/OWNER/REPO/check-runs/CHECK_RUN_ID \

80 --jq '.output.text | split("bughunter-severity: ")[1] | split(" -->")[0] | fromjson'

81```

82 

83Это возвращает объект JSON с подсчётом по степени серьёзности, например `{"normal": 2, "nit": 1, "pre_existing": 0}`. Ключ `normal` содержит количество результатов Important; ненулевое значение означает, что Claude обнаружил по крайней мере одну ошибку, которую стоит исправить перед слиянием.

84 

85<h3 id="what-code-review-checks">

86 Что проверяет Code Review

87</h3>

88 

89По умолчанию Code Review сосредоточен на корректности: ошибки, которые нарушат production, а не на предпочтениях форматирования или отсутствии покрытия тестами. Вы можете расширить то, что он проверяет, [добавив файлы руководства](#customize-reviews) в ваш репозиторий.

90 

91<h2 id="set-up-code-review">

92 Настройка Code Review

93</h2>

94 

95Администратор включает Code Review один раз для организации и выбирает, какие репозитории включить.

96 

97<Steps>

98 <Step title="Откройте параметры администратора Claude Code">

99 Перейдите на [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code) и найдите раздел Code Review. Вам нужна роль Owner или Primary Owner в вашей организации Claude и разрешение на установку GitHub Apps в вашей организации GitHub.

100 </Step>

101 

102 <Step title="Начните настройку">

103 Нажмите **Setup**. Это начинает процесс установки GitHub App.

104 </Step>

105 

106 <Step title="Установите Claude GitHub App">

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

108 

109 Для проверки pull-запроса Claude читает содержимое вашего репозитория через доступ на чтение приложения и публикует комментарии и [check run](#check-run-output) через его доступ на запись к pull-запросам и проверкам. Во время установки вы предоставляете более широкий набор разрешений, используемый другими функциями Claude, такими как [GitHub Actions](/docs/ru/github-actions); см. [GitHub App permissions](/docs/ru/github-actions#github-app-permissions) для полного списка.

110 </Step>

111 

112 <Step title="Выберите репозитории">

113 Выберите, какие репозитории включить для Code Review. Если вы не видите репозиторий, убедитесь, что вы дали Claude GitHub App доступ к нему во время установки. Вы можете добавить больше репозиториев позже.

114 </Step>

115 

116 <Step title="Установите триггеры проверки для каждого репо">

117 После завершения настройки раздел Code Review показывает ваши репозитории в таблице. Для каждого репозитория используйте раскрывающееся меню **Review Behavior**, чтобы выбрать, когда запускаются проверки:

118 

119 * **Once after PR creation**: проверка запускается один раз при открытии PR или отметке готовности к проверке

120 * **After every push**: проверка запускается при каждом push в ветку PR, выявляя новые проблемы по мере развития PR и автоматически разрешая потоки при исправлении помеченных проблем

121 * **Manual**: открытие или push в PR не запускает проверку; прокомментируйте [`@claude review`](#manually-trigger-reviews), чтобы запросить проверку, или `@claude review always`, чтобы также подписать PR на проверки при последующих push

122 

123 Независимо от выбранного варианта, Claude проверяет [pull-запрос из форка](#review-pull-requests-from-forks) только когда кто-то прокомментирует `@claude review` на нем.

124 

125 Проверка при каждом push запускает наибольшее количество проверок и стоит дороже всего. Ручной режим полезен для репозиториев с высокой активностью, где вы хотите выбрать конкретные PR для проверки, или чтобы начать проверку ваших PR только после того, как они будут готовы.

126 </Step>

127</Steps>

128 

129Таблица репозиториев также показывает среднюю стоимость проверки для каждого репо на основе недавней активности. Используйте меню действий строки, чтобы включить или отключить Code Review для каждого репозитория или полностью удалить репозиторий.

130 

131Чтобы проверить настройку, откройте тестовый PR. Если вы выбрали автоматический триггер, проверка с именем **Claude Code Review** появится в течение нескольких минут. Если вы выбрали Manual, прокомментируйте `@claude review` на PR, чтобы запустить первую проверку. Если проверка не появляется, подтвердите, что репозиторий указан в параметрах администратора и Claude GitHub App имеет доступ к нему.

132 10 

133<h2 id="manually-trigger-reviews">11Результаты поступают в виде встроенных комментариев на соответствующих строках, ранжированные по [степени серьёзности](/docs/ru/code-review-pull-requests#severity-levels), вместе со сводкой и check run на pull request. Ревью никогда не одобряет и не блокирует pull request, поэтому решение о слиянии остаётся за вашей командой.

134 Ручной запуск проверок

135</h2>

136 

137Команды комментариев запускают проверку по требованию. Они работают независимо от настроенного триггера репозитория, поэтому вы можете использовать их, чтобы выбрать конкретные PR для проверки в ручном режиме или получить немедленную повторную проверку в других режимах.

138 12 

139| Команда | Что она делает |13<img src="https://mintcdn.com/claude-code/gLJVaPQEgKC8ZyUD/images/code-review-pipeline.svg?fit=max&auto=format&n=gLJVaPQEgKC8ZyUD&q=85&s=0351c96df9efa3105172eb00a672f130" className="dark:hidden" alt="Схема ревью в четыре этапа. Pull request на GitHub передаётся нескольким агентам, которые параллельно ведут поиск на инфраструктуре Anthropic. Этап верификации отбрасывает ложные срабатывания, оставшиеся результаты дедуплицируются и ранжируются по степени серьёзности, а ревью публикует встроенные комментарии, сводку и check run обратно на GitHub." width="760" height="300" data-path="images/code-review-pipeline.svg" />

140| :- | :- |

141| `@claude review` | Запускает одну проверку без подписки PR на будущие push |

142| `@claude review always` | Запускает проверку и подписывает PR на проверки, запускаемые при push, в дальнейшем |

143| `@claude review once` | То же самое, что `@claude review`: запускает одну проверку без подписки |

144 14 

145Используйте `@claude review always`, когда вы хотите, чтобы каждый последующий push на PR запускал свежую проверку, например, на высокоприоритетном PR в репозитории, установленном в ручной режим. Поскольку простая команда не подписывает PR, вы можете запросить одноразовое второе мнение без изменения того, запускают ли последующие push проверки.15<img src="https://mintcdn.com/claude-code/gLJVaPQEgKC8ZyUD/images/code-review-pipeline-dark.svg?fit=max&auto=format&n=gLJVaPQEgKC8ZyUD&q=85&s=9cf26bde98f4e999d0d9ff5bf5bdff40" className="hidden dark:block" alt="Схема ревью в четыре этапа. Pull request на GitHub передаётся нескольким агентам, которые параллельно ведут поиск на инфраструктуре Anthropic. Этап верификации отбрасывает ложные срабатывания, оставшиеся результаты дедуплицируются и ранжируются по степени серьёзности, а ревью публикует встроенные комментарии, сводку и check run обратно на GitHub." width="760" height="300" data-path="images/code-review-pipeline-dark.svg" />

146 16 

147<Note>17<Note>

148 До обновления в июле 2026 года `@claude review` подписывал PR на проверки, запускаемые при push. Если вы полагались на такое поведение, используйте вместо этого `@claude review always`. `@claude review once` по-прежнему работает и ведёт себя так же, как простая команда.18 Code Review использует ИИ для ревью кода и может пропустить ошибки, уязвимости безопасности или другие проблемы. Ревью без результатов не означает, что ваш код не содержит ошибок или безопасен.

149</Note>19</Note>

150 20 

151Для запуска проверки любой из этих команд:21<span id="review-a-diff-locally" />

152 

153* Опубликуйте её как комментарий верхнего уровня PR, а не встроенный комментарий на строке diff

154* Поместите команду в начало комментария, с `once` или `always` на той же строке, что и остальная часть команды

155* У вас должен быть доступ на запись, обслуживание или администратор к репозиторию

156* PR должен быть открыт

157 

158В отличие от автоматических триггеров, ручные триггеры запускаются на черновиках PR, так как явный запрос сигнализирует, что вы хотите проверку сейчас независимо от статуса черновика.

159 

160Если проверка уже запущена на этом PR, запрос ставится в очередь до завершения текущей проверки. Вы можете отслеживать прогресс через проверку на PR.

161 

162<h3 id="review-pull-requests-from-forks">

163 Проверка pull request из форков

164</h3>

165 

166Claude не проверяет pull request из форка автоматически, независимо от настройки **Review Behavior** репозитория. Чтобы запустить его, прокомментируйте `@claude review` на pull request. [Требования для команд комментариев](#manually-trigger-reviews) по-прежнему применяются, и доступ на запись, который вам нужен, — это доступ к базовому репозиторию, а не к форку.

167 22 

168Чтобы получить ещё одну проверку pull request из форка, опубликуйте новый комментарий `@claude review`. `@claude review always` также работает, но не подписывает pull request на проверки при последующих push. Ничто, кроме команды комментария, не запускает проверку на pull request из форка:23Чтобы включить Code Review, пользователь с ролью Owner в вашей организации Claude выполняет инструкции из раздела [Настройка Code Review](/docs/ru/code-review-setup). Claude также может проводить ревью кода без этого сервиса. Запустите [`/code-review`](/docs/ru/code-review-local) в своей сессии Claude Code на любом плане или [сравните все варианты](#compare-ways-to-get-a-review).

169 24 

170* Нажатие **Re-run** на проверке не запускает проверку25<h2 id="availability">

171* Push новых коммитов не запускает проверку, даже в репозитории, установленном на **After every push**26 Доступность

172 

173<h2 id="customize-reviews">

174 Настройка рецензирования

175</h2>27</h2>

176 28 

177Code Review читает два файла из вашего репозитория, чтобы направлять то, что он отмечает. Они различаются по тому, насколько сильно они влияют на рецензирование:29Прежде чем настраивать Code Review, убедитесь, что ваша организация соответствует требованиям:

178 

179* **`CLAUDE.md`**: общие инструкции проекта, которые Claude Code использует для всех задач, а не только для рецензирования. Code Review читает его как контекст проекта и отмечает вновь введённые нарушения как замечания.

180* **`REVIEW.md`**: инструкции только для рецензирования, передаваемые агентам, которые находят и проверяют результаты, и консультируемые агентами, которые ранжируют и сообщают о них. Используйте его, чтобы указать, что ваша команда хочет отметить, с какой серьёзностью и как сообщаются результаты.

181 

182<h3 id="claude-md">

183 CLAUDE.md

184</h3>

185 

186Code Review читает файлы `CLAUDE.md` вашего репозитория и рассматривает вновь введённые нарушения как результаты [уровня замечания](#severity-levels). Это работает двусторонне: если ваш PR изменяет код таким образом, что утверждение в `CLAUDE.md` становится устаревшим, Claude отмечает, что документация также нуждается в обновлении.

187 

188Claude читает файлы `CLAUDE.md` на каждом уровне иерархии вашего каталога, поэтому правила в `CLAUDE.md` подкаталога применяются только к файлам под этим путём. Дополнительную информацию о том, как работает `CLAUDE.md`, см. в [документации по памяти](/docs/ru/memory).

189 30 

190Для рецензирования, специфичного для рецензирования, которое вы не хотите применять к общим сеансам Claude Code, используйте вместо этого [`REVIEW.md`](#review-md).31* **Планы**: [Team и Enterprise](/docs/ru/feature-availability)

191 32* **Хостинги кода**: репозитории, размещённые на GitHub, включая [GitHub Enterprise Server](/docs/ru/github-enterprise-server) и GitHub Enterprise Cloud с резидентностью данных. Для резидентности данных попросите пользователя с ролью Owner выполнить [настройку администратора GitHub Enterprise Server](/docs/ru/github-enterprise-server#admin-setup) и указать имя хоста `ghe.com` вашего предприятия.

192<h3 id="review-md">33* **Хранение данных**: Code Review недоступен для организаций с включённым [Zero Data Retention](/docs/ru/zero-data-retention) или с применённой [конфигурацией HIPAA](/docs/ru/hipaa-setup), и на него не распространяется Business Associate Agreement (BAA) Anthropic.

193 REVIEW\.md34* **Ключи шифрования**: Code Review пока недоступен для организаций, использующих ключи шифрования, управляемые клиентом (CMEK).

194</h3>35* **Облачные провайдеры**: вам нужна организация Claude на одном из этих планов, даже если ваши разработчики используют Claude Code через Amazon Bedrock, Google Cloud's Agent Platform или Microsoft Foundry

195 36 

196`REVIEW.md` — это файл в корне вашего репозитория, который адаптирует Code Review к вашему репо. Агенты в конвейере рецензирования, которые находят и проверяют результаты, получают его содержимое как инструкции рецензирования вашего репозитория, наряду с рекомендациями по рецензированию Code Review по умолчанию, и агенты, которые ранжируют и сообщают о результатах, консультируются с ним перед определением серьёзности и написанием рецензирования.37<h2 id="set-up-and-use-code-review">

197 38 Настройка и использование Code Review

198Поместите правила, которые вы хотите применять, непосредственно в `REVIEW.md`.

199 

200<h4 id="what-you-can-tune">

201 Что вы можете настроить

202</h4>

203 

204`REVIEW.md` — это свободный markdown, поэтому всё, что вы можете выразить как инструкцию рецензирования, находится в области действия. Приведённые ниже шаблоны оказывают наибольшее влияние на практике.

205 

206**Серьёзность**: переопределите, что означает 🔴 Important для вашего репо. Калибровка по умолчанию ориентирована на производственный код; репозиторий документации, репозиторий конфигурации или прототип могут захотеть гораздо более узкое определение. Явно укажите, какие классы результатов являются Important, а какие — максимум Nit. Вы также можете повысить уровень в другом направлении, например, рассматривая любое нарушение `CLAUDE.md` как Important, а не как замечание по умолчанию.

207 

208**Объём замечаний**: ограничьте количество комментариев 🟡 Nit, которые одно рецензирование публикует. Текст и файлы конфигурации можно полировать бесконечно. Ограничение типа «сообщайте максимум пять замечаний, упомяните остальные как количество в сводке» делает рецензирование действенным.

209 

210**Правила пропуска**: перечислите пути, шаблоны ветвей и категории результатов, где Claude не должен публиковать результаты. Обычные кандидаты — это сгенерированный код, файлы блокировки, поставляемые зависимости и ветви, созданные машиной, наряду со всем, что ваш CI уже применяет, например линтинг или проверка орфографии. Для путей, которые требуют некоторого рецензирования, но не полной проверки, установите более высокую планку вместо полного пропуска: «в `scripts/` сообщайте только если почти уверены и серьёзно».

211 

212**Проверки, специфичные для репо**: добавьте правила, которые вы хотите отметить в каждом PR, например «новые маршруты API должны иметь интеграционный тест». Поскольку `REVIEW.md` достигает каждого агента поиска и проверки результатов напрямую, эти правила применяются более надёжно, чем те же правила в длинном `CLAUDE.md`.

213 

214**Планка проверки**: требуйте доказательства перед публикацией класса результатов. Например, «утверждения о поведении нуждаются в цитировании `file:line` в исходном коде, а не в выводе из именования» снижает ложные срабатывания, которые в противном случае обошлись бы автору в дополнительный раунд.

215 

216**Сходимость повторного рецензирования**: скажите Claude, как себя вести, когда PR уже был рецензирован. Правило типа «после первого рецензирования подавляйте новые замечания и публикуйте только результаты Important» предотвращает то, что однострочное исправление достигает седьмого раунда только из-за стиля.

217 

218**Форма сводки**: попросите, чтобы тело рецензирования начиналось с однострочного подсчёта, например `2 factual, 4 style`, и начиналось с «no factual issues», когда это имеет место. Автор хочет знать форму работы перед деталями.

219 

220<h4 id="example">

221 Пример

222</h4>

223 

224Этот `REVIEW.md` пересчитывает серьёзность для бэкенд-сервиса, ограничивает замечания, пропускает сгенерированные файлы и добавляет проверки, специфичные для репо.

225 

226```markdown theme={null}

227# Review instructions

228 

229## What Important means here

230 

231Reserve Important for findings that would break behavior, leak data,

232or block a rollback: incorrect logic, unscoped database queries, PII

233in logs or error messages, and migrations that aren't backward

234compatible. Style, naming, and refactoring suggestions are Nit at

235most.

236 

237## Cap the nits

238 

239Report at most five Nits per review. If you found more, say "plus N

240similar items" in the summary instead of posting them inline. If

241everything you found is a Nit, lead the summary with "No blocking

242issues."

243 

244## Do not report

245 

246- Anything CI already enforces: lint, formatting, type errors

247- Generated files under `src/gen/` and any `*.lock` file

248- Test-only code that intentionally violates production rules

249 

250## Always check

251 

252- New API routes have an integration test

253- Log lines don't include email addresses, user IDs, or request bodies

254- Database queries are scoped to the caller's tenant

255```

256 

257<h4 id="keep-it-focused">

258 Держите это сосредоточенным

259</h4>

260 

261Длина имеет цену: длинный `REVIEW.md` разбавляет правила, которые имеют наибольшее значение. Ограничьте его инструкциями, которые изменяют поведение рецензирования, и оставьте общий контекст проекта в `CLAUDE.md`.

262 

263<h2 id="view-usage">

264 Просмотр использования

265</h2>39</h2>

266 40 

267Перейдите на [claude.ai/analytics/code-review](https://claude.ai/analytics/code-review), чтобы увидеть активность Code Review во всей вашей организации. Панель показывает:41<span id="set-up-code-review" />

268 42 

269| Раздел | Что он показывает |43<span id="pricing" />

270| :- | :- |

271| PRs reviewed | Ежедневное количество проверенных pull-запросов за выбранный период времени |

272| Code Review cost | Расходы на Code Review с начала текущего месяца |

273| Feedback | Количество комментариев проверки, которые были автоматически разрешены, потому что разработчик решил проблему |

274| Repository breakdown | Количество проверенных PR, разрешённых комментариев и запусков ревью для каждого репозитория, с оценочной стоимостью и представлением по каждому PR |

275 44 

276Карточка Code Review cost показывает сумму, только когда выбран текущий месяц. Данные о стоимости в аналитике могут отличаться от вашего счёта. Стоимость в Repository breakdown оценивается по прейскурантной цене, без учёта скидок или кредитов, и охватывает только ревью, которые Claude опубликовал в pull request. Для точных по счёту расходов обратитесь к вашему счёту Anthropic.45<span id="manually-trigger-reviews" />

277 46 

278<h2 id="pricing">47<span id="customize-reviews" />

279 Ценообразование

280</h2>

281 

282Code Review выставляется счет на основе использования токенов. Каждый обзор в среднем стоит \$15-25, масштабируясь в зависимости от размера PR, сложности кодовой базы и количества проблем, требующих проверки. Использование Code Review выставляется счет отдельно через [кредиты использования](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) и не учитывается в рамках включенного использования вашего плана.

283 

284Выбранный вами триггер обзора влияет на общую стоимость:

285 

286* **После создания PR**: запускается один раз за PR

287* **После каждого push**: запускается при каждом push, умножая стоимость на количество push'ей

288* **Вручную**: нет обзоров при открытии или push, поэтому стоимость начисляется только за обзоры, которые кто-то запрашивает

289 48 

290В режиме "После создания PR" или "Вручную" комментарий `@claude review always` [переводит PR на обзоры, запускаемые при push](#manually-trigger-reviews), поэтому дополнительная стоимость начисляется за каждый push после этого комментария. В режиме "После каждого push" push'и уже запускают обзоры, поэтому подписка не изменяет стоимость за push. Комментарий `@claude review` запускает один обзор без подписки на будущие push'и. Claude проверяет [pull request из форка](#review-pull-requests-from-forks) только когда кто-то комментирует `@claude review`, поэтому pull request из форка никогда не начисляет стоимость за push в любом режиме.49<span id="troubleshooting" />

291 50 

292Затраты отображаются в вашем счете Anthropic независимо от того, использует ли ваша организация Amazon Bedrock или Google Cloud's Agent Platform для других функций Claude Code. Чтобы установить ежемесячный лимит расходов для Code Review, перейдите на [claude.ai/admin-settings/usage](https://claude.ai/admin-settings/usage) и настройте лимит для сервиса Claude Code Review.51Выберите страницу в зависимости от того, что вам нужно сделать:

293 52 

294Для отслеживания расходов используйте [панель аналитики](#view-usage).53<CardGroup cols={2}>

54 <Card title="Настройка Code Review" icon="toggle-on" href="/docs/ru/code-review-setup">

55 Проверьте требования, установите Claude GitHub App и выберите репозитории, уровень ревью и момент запуска ревью

56 </Card>

295 57 

296<h2 id="troubleshooting">58 <Card title="Кастомизация Code Review" icon="sliders" href="/docs/ru/code-review-customize">

297 Устранение неполадок59 Настройте, что помечается, с помощью файлов `REVIEW.md` и `CLAUDE.md` в вашем репозитории

298</h2>60 </Card>

299 

300Запуски проверок выполняются по принципу best-effort, и сбой запуска никогда не блокирует ваш PR. Code Review автоматически повторяет некоторые прерванные проверки. Этот раздел охватывает, как запустить проверку снова самостоятельно и где искать, когда проверка сообщает о проблемах, которые вы не можете найти.

301 61 

302<h3 id="retrigger-a-failed-or-timed-out-review">62 <Card title="Чтение и запрос ревью на pull request" icon="code-pull-request" href="/docs/ru/code-review-pull-requests">

303 Повторный запуск сбойной или истёкшей по времени проверки63 Читайте результаты и их степени серьёзности и запрашивайте повторное ревью с помощью комментария

304</h3>64 </Card>

305 65 

306Когда проверка сбивается или превышает лимит времени, проверка завершается с названием, таким как **Code review failed** или **Code review timed out**. Вывод по-прежнему нейтральный, поэтому ничто не блокирует ваше слияние. Если сводка проверки не говорит, что новая проверка коммита была автоматически поставлена в очередь, запустите проверку снова самостоятельно.66 <Card title="Устранение неполадок Code Review" icon="wrench" href="/docs/ru/code-review-troubleshooting">

67 Исправьте ревью, которое не запустилось, завершилось сбоем или было пропущено из-за бюджета

68 </Card>

307 69 

308Чтобы запустить проверку снова, прокомментируйте `@claude review` на PR. Это запускает свежую проверку без подписки PR на будущие push. Если PR не [из форка](#review-pull-requests-from-forks), вы можете вместо этого нажать **Re-run** на проверке **Claude Code Review** на вкладке Checks в GitHub. Повторный запуск также запускает свежую проверку без подписки PR.70 <Card title="Стоимость и использование Code Review" icon="chart-line" href="/docs/ru/code-review-costs">

71 Узнайте, как тарифицируются ревью, оцените расходы, установите ежемесячный лимит расходов и отслеживайте активность ревью

72 </Card>

73</CardGroup>

309 74 

310<h3 id="review-didn’t-run-and-the-pr-shows-a-budget-message">75<h2 id="how-reviews-work">

311 Проверка не запустилась и PR показывает сообщение о бюджете76 Как работают ревью

312</h3>

313 

314Когда достигнут ежемесячный лимит расходов вашей организации на Code Review или исчерпан баланс кредитов использования, Code Review пропускает проверку и публикует один комментарий на PR. И комментарий, и карточка проверки указывают причину и содержат ссылку на страницу администрирования, где администратор может это исправить:

315 

316* **Достигнут лимит расходов**: проверки возобновляются в начале следующего периода биллинга или сразу после того, как администратор повысит лимит на [claude.ai/admin-settings/usage](https://claude.ai/admin-settings/usage)

317* **Кредиты использования исчерпаны**: проверки возобновляются, как только администратор добавит [кредиты использования](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) на [claude.ai/admin-settings/usage](https://claude.ai/admin-settings/usage)

318 

319<h3 id="find-issues-that-aren’t-showing-as-inline-comments">

320 Найти проблемы, которые не отображаются как встроенные комментарии

321</h3>

322 

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

324 

325* **Check run Details**: нажмите **Details** рядом с проверкой Claude Code Review на вкладке Checks. Таблица серьёзности перечисляет каждый результат с его файлом, строкой и сводкой независимо от того, был ли принят встроенный комментарий.

326* **Files changed annotations**: откройте вкладку **Files changed** на PR. Результаты отображаются как аннотации, прикреплённые непосредственно к строкам diff, отдельно от комментариев проверки.

327* **Review body**: если вы push в PR во время выполнения проверки, некоторые результаты могут ссылаться на строки, которые больше не существуют в текущем diff. Они появляются под заголовком **Additional findings** в тексте тела проверки, а не как встроенные комментарии.

328 

329<h2 id="review-a-diff-locally">

330 Проверка diff локально

331</h2>77</h2>

332 78 

333Команда [`/code-review`](/docs/ru/commands) проверяет diff в вашем терминале без установки GitHub App. Она сообщает об ошибках корректности. В зависимости от модели и уровня усилий проверка также охватывает улучшения, связанные с переиспользованием, упрощением и эффективностью.79<span id="what-code-review-checks" />

334 80 

335`/review` является псевдонимом `/code-review`; до версии v2.1.223 это была отдельная команда, которая выполняла однопроходную проверку только для чтения pull request GitHub.81По умолчанию Code Review сосредоточен на корректности: ошибках, которые нарушат работу production, а не на предпочтениях форматирования или отсутствии покрытия тестами. Чтобы изменить то, что он помечает, [добавьте файлы с руководствами](/docs/ru/code-review-customize) в ваш репозиторий.

336 82 

337<Steps>83Ревью выполняется на инфраструктуре Anthropic в четыре этапа:

338 <Step title="Запустите /code-review">

339 Из сеанса, в котором вы работаете, выполните команду:

340 84 

341 ```text theme={null}851. **Поиск**: несколько агентов параллельно изучают diff и окружающий код.

342 /code-review862. **Верификация**: этап верификации сверяет кандидатов в результаты с кодом и отфильтровывает ложные срабатывания.

343 ```873. **Ранжирование**: оставшиеся результаты дедуплицируются и ранжируются по степени серьёзности.

884. **Публикация**: ревью публикует свои результаты на pull request.

344 89 

345 Она проверяет коммиты вашей ветки, опережающие её upstream, плюс любые незафиксированные изменения, поэтому ей нужна работа на ветке или в рабочем дереве, чтобы было что сообщить. Для проверки чего-либо другого передайте цель: путь к файлу, номер PR, имя ветки или диапазон ссылок, такой как `main...my-feature`.90Каждое ревью оставляет на pull request следующее:

346 91 

347 Вы также можете добавить флаги:92* **Результаты**: встроенные комментарии на соответствующих строках со сводкой в теле ревью

93* **Check run**: с именем **Claude Code Review**, с результатами, перечисленными в его [подробностях](/docs/ru/code-review-pull-requests#check-run-output). Check run не завершается со статусом сбоя.

94* **Если ничего не найдено**: заголовок check run гласит **Code review found no issues**, и Claude публикует такое же короткое сообщение на pull request

348 95 

349 * `--fix`: применяет результаты к вашему рабочему дереву после проверки96Code Review сам выбирает модели Claude, на которых выполняются ревью, и его настройки администратора не предлагают выбора модели. Чтобы сделать ревью более или менее тщательными, измените [уровень ревью](#review-levels).

350 * `--comment`: публикует результаты в pull request GitHub в виде встроенных комментариев или в merge request GitLab в виде одной заметки

351 * `--post`: при `ultra` облачной проверке pull request `github.com` предварительно выбирает публикацию завершённых результатов в PR в диалоговом окне запуска; см. [Публикация результатов в pull request](/docs/ru/ultrareview#post-findings-to-the-pull-request). Требуется Claude Code v2.1.227 или позже

352 * `--max-findings <n>`, `--max-findings all` или `--max-findings default`: сообщает до `n` результатов или все результаты с `all` вместо обычного ограничения проверки. Последующие проверки повторно используют введённое вами значение, пока вы не передадите `--max-findings default`. Требуется Claude Code v2.1.288 или позже

353 97 

354 Когда вы передаёте `--comment` для merge request GitLab, Claude Code публикует результаты через CLI `glab` GitLab. Требуется Claude Code v2.1.257 или позже. Когда `glab` не установлен, Claude выводит результаты в терминал вместо этого.98После того как пользователь с ролью Owner включит Code Review, у каждого репозитория появляется настройка [момента запуска ревью](/docs/ru/code-review-setup#set-when-reviews-run): один раз при открытии pull request, после каждого push или только по запросу. Независимо от выбранного варианта, любой пользователь с доступом на запись к репозиторию может оставить комментарий `@claude review` на pull request, чтобы [запустить ревью](/docs/ru/code-review-pull-requests#comment-commands).

355 99 

356 Передайте merge request как его URL или ссылку `!123`. Claude Code рассматривает простой номер или имя ветки как merge request только когда checkout's origin находится на `gitlab.com`. На самоуправляемом экземпляре GitLab передайте URL или форму `!123`.100<h3 id="review-levels">

357 </Step>101 Уровни ревью

358 

359 <Step title="Продолжайте работать">

360 Проверка выполняется как фоновый [subagent](/docs/ru/sub-agents) с собственным окном контекста, поэтому она не заполняет вашу беседу. Результаты поступают в вашу беседу, когда проверка завершается.

361 </Step>

362 

363 <Step title="Действуйте на основе результатов">

364 Попросите Claude исправить то, что нашла проверка. Если вы передали `--fix` или `--comment`, проверка уже применила или опубликовала свои результаты.

365 </Step>

366</Steps>

367 

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

369 

370* В сеансе терминала, где `/code-review` запускает проверку как [forked subagent](/docs/ru/skills#run-skills-in-a-subagent)

371* В запуске `-p` с текстовым или JSON выводом

372 

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

374 

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

376 

377<h3 id="what-the-review-reads-and-edits">

378 Что проверка читает и редактирует

379</h3>102</h3>

380 103 

381Проверка следует вашему `CLAUDE.md` как любой сеанс Claude Code, но она не читает [`REVIEW.md`](#review-md). Фоновая проверка применяет свои правки `--fix` вне [checkpoints](/docs/ru/checkpointing#subagent-edits-not-restored) вашего сеанса, поэтому `/rewind` их не отменяет; используйте git для их отката. Когда проверка [выполняется на переднем плане](#run-in-the-foreground), она редактирует ваше рабочее дерево во время вашего собственного хода, поэтому `/rewind` восстанавливает её правки как обычно.104Уровень ревью определяет, насколько тщательным будет каждое ревью, и более тщательное ревью стоит дороже:

382 105 

383<h3 id="tune-effort-and-arguments">106* **Quick**: более лёгкий проход. Самый быстрый уровень с наименьшей стоимостью.

384 Настройте усилие и аргументы107* **Standard**: сбалансированные глубина, скорость и стоимость. Уровень по умолчанию.

385</h3>108* **Deep**: самый тщательный проход. Занимает больше всего времени и стоит дороже всего.

386 109 

387Передайте [уровень усилий](/docs/ru/model-config#adjust-effort-level) для компромисса между охватом и уверенностью. На `low` проверка сообщает о результатах, в которых она наиболее уверена, поэтому вы видите меньше ложных срабатываний. От `medium` до `max` проверка расширяет охват.110Пользователь с ролью Owner [выбирает один уровень для организации](/docs/ru/code-review-setup#set-the-default-review-level) и может задать отдельному репозиторию собственный уровень, например Quick для рутинной кодовой базы и Deep для критически важной. О том, что ещё влияет на стоимость каждого ревью, см. [Стоимость и использование Code Review](/docs/ru/code-review-costs).

388 111 

389Когда вы не вводите уровень, проверка повторно использует последний уровень от `low` до `max`, который вы вводили, даже в более раннем сеансе, и Claude Code показывает уведомление, такое как `Reusing high effort, the level you typed last time`. Введите уровень, например `/code-review high`, чтобы изменить то, что позже повторно используют; уровень, который вы передаёте в неинтерактивном запуске `-p`, его не обновляет. `ultra` ни обновляет, ни использует запомненный уровень. Если вы никогда не вводили уровень, проверка использует текущее усилие сеанса. До версии v2.1.223 `/code-review` без уровня всегда использовал текущее усилие сеанса.112<h3 id="what-a-review-can-access">

390 113 К чему у ревью есть доступ

391После уровня усилий и флагов Claude Code читает остаток строки одним из двух способов:

392 

393* **Без `ultra`**: всё оставшееся является целью проверки, даже когда оно начинается с другого имени команды. `/code-review /fix-issue 123` проверяет с `/fix-issue 123` как текст цели вместо загрузки `/fix-issue` как второго [stacked skill](/docs/ru/skills#pass-arguments-to-skills). До версии v2.1.218 команда, сложенная после `/code-review`, расширялась как собственный skill.

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

395 

396<h3 id="run-in-the-foreground">

397 Запустите на переднем плане

398</h3>114</h3>

399 115 

400Проверка выполняется в фоне по умолчанию; до версии v2.1.218 она выполнялась внутри вашей беседы. Она выполняется на переднем плане вместо этого в случаях, подобных этим:116Ревью получает доступ к вашему репозиторию через Claude GitHub App, которое пользователь с ролью Owner [устанавливает во время настройки](/docs/ru/code-review-setup#turn-on-code-review):

401 117 

402* Вы запускаете `/code-review` снова, пока более ранняя проверка всё ещё выполняется118* **Где оно выполняется**: на инфраструктуре Anthropic, в управляемом окружении. Ревью не выполняются в [self-hosted окружениях](/docs/ru/self-hosted-environments).

403* Вы запускаете её в неинтерактивном режиме, с флагом `-p` или через Agent SDK; Claude Code дожидается проверки и включает результаты в ответ, кроме `ultra`, который [не ожидает завершения облачной проверки](/docs/ru/ultrareview#run-ultrareview-non-interactively)119* **Что оно читает и записывает**: внутри ревью доступ к вашему репозиторию только для чтения, и ревью не отправляет коммиты. На pull request оно публикует комментарии и [check run](/docs/ru/code-review-pull-requests#check-run-output), разрешает собственные более ранние ветки комментариев и может отреагировать на команду в комментарии с помощью 👀. Само приложение обладает [более широким набором разрешений](/docs/ru/github-actions#github-app-permissions), который используется и другими функциями Claude.

404* Вы устанавливаете [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS`](/docs/ru/env-vars) на `1`, что также отключает все остальные функции фоновых задач120* **Как оно изучает ваш код**: ревью работает, читая diff и окружающий код, без сборки или запуска вашего кода.

405 121 

406<h3 id="let-claude-start-the-review">122<h3 id="who-controls-a-review">

407 Позвольте Claude начать проверку123 Кто управляет ревью

408</h3>124</h3>

409 125 

410Claude может запустить `/code-review` самостоятельно. Попросите его проверить ваши изменения на простом языке, и он может запустить skill без того, чтобы вы вводили команду, и [scheduled task](/docs/ru/scheduled-tasks) с `/code-review` как его подсказкой запускает проверку.126* **Кто может его запустить**: там, где ревью запускаются автоматически, открытие pull request или push в него запускает ревью, [кроме черновиков и форков](/docs/ru/code-review-pull-requests#review-drafts-and-pull-requests-from-forks). [Команда в комментарии](/docs/ru/code-review-pull-requests#comment-commands) запускает ревью, только если она исходит от человека с доступом на запись к репозиторию.

411 127* **Каким инструкциям оно следует**: `REVIEW.md` из базовой ветки или ветки по умолчанию и [никогда не из изменений самого pull request](/docs/ru/code-review-customize#which-branch-review-md-is-read-from).

412Запланированная задача никогда не запускает [облачную проверку](#escalate-to-ultrareview), поэтому планируйте `/code-review` без аргумента `ultra`.

413 128 

414Чтобы остановить Claude и запланированные задачи от запуска проверки, сохраняя `/code-review` доступным для вас, добавьте запись [`skillOverrides`](/docs/ru/skills#override-skill-visibility-from-settings) в [файл настроек](/docs/ru/settings#where-settings-live), такой как `~/.claude/settings.json`:129<h2 id="compare-ways-to-get-a-review">

415 130 Сравнение способов получить ревью

416```json theme={null}131</h2>

417{

418 "skillOverrides": {

419 "code-review": "user-invocable-only"

420 }

421}

422```

423 

424До версии v2.1.246 Claude запускал `/code-review` самостоятельно только там, где флаг функции, полученный от Anthropic, его включал. В [сеансах, которые не получают флаги функций](/docs/ru/env-vars#features-that-need-feature-flag-fetching), `/code-review` запускался только когда вы его вводили, и запланированный `/code-review` поступал Claude как простой текст.

425 

426<h3 id="escalate-to-ultrareview">

427 Перейти на ultrareview

428</h3>

429 

430`/code-review ultra --fix` запускает более глубокую [ultrareview](/docs/ru/ultrareview) в облаке, затем применяет её результаты к вашему рабочему дереву, когда они возвращаются в ваш сеанс.

431 

432Ultrareview использует свою собственную область: вашу текущую ветку против ветки по умолчанию репозитория, плюс незафиксированные и поставленные на сцену изменения в рабочем дереве. Для незафиксированных изменений файлов, названных как учётные данные или ключи, такие как `.env` и `*.tfvars` файлы, Claude Code следует правилам для [загрузки локального репозитория в облачный сеанс](/docs/ru/claude-code-on-the-web#send-local-repositories-without-github). Передайте имя ветки, такое как `/code-review ultra develop`, для сравнения с другой базой.

433 

434Когда целью является pull request `github.com`, вы можете попросить Claude [опубликовать завершённые результаты в PR](/docs/ru/ultrareview#post-findings-to-the-pull-request) как комментарий с вашего аккаунта GitHub. Требуется Claude Code v2.1.227 или позже.

435 

436<Note>

437 Ultrareview требует аутентификации с аккаунтом claude.ai и недоступна на Amazon Bedrock, Google Cloud's Agent Platform или Microsoft Foundry, а также для организаций с включённым Zero Data Retention или с применённой [конфигурацией HIPAA](/docs/ru/hipaa-setup). Когда ultrareview недоступна, `/code-review ultra` запускает локальную проверку в вашей сессии вместо этого.

438</Note>

439 132 

440Чтобы запустить облачную проверку из скрипта или задания CI, используйте [подкоманду `claude ultrareview`](/docs/ru/ultrareview#run-ultrareview-non-interactively), которая ожидает результаты и выводит их в stdout.133Чтобы найти доступные вам варианты, сопоставьте столбец **Кто может использовать** с вашим планом и хостингом кода:

441 134 

442Команда называлась `/simplify` до версии v2.1.147, когда она применяла исправления по умолчанию. `/simplify` запускает отдельную проверку только для очистки, которая применяет исправления без поиска ошибок. Если вы использовали скрипт `/simplify` для поиска ошибок, переключитесь на `/code-review --fix`.135| Вариант | Что запускает ревью | Где выполняется | Кто может использовать |

136| :- | :- | :- | :- |

137| [Code Review](#how-reviews-work) | Активность в pull request в соответствии с настройками каждого репозитория или комментарий `@claude review` | Инфраструктура Anthropic | Организации на плане Team или Enterprise с репозиториями GitHub, после того как пользователь с ролью Owner его включит |

138| [`/code-review`](/docs/ru/code-review-local) | Вы запускаете команду на своей ветке | Ваша сессия Claude Code | Кто угодно, на любом плане |

139| [Ultrareview](/docs/ru/ultrareview) | Вы запускаете его из Claude Code | Облачная песочница | Требуется вход с аккаунтом claude.ai. О том, где он недоступен, см. [Ultrareview](/docs/ru/ultrareview) |

140| Claude в вашем собственном CI, с [GitHub Actions](/docs/ru/github-actions) или [GitLab CI/CD](/docs/ru/gitlab-ci-cd) | События вашего конвейера, например каждый pull request или merge request | Ваши собственные раннеры CI | Любой, у кого есть API-ключ Claude или учётные данные облачного провайдера, на GitHub или GitLab |

141| Ваш собственный ревьюер в виде [субагента](/docs/ru/sub-agents) или [скилла](/docs/ru/skills) | Вы или Claude вызываете его во время сессии | Там, где вы запускаете Claude Code | Любой, кто его напишет |

443 142 

444<h2 id="related-resources">143<h2 id="related-resources">

445 Связанные ресурсы144 Связанные ресурсы

446</h2>145</h2>

447 146 

448* [Commands](/docs/ru/commands): запустите `/code-review` в локальной сессии Claude Code, чтобы проверить diff перед push147* [GitHub Enterprise Server](/docs/ru/github-enterprise-server): используйте Code Review с self-hosted экземпляром GitHub

449* [GitHub Actions](/docs/ru/github-actions): запустите Claude в ваших собственных рабочих процессах GitHub Actions для пользовательской автоматизации за пределами проверки кода148* [Разрешения GitHub App](/docs/ru/github-actions#github-app-permissions): полный набор разрешений, который запрашивает Claude GitHub App

450* [GitLab CI/CD](/docs/ru/gitlab-ci-cd): самостоятельно размещённая интеграция Claude для конвейеров GitLab

451* [Memory](/docs/ru/memory): как работают файлы `CLAUDE.md` во всём Claude Code

452* [Analytics](/docs/ru/analytics): отслеживайте использование Claude Code за пределами проверки кода

453* [How Anthropic secures its AI-native software development lifecycle](https://claude.com/blog/how-anthropic-secures-its-ai-native-software-development-lifecycle): как автоматизированная проверка встраивается в качестве одного из уровней безопасного процесса разработки Anthropic149* [How Anthropic secures its AI-native software development lifecycle](https://claude.com/blog/how-anthropic-secures-its-ai-native-software-development-lifecycle): как автоматизированная проверка встраивается в качестве одного из уровней безопасного процесса разработки Anthropic

code-review-costs.md +88 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Стоимость и использование Code Review

6 

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

8 

9У [Code Review](/docs/ru/code-review) нет фиксированной цены за одно ревью. Ваши расходы зависят от стоимости каждого ревью и от того, сколько ревью выполняется:

10 

11* **Стоимость каждого ревью**: зависит от [уровня ревью](/docs/ru/code-review-setup#set-the-default-review-level), размера изменения, сложности окружающего кода и количества потенциальных проблем, требующих проверки

12* **Количество ревью**: определяется тем, [как часто выполняются ревью](#how-often-reviews-run) в каждом репозитории

13 

14<h2 id="pricing">

15 Цены

16</h2>

17 

18Code Review тарифицируется по использованию токенов через [кредиты использования](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans), отдельно от использования, включённого в ваш план. Ревью оплачиваются вашей организацией, а не разработчиком, который открыл PR или запросил ревью. Расходы отображаются в вашем счёте Anthropic независимо от того, использует ли ваша организация Amazon Bedrock, Google Cloud's Agent Platform или Microsoft Foundry для других функций Claude Code.

19 

20<h3 id="how-often-reviews-run">

21 Как часто выполняются ревью

22</h3>

23 

24Репозиторий, который вы добавляете на странице администратора, по умолчанию использует режим **After every push**, при котором выполняется больше всего ревью. Настройка [**Review runs**](/docs/ru/code-review-setup#set-when-reviews-run) каждого репозитория определяет, сколько ревью получает pull request:

25 

26* **Once after PR creation**: ревью выполняется, когда pull request открывается, открывается повторно или помечается как готовый к ревью

27* **After every push**: ревью выполняется при каждом push, умножая стоимость на количество push

28* **Manual (@claude review)**: ревью не выполняются ни при открытии, ни при push

29 

30Команды в комментариях, черновики и pull request из форков влияют на это количество:

31 

32* **`@claude review always` в режиме Once after PR creation или Manual**: [подписывает PR на ревью, запускаемые при push](/docs/ru/code-review-pull-requests#comment-commands), поэтому после этого комментария за каждый push начисляется дополнительная стоимость

33* **`@claude review always` в режиме After every push**: push уже запускают ревью, поэтому подписка не меняет стоимость за push

34* **`@claude review`**: выполняет одно ревью без подписки на будущие push

35* **Черновики и pull request из форков**: [автоматические ревью пропускают и те, и другие](/docs/ru/code-review-pull-requests#review-drafts-and-pull-requests-from-forks), поэтому push в них не добавляют ревью

36 

37<h2 id="estimate-your-spend">

38 Оценка расходов

39</h2>

40 

41Перед широким развёртыванием проведите небольшой пилот, чтобы оценить ежемесячные расходы на основе ваших собственных pull request.

42 

431. Установите [ежемесячный лимит расходов](#limit-your-spend) для пилота.

442. Включите Code Review для нескольких репрезентативных репозиториев, установив для **Review runs** значение **Once after PR creation** или **Manual (@claude review)**.

453. После выполнения нескольких ревью посмотрите среднюю стоимость одного ревью для каждого репозитория в столбце **Average cost** таблицы **Repositories** в разделе **Code review** на странице [**Admin settings > Claude Code**](https://claude.ai/admin-settings/claude-code#code-review).

464. Умножьте это среднее значение на количество pull request, открываемых в репозитории за месяц. Для **After every push** умножьте ещё раз на типичное количество push на один pull request.

47 

48Среднее значение для репозитория меняется в зависимости от размера его pull request и выбранного вами уровня ревью.

49 

50<h2 id="limit-your-spend">

51 Ограничение расходов

52</h2>

53 

54Чтобы установить ежемесячный лимит расходов для Code Review, перейдите на [claude.ai/admin-settings/usage](https://claude.ai/admin-settings/usage) и настройте лимит для сервиса Claude Code Review. Лимит применяется ко всей организации.

55 

56Code Review пропускает ревью, когда исчерпывается любой из следующих ресурсов:

57 

58* **Лимит расходов Code Review**: ежемесячный лимит, который вы установили для сервиса Claude Code Review. Он сбрасывается в начале следующего расчётного периода, а если вы его повысите, ревью возобновятся раньше.

59* **Лимит расходов организации**: общий ежемесячный лимит расходов вашей организации на кредиты использования. Его можно повысить на той же странице.

60* **Баланс кредитов использования**: баланс кредитов использования вашей организации. Кредиты можно добавить на той же странице.

61 

62Code Review также пропускает ревью, если оставшаяся сумма меньше ожидаемой стоимости одного ревью. Когда ревью пропускается, разработчики видят [комментарий в PR](/docs/ru/code-review-troubleshooting#review-didn’t-run-and-the-pr-shows-a-budget-message), в котором указана причина и есть ссылка на настройки использования.

63 

64Для мониторинга расходов используйте [панель аналитики](#view-usage).

65 

66<h2 id="view-usage">

67 Просмотр использования

68</h2>

69 

70Перейдите на [claude.ai/analytics/code-review](https://claude.ai/analytics/code-review), чтобы увидеть активность Code Review по всей вашей организации.

71 

72| Раздел | Что отображается |

73| :- | :- |

74| PRs reviewed | Ежедневное количество pull request, прошедших ревью, за выбранный период |

75| Code Review cost | Расходы на Code Review с начала текущего месяца |

76| Feedback | Количество комментариев ревью, которые были автоматически закрыты, потому что разработчик устранил проблему |

77| Repository breakdown | Количество PR, прошедших ревью, закрытых комментариев и запусков ревью по каждому репозиторию с оценочной стоимостью и представлением по каждому PR |

78 

79Карточка Code Review cost показывает сумму, только когда выбран текущий месяц. Данные о стоимости в аналитике могут отличаться от вашего счёта. Стоимость в Repository breakdown рассчитывается по прейскурантной цене, без учёта скидок и кредитов, и охватывает только ревью, которые Claude опубликовал в pull request. Для получения точных данных о расходах обращайтесь к своему счёту Anthropic.

80 

81<h2 id="related-resources">

82 Связанные ресурсы

83</h2>

84 

85* [Настройка Code Review](/docs/ru/code-review-setup): где выбрать уровень ревью и момент запуска ревью в каждом репозитории

86* [Чтение и запрос ревью в pull request](/docs/ru/code-review-pull-requests): команды в комментариях, pull request из форков и сообщение о бюджете, которое видят разработчики при пропуске ревью

87* [Code Review](/docs/ru/code-review): что проверяет ревью и что оно публикует

88* [Эффективное управление затратами](/docs/ru/costs): контроль расходов и отслеживание использования для остальных функций Claude Code

code-review-customize.md +149 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Настройка Code Review

6 

7> Настройте, что Code Review отмечает в ваших pull request, с помощью REVIEW.md и CLAUDE.md: перекалибруйте серьёзность, исключите пути, добавьте проверки и узнайте, какая копия применяется.

8 

9Вы можете изменить, что [Code Review](/docs/ru/code-review) отмечает в вашем репозитории, закоммитив в него инструкции. Так можно сократить количество мелких замечаний, отключить комментарии к сгенерированным файлам или добавить правило, важное для вашей команды. Поместите их в один из двух файлов:

10 

11* **`CLAUDE.md`**: [инструкции проекта](/docs/ru/memory), которые Claude Code читает для каждой задачи, включая ревью. Code Review читает их как контекст проекта и отмечает изменения, которые их нарушают.

12* **`REVIEW.md`**: инструкции только для ревью. Используйте его, чтобы указать, что ваша команда хочет отмечать, с какой серьёзностью и что пропускать.

13 

14Добавьте `REVIEW.md` в корень репозитория и выполните слияние. Затем [защитите ветку по умолчанию](#which-branch-review-md-is-read-from).

15 

16<Note>

17 Чтобы изменить тщательность ревью или момент их запуска, попросите Owner изменить [уровень ревью](/docs/ru/code-review-setup#set-the-default-review-level) или [настройку **Review runs**](/docs/ru/code-review-setup#set-when-reviews-run).

18</Note>

19 

20<h2 id="use-claude-md-for-project-wide-rules">

21 Используйте CLAUDE.md для правил всего проекта

22</h2>

23 

24Code Review читает файлы `CLAUDE.md` вашего репозитория как контекст проекта. Изменение, нарушающее одно из их правил, становится замечанием с тем [уровнем серьёзности](/docs/ru/code-review-pull-requests#severity-levels), который соответствует проблеме.

25 

26Ревью читает `CLAUDE.md` в корне репозитория и файлы `CLAUDE.md` в родительских каталогах каждого изменённого файла. `CLAUDE.md` подкаталога читается, когда pull request изменяет файл по этому пути.

27 

28<h2 id="use-review-md-for-review-only-rules">

29 Используйте REVIEW\.md для правил, относящихся только к ревью

30</h2>

31 

32`REVIEW.md` — это файл в корне репозитория, который адаптирует Code Review к вашему репозиторию. Вы также можете добавить `REVIEW.md` в подкаталог, чтобы добавить проверки для изменений по этому пути в дополнение к корневому файлу.

33 

34Агенты, которые находят проблемы, и агенты, которые их проверяют, получают его содержимое как инструкции ревью вашего репозитория вместе со стандартными рекомендациями Code Review. Этап, на котором пишется итоговое ревью, обращается к нему, прежде чем определить серьёзность и написать сводку.

35 

36В этом примере структуры есть корневой файл и один файл в подкаталоге:

37 

38```text theme={null}

39your-repo/

40├── REVIEW.md # Root file

41├── services/

42│ └── billing/

43│ └── REVIEW.md # Adds checks for changes under services/billing/

44└── src/

45```

46 

47Прежде чем полагаться на файл в подкаталоге, защитите ветку по умолчанию и проверьте, [что читает ревью при вашей настройке веток](#what-a-review-reads-for-each-branch-setup).

48 

49<Note>

50 Сервис Code Review и локальная [команда `/code-review`](/docs/ru/code-review-local) — это два отдельных инструмента, и они читают разные файлы. Сервис читает и `CLAUDE.md`, и `REVIEW.md`. Команда `/code-review`, которую вы запускаете в сессии Claude Code на своём компьютере, читает ваши файлы `CLAUDE.md`, но не `REVIEW.md`. Указания, которые должны применяться в обоих местах, помещайте в `CLAUDE.md`, а `REVIEW.md` оставьте для правил, специфичных для ревью pull request.

51</Note>

52 

53<h3 id="example-review-md">

54 Пример REVIEW\.md

55</h3>

56 

57Этот `REVIEW.md` перекалибровывает серьёзность для бэкенд-сервиса, ограничивает количество мелких замечаний, пропускает сгенерированные файлы и добавляет проверки, специфичные для репозитория.

58 

59```markdown theme={null}

60# Review instructions

61 

62## What Important means here

63 

64Reserve Important for findings that would break behavior, leak data,

65or block a rollback: incorrect logic, unscoped database queries, PII

66in logs or error messages, and migrations that aren't backward

67compatible. Style, naming, and refactoring suggestions are Nit at

68most.

69 

70## Cap the nits

71 

72Report at most five Nits per review.

73 

74## Do not report

75 

76- Anything CI already enforces: lint, formatting, type errors

77- Generated files under `src/gen/` and any `*.lock` file

78- Test-only code that intentionally violates production rules

79 

80## Always check

81 

82- New API routes have an integration test

83- Log lines don't include email addresses, user IDs, or request bodies

84- Database queries are scoped to the caller's tenant

85```

86 

87<h3 id="choose-what-to-write-in-review-md">

88 Выбор содержимого REVIEW\.md

89</h3>

90 

91`REVIEW.md` — это Markdown в свободной форме, который изменяет то, что ревью находит и сообщает. Он не меняет формат ревью. Найдите проблему, с которой вы столкнулись, и добавьте инструкцию, подобную показанной. В [примере](#example-review-md) используются первые четыре.

92 

93* **Не то помечается как Important**: переопределите, что означает 🔴 Important для вашего репозитория. Калибровка по умолчанию ориентирована на production-код, а для репозитория документации, репозитория конфигурации или прототипа может потребоваться гораздо более узкое определение. Укажите, какие классы замечаний являются Important, а какие — максимум Nit. Можно также повышать серьёзность, например считать любое нарушение `CLAUDE.md` как Important.

94* **Слишком много мелких замечаний**: ограничьте количество комментариев 🟡 Nit, которые публикует одно ревью. Ограничение вроде «сообщать не более пяти мелких замечаний» сохраняет ревью практичными.

95* **Комментарии к сгенерированным файлам или к тому, что уже проверяет CI**: перечислите пути и категории замечаний, для которых Claude должен пропускать замечания. Типичные кандидаты — сгенерированный код, lock-файлы и вендорные зависимости, а также всё, что уже обеспечивает ваш CI, например линтинг или проверка орфографии. Для путей, которые требуют некоторого ревью, но не полного анализа, задайте более высокую планку: «в `scripts/` сообщать только о почти несомненных и серьёзных проблемах».

96* **Правило команды не проверяется**: добавьте правила, которые должны отмечаться в каждом pull request, например «новые маршруты API должны иметь интеграционный тест».

97* **Замечания оказываются ошибочными**: требуйте доказательств перед публикацией определённого класса замечаний. Например, «утверждения о поведении требуют ссылки `file:line` в исходном коде, а не вывода из названий» сокращает ложные срабатывания, которые иначе стоили бы автору лишнего цикла.

98 

99Некоторым из этих инструкций [требуется корневой файл в защищённой ветке по умолчанию](#which-branch-review-md-is-read-from).

100 

101Оставляйте в `REVIEW.md` только инструкции, изменяющие поведение ревью, а общий контекст проекта — в `CLAUDE.md`.

102 

103<h3 id="which-branch-review-md-is-read-from">

104 Из какой ветки читается REVIEW\.md

105</h3>

106 

107Code Review читает `REVIEW.md` из базовой ветки pull request или из ветки по умолчанию, но никогда из изменений самого pull request. Чтобы изменить поведение ревью, сначала выполните слияние изменения `REVIEW.md`.

108 

109Храните `REVIEW.md` в ветке по умолчанию и защитите эту ветку. Когда ревью читает копию из защищённой ветки по умолчанию (первая строка таблицы ниже), оно соблюдает следующие инструкции из корневого файла:

110 

111* Понижение серьёзности замечания

112* Исключение путей, файлов или классов проблем

113* Ограничение количества мелких замечаний

114 

115<h4 id="what-counts-as-branch-protection">

116 Что считается защитой ветки

117</h4>

118 

119Code Review считает защитой следующие настройки:

120 

121* **Ветка по умолчанию**: классическое правило защиты ветки или ruleset

122* **Любая другая ветка**: только ruleset

123 

124Ruleset засчитывается, если он ограничивает обновления или требует pull request как минимум с одним одобрением. Если он требует pull request, он также должен отзывать это одобрение при новом push или требовать, чтобы одобрение было получено после последнего push.

125 

126<h4 id="what-a-review-reads-for-each-branch-setup">

127 Что читает ревью при каждой настройке веток

128</h4>

129 

130Найдите ситуацию вашего репозитория в первом столбце таблицы ниже.

131 

132| Защита ветки | Читаемая копия | Читаемые файлы |

133| :- | :- | :- |

134| Ветка по умолчанию защищена, и pull request направлен в неё или в ветку, не защищённую ни одним ruleset | Ветка по умолчанию | Корневой файл и файлы подкаталогов |

135| Pull request направлен в другую ветку, защищённую ruleset | Эта базовая ветка | Корневой файл и файлы подкаталогов |

136| Ветка по умолчанию не защищена, и у базовой ветки нет правила защиты ни одного из типов | Ветка по умолчанию | Корневой файл |

137| Code Review не может подтвердить настройки защиты. Сюда относится незащищённая ветка по умолчанию с базовой веткой, у которой есть только классическое правило | Нет | Нет |

138 

139Если в check run упоминается `REVIEW.md`, см. [The check run mentions REVIEW.md](/docs/ru/code-review-troubleshooting#the-check-run-mentions-review-md).

140 

141<h2 id="related-resources">

142 Связанные ресурсы

143</h2>

144 

145* [Code Review](/docs/ru/code-review): что представляет собой сервис и как выполняется ревью

146* [Чтение и запрос ревью в pull request](/docs/ru/code-review-pull-requests#severity-levels): что означает каждый уровень серьёзности и как отображаются замечания

147* [Настройка Code Review](/docs/ru/code-review-setup): уровень ревью и момент запуска ревью, которые задаёт Owner

148* [Локальное ревью с помощью `/code-review`](/docs/ru/code-review-local): команда `/code-review`, её аргументы и уровни effort

149* [Память](/docs/ru/memory): как работают файлы `CLAUDE.md` в Claude Code

code-review-local.md +197 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Локальное код-ревью с помощью /code-review

6 

7> Запустите `/code-review` в сессии Claude Code, чтобы найти ошибки в изменениях вашей ветки, направьте ревью на pull request или путь и поручите Claude применить исправления.

8 

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

10 

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

12 

13<Note>

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

15</Note>

16 

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

18 

19<Steps>

20 <Step title="Запустите /code-review">

21 Выполните команду:

22 

23 ```text theme={null}

24 /code-review

25 ```

26 

27 Без указания цели ревью охватывает изменения в вашей текущей ветке. Чтобы вместо этого направить ревью на pull request, другую ветку, путь или диапазон коммитов, см. раздел [Выбор объекта ревью](#choose-what-to-review).

28 

29 Вы также можете добавить флаги:

30 

31 * `--fix`: дополнительно просит Claude применить найденные исправления к рабочему дереву после ревью. Его правки проходят через ваш [режим разрешений](/docs/ru/permission-modes).

32 * `--comment`: публикует результаты в pull request на GitHub в виде встроенных комментариев или в [merge request на GitLab](#post-findings-to-a-gitlab-merge-request) в виде одной заметки

33 </Step>

34 

35 <Step title="Продолжайте работу">

36 Ревью выполняется как фоновый [субагент](/docs/ru/sub-agents) с собственным контекстным окном, поэтому оно не заполняет ваш диалог. Результаты появляются в вашем диалоге после завершения ревью.

37 </Step>

38 

39 <Step title="Действуйте по результатам">

40 Попросите Claude исправить то, что нашло ревью. С флагом `--fix` или `--comment` Claude применяет или публикует результаты в рамках ревью, и вас могут попросить одобрить его правки.

41 </Step>

42</Steps>

43 

44<h2 id="choose-what-to-review">

45 Выбор объекта ревью

46</h2>

47 

48Чтобы провести ревью чего-либо, кроме текущей ветки, введите цель после уровня effort и флагов. Claude получает этот текст как цель ревью. Целью может быть номер pull request, имя ветки, путь к файлу или диапазон ревизий Git. Найдите в первом столбце то, что вы хотите проверить, и введите то, что указано во втором столбце:

49 

50| Чтобы направить ревью на | Введите |

51| :- | :- |

52| Вашу текущую ветку и незакоммиченные изменения | `/code-review` |

53| Ваши последние 15 коммитов | `/code-review HEAD~15..HEAD` |

54| Одну ветку относительно другой | `/code-review main...my-feature` |

55| Один коммит, где `abc1234` — хеш коммита | `/code-review abc1234^..abc1234` |

56| Pull request по номеру | `/code-review 1234` |

57| Путь к файлу или каталогу | `/code-review src/auth` |

58 

59Без указания цели `/code-review` проверяет коммиты вашей ветки, опережающие её upstream-ветку, а также ваши незакоммиченные изменения. Если у ветки нет upstream, Claude сравнивает с `main` или с предыдущим коммитом.

60 

61С `ultra` Claude Code интерпретирует цель иначе, как описано в разделе [Текст после уровня effort и флагов](#text-after-the-effort-level-and-flags).

62 

63<h2 id="what-the-review-reads-and-edits">

64 Что ревью читает и редактирует

65</h2>

66 

67Проверьте следующее перед запуском ревью, особенно с `--fix`:

68 

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

70* **Откат**: фоновое ревью применяет свои правки `--fix` вне [чекпоинтов](/docs/ru/checkpointing#subagent-edits-not-restored) вашей сессии. После такого ревью `/rewind` восстанавливает только те файлы, которые Claude уже редактировал в вашем диалоге. Правки ревью в других файлах остаются, поэтому используйте git, чтобы их откатить. Когда ревью [выполняется в основном режиме](#run-in-the-foreground), оно редактирует рабочее дерево во время вашего собственного хода, поэтому `/rewind` восстанавливает его правки как обычно.

71* **Инструкции**: ревью следует вашему `CLAUDE.md`, в том числе при неинтерактивном запуске с `-p`. Оно не читает `REVIEW.md`. Этот файл настраивает управляемый [сервис Code Review](/docs/ru/code-review-customize#use-review-md-for-review-only-rules) для pull request на GitHub.

72 

73<h2 id="how-findings-are-reported">

74 Как сообщается о результатах

75</h2>

76 

77Claude сообщает о результатах в виде текста в ответе в обоих этих случаях:

78 

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

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

81 

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

83 

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

85 

86<h2 id="tune-effort-and-arguments">

87 Настройка effort и аргументов

88</h2>

89 

90Помимо `--fix` и `--comment`, команда принимает следующие флаги:

91 

92* `--post`: при облачном ревью `ultra` для pull request на `github.com` заранее выбирает публикацию готовых результатов в PR в диалоговом окне запуска. См. [Публикация результатов в pull request](/docs/ru/ultrareview#post-findings-to-the-pull-request). Требуется Claude Code v2.1.227 или более поздней версии.

93* `--max-findings <n>`, `--max-findings all` или `--max-findings default`: сообщает до `n` результатов или все результаты с `all` вместо обычного лимита ревью. Когда ревью сообщает результаты через инструмент результатов, лимит составляет 32. Последующие ревью повторно используют введённое значение, пока вы не передадите `--max-findings default`, но значение, переданное при неинтерактивном запуске с `-p`, не запоминается. Требуется Claude Code v2.1.288 или более поздней версии.

94 

95Передайте [уровень effort](/docs/ru/model-config#adjust-effort-level), чтобы найти баланс между охватом и уверенностью. На уровне `low` ревью сообщает о результатах, в которых наиболее уверено, поэтому вы видите меньше ложных срабатываний. От `medium` до `max` ревью расширяет охват.

96 

97Если вы не вводите уровень, ревью повторно использует последний введённый вами уровень от `low` до `max`, даже из предыдущей сессии. Claude Code показывает уведомление, например `Reusing high effort, the level you typed last time`. Следующие правила определяют, какой уровень используется при запуске:

98 

99* **Ввод уровня**: введённый вами уровень, например `/code-review high`, меняет то, что будут повторно использовать последующие запуски

100* **Неинтерактивные запуски**: уровень, переданный при неинтерактивном запуске с `-p`, не обновляет запомненный уровень

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

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

103 

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

105 

106<h3 id="post-findings-to-a-gitlab-merge-request">

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

108</h3>

109 

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

111 

112Передайте merge request в виде URL или ссылки `!123`. Claude Code рассматривает простой номер или имя ветки как merge request, только если origin рабочей копии находится на `gitlab.com`. Для самостоятельно управляемого экземпляра GitLab передайте URL или форму `!123`.

113 

114<h3 id="text-after-the-effort-level-and-flags">

115 Текст после уровня effort и флагов

116</h3>

117 

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

119 

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

121* **Без `ultra`**: всё оставшееся является целью ревью, даже если начинается с имени другой команды. `/code-review /fix-issue 123` проводит ревью с `/fix-issue 123` в качестве текста цели, а не загружает `/fix-issue` как второй [составной скилл](/docs/ru/skills#pass-arguments-to-skills). До версии v2.1.218 команда, указанная после `/code-review`, раскрывалась как отдельный скилл.

122 

123<h2 id="run-in-the-foreground">

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

125</h2>

126 

127Чтобы ревью выполнялось в основном режиме (не в фоне), сделайте одно из следующего:

128 

129* Запустите его в неинтерактивном режиме с флагом `-p` или через Agent SDK. Claude Code дожидается завершения ревью и включает результаты в ответ, за исключением `ultra`, которое [не ожидает облачного ревью](/docs/ru/ultrareview#run-ultrareview-non-interactively).

130* Установите [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS`](/docs/ru/env-vars) в `1`, что также отключает все остальные функции фоновых задач

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

132 

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

134 

135<h2 id="let-claude-start-the-review">

136 Запуск ревью самим Claude

137</h2>

138 

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

140 

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

142* **Из запланированной задачи**: [запланированная задача](/docs/ru/scheduled-tasks) с `/code-review` в качестве промпта запускает ревью

143 

144Запланированная задача никогда не запускает [облачное ревью](#escalate-to-ultrareview), поэтому планируйте `/code-review` без аргумента `ultra`.

145 

146Чтобы запретить и Claude, и запланированным задачам запускать ревью, сохранив при этом возможность вводить `/code-review` вручную, добавьте запись [`skillOverrides`](/docs/ru/skills#override-skill-visibility-from-settings) в [файл настроек](/docs/ru/settings#where-settings-live), например `~/.claude/settings.json`:

147 

148```json theme={null}

149{

150 "skillOverrides": {

151 "code-review": "user-invocable-only"

152 }

153}

154```

155 

156До версии v2.1.246 Claude самостоятельно запускал `/code-review` только там, где это включал флаг функции, получаемый от Anthropic. В [сессиях, которые не получают флаги функций](/docs/ru/env-vars#features-that-need-feature-flag-fetching), `/code-review` запускалась только при вводе вручную, а запланированная `/code-review` доходила до Claude как обычный текст.

157 

158<h2 id="escalate-to-ultrareview">

159 Переход к ultrareview

160</h2>

161 

162`/code-review ultra --fix` запускает более глубокое [ultrareview](/docs/ru/ultrareview) в облаке, а затем просит Claude применить его результаты к вашему рабочему дереву, когда они вернутся в вашу сессию.

163 

164Ultrareview использует собственную область действия:

165 

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

167* **Конфиденциальные файлы**: для незакоммиченных изменений в файлах с именами, похожими на учётные данные или ключи, например файлах `.env` и `*.tfvars`, Claude Code следует правилам [загрузки локального репозитория в облачную сессию](/docs/ru/claude-code-on-the-web#send-local-repositories-without-github)

168* **Другая база**: передайте имя ветки, например `/code-review ultra develop`, чтобы сравнить с другой базой

169 

170Когда целью является pull request на `github.com`, вы можете поручить Claude [опубликовать готовые результаты в PR](/docs/ru/ultrareview#post-findings-to-the-pull-request) в виде комментария от вашей учётной записи GitHub. Требуется Claude Code v2.1.227 или более поздней версии.

171 

172<Note>

173 Ultrareview требует аутентификации с учётной записью claude.ai. Оно недоступно в Amazon Bedrock, Google Cloud's Agent Platform или Microsoft Foundry, а также для организаций с включённым Zero Data Retention или применённой [конфигурацией HIPAA](/docs/ru/hipaa-setup). В этих случаях `/code-review ultra` вместо этого запускает локальное ревью в вашей сессии. Организации, использующие [ключи шифрования, управляемые клиентом](https://platform.claude.com/docs/en/manage-claude/cmek) (CMEK), не могут запускать ultrareview. Чтобы проверить изменения локально, выполните `/code-review`.

174</Note>

175 

176Чтобы запустить облачное ревью из скрипта или задания CI, используйте [подкоманду `claude ultrareview`](/docs/ru/ultrareview#run-ultrareview-non-interactively), которая дожидается результатов и выводит их в stdout.

177 

178<h2 id="change-or-build-on-the-review">

179 Изменение ревью и создание собственного на его основе

180</h2>

181 

182`/code-review` — это [встроенный скилл](/docs/ru/skills#bundled-skills): его инструкции встроены в Claude Code, поэтому на диске нет файла `SKILL.md`, который можно открыть или отредактировать. Чтобы каждое ревью следовало правилам проекта, добавьте их в ваш `CLAUDE.md`. Чтобы пойти дальше, начните с одной из этих страниц:

183 

184* **Замена команды**: скилл проекта или личный скилл с именем `code-review` запускается вместо встроенного, а псевдоним `/review` продолжает запускать встроенное ревью. См. [Разрешение конфликтов скиллов с одинаковыми именами](/docs/ru/skills#resolve-skills-that-share-a-name).

185* **Создание собственного ревьюера**: напишите [субагента](/docs/ru/sub-agents)-ревьюера или [скилл](/docs/ru/skills) для ревью

186* **Использование смежной команды**: [`/simplify`](/docs/ru/commands) проверяет только возможности улучшения кода и применяет свои исправления, а [`/verify`](/docs/ru/commands) запускает ваше приложение, чтобы подтвердить, что изменение работает

187 

188До версии v2.1.147 команда называлась `/simplify` и по умолчанию применяла исправления. Если вы использовали `/simplify` в скриптах для поиска ошибок, перейдите на `/code-review --fix`.

189 

190<h2 id="related-resources">

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

192</h2>

193 

194* [Code Review](/docs/ru/code-review): управляемый сервис, который проводит ревью каждого pull request на GitHub для вашей организации

195* [Ultrareview](/docs/ru/ultrareview): настройка, ограничения и стоимость более глубокого облачного ревью

196* [Команды](/docs/ru/commands): краткий справочник по `/code-review`, `/review`, `/simplify` и `/verify`

197* [Скиллы](/docs/ru/skills): как работают встроенные скиллы и как написать собственный

code-review-pull-requests.md +169 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Чтение результатов и запрос ревью для pull request

6 

7> Читайте результаты Code Review в вашем pull request на GitHub, отвечайте на них или отклоняйте их, а также запрашивайте ревью с помощью `@claude review`.

8 

9Code Review — это управляемый сервис, который Owner в вашей организации Claude включает для набора репозиториев GitHub. После включения Claude проводит ревью pull request в этих репозиториях и публикует свои результаты в виде встроенных комментариев, сводки в теле ревью и check run с именем **Claude Code Review**. Ревью никогда не одобряет и не блокирует ваш pull request, а check run никогда не завершается со статусом failure.

10 

11Owner управляет тем, [когда запускаются ревью](/docs/ru/code-review-setup#set-when-reviews-run) и [насколько они тщательны](/docs/ru/code-review-setup#set-the-default-review-level), для каждого репозитория.

12 

13<Note>

14 Если ваш план не включает Code Review, вы всё равно можете поручить Claude провести ревью вашей ветки из сессии Claude Code: см. [Локальное ревью с помощью `/code-review`](/docs/ru/code-review-local).

15</Note>

16 

17<h2 id="severity-levels">

18 Уровни серьёзности

19</h2>

20 

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

22 

23| Маркер | Серьёзность | Значение |

24| :- | :- | :- |

25| 🔴 | Important | Ошибка, которую следует исправить перед слиянием |

26| 🟡 | Nit | Незначительная проблема, которую стоит исправить, но она не блокирует |

27| 🟣 | Pre-existing | Ошибка, которая существует в кодовой базе, но не была внесена этим PR |

28 

29Если ревью зафиксировало свои рассуждения, у результата есть свёрнутый раздел **Why this was flagged**. Разверните его, чтобы узнать, почему Claude пометил проблему и как он её проверил.

30 

31Чтобы изменить, что Claude помечает в вашем репозитории или как он оценивает серьёзность, см. [Настройка Code Review](/docs/ru/code-review-customize).

32 

33<h2 id="respond-to-findings">

34 Ответ на результаты

35</h2>

36 

37Вы можете выполнить слияние, не отвечая на результат, если только собственные правила вашего репозитория не требуют этого. Если защита ветки [требует разрешения обсуждений](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/managing-protected-branches/about-protected-branches#require-conversation-resolution-before-merging), разрешите ветку обсуждения каждого результата перед слиянием.

38 

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

40 

41* **Отклонить без изменения кода**: разрешите ветку обсуждения самостоятельно на GitHub. Одного ответа недостаточно, чтобы отклонить результат.

42* **Исправить проблему**: измените код и выполните push. Следующее ревью pull request разрешит прежнюю ветку обсуждения, если сочтёт проблему исправленной, — независимо от того, запускается ли это ревью автоматически при push или вы запрашиваете его сами.

43* **Объяснить или не согласиться**: ответьте на комментарий. Claude не отвечает сразу, и ответ не запускает ревью. Следующее ревью pull request читает ответы на свои прежние результаты и может разрешить ветку обсуждения или опубликовать один ответный комментарий. Если один и тот же тип результата постоянно возвращается, попросите сопровождающего добавить правило в [`REVIEW.md`](/docs/ru/code-review-customize#choose-what-to-write-in-review-md).

44 

45Чтобы получить это следующее ревью без push, оставьте `@claude review` в виде [комментария верхнего уровня к pull request](#comment-commands).

46 

47<h2 id="check-run-output">

48 Вывод check run

49</h2>

50 

51Ссылка **Details** в check run **Claude Code Review** открывает результаты в одной таблице, отсортированной по серьёзности, включая любые результаты, встроенные комментарии к которым GitHub не принял:

52 

53| Серьёзность | Файл:Строка | Проблема |

54| - | - | - |

55| 🔴 Important | `src/auth/session.ts:142` | Обновление токена конкурирует с выходом из системы, из-за чего устаревшие сессии остаются активными |

56| 🟡 Nit | `src/auth/session.ts:88` | `parseExpiry` молча возвращает 0 при некорректных входных данных |

57 

58Результат, у которого есть строка, но который не был опубликован как встроенный комментарий, отображается как аннотация на вкладке **Files changed** у соответствующих строк. Результаты Important отображаются красным, nit — жёлтым, а pre-existing ошибки — серым.

59 

60Check run завершается со статусом neutral или skipped, если автоматическое ревью не запускалось, потому что push не изменил ни одного файла. Он никогда не завершается со статусом failure, поэтому завершённое ревью не приводит к провалу обязательной проверки. Если вы не видите результатов или ревью не запустилось, см. [Устранение неполадок Code Review](/docs/ru/code-review-troubleshooting).

61 

62<h3 id="read-the-result-from-a-script">

63 Чтение результата из скрипта

64</h3>

65 

66Чтобы блокировать слияние или публиковать сводку из собственного CI, разберите последнюю строку текста Details с помощью `gh` и jq. Эта строка — машиночитаемый комментарий.

67 

68<Steps>

69 <Step title="Найдите ID check run">

70 В оболочке выведите список check run для коммита и возьмите `id` запуска `Claude Code Review`. Замените `OWNER` и `REPO` на владельца и имя вашего репозитория, а `<commit-sha>` — на головной коммит pull request:

71 

72 ```bash theme={null}

73 gh api repos/OWNER/REPO/commits/<commit-sha>/check-runs --jq '.check_runs[] | {id, name}'

74 ```

75 </Step>

76 

77 <Step title="Прочитайте количество по уровням серьёзности">

78 Прочитайте количество из этого check run, заменив `CHECK_RUN_ID` на ID:

79 

80 ```bash theme={null}

81 gh api repos/OWNER/REPO/check-runs/CHECK_RUN_ID \

82 --jq '.output.text | split("bughunter-severity: ")[1] | split(" -->")[0] | fromjson'

83 ```

84 

85 Команда выводит JSON-объект с количеством для каждого уровня серьёзности, ключи которого упорядочены по алфавиту, например `{"nit": 1, "normal": 2, "pre_existing": 0}`. В количество входят результаты прежних ревью pull request, ветки обсуждения которых всё ещё открыты.

86 </Step>

87 

88 <Step title="Обработайте результат">

89 Предусмотрите в скрипте обработку следующих случаев:

90 

91 * **`normal` больше нуля**: завершите задание с ошибкой, если хотите блокировать слияние. Ключ `normal` содержит количество результатов Important, то есть Claude нашёл хотя бы одну ошибку, которую стоит исправить перед слиянием.

92 * **Строка отсутствует**: считайте это отсутствием вердикта, а не нулём результатов. В check run для ревью, которое завершилось ошибкой, превысило время ожидания, было отменено или заменено более новым, такой строки нет; её также нет в некоторых завершённых ревью.

93 </Step>

94</Steps>

95 

96<h2 id="request-a-review">

97 Запрос ревью

98</h2>

99 

100Если ваш pull request является черновиком или создан из форка, автоматические ревью его пропускают, поэтому [запросите ревью с помощью команды в комментарии](#review-drafts-and-pull-requests-from-forks). Чтобы получить ревью для вашего pull request, выполните одно из следующих действий:

101 

102* **Откройте его или пометьте как готовый**: в репозитории с настройкой **Once after PR creation** или **After every push** ревью запускается, когда вы открываете или повторно открываете pull request либо помечаете черновик как готовый к ревью.

103* **Оставьте команду в комментарии**: опубликуйте [`@claude review`](#comment-commands) в pull request.

104* **Выполните push коммита**: push запускает ревью в репозитории с настройкой **After every push** или в pull request, на который вы подписались с помощью `@claude review always`.

105* **Нажмите Re-run**: после того как ревью завершилось ошибкой или превысило время ожидания в pull request, созданном не из форка, [запустите его снова](/docs/ru/code-review-troubleshooting#retrigger-a-failed-or-timed-out-review) из check run.

106* **Дождитесь автоматической повторной попытки**: ревью, сессия которого была прервана, автоматически повторяется один раз. [Сводка check run](/docs/ru/code-review-troubleshooting#retrigger-a-failed-or-timed-out-review) сообщает, когда это происходит.

107 

108<h3 id="comment-commands">

109 Команды в комментариях

110</h3>

111 

112Опубликуйте одну из этих команд в виде комментария к pull request:

113 

114| Команда | Что она делает | Когда её использовать |

115| :- | :- | :- |

116| `@claude review` | Запускает одно ревью без подписки PR на будущие push | Вам нужно одно ревью сейчас, например для pull request в репозитории с настройкой Manual, или ещё одно ревью немедленно в других режимах |

117| `@claude review always` | Запускает ревью и подписывает PR на ревью, запускаемые при push, в дальнейшем | Вы хотите, чтобы каждый последующий push запускал новое ревью, например для высокоприоритетного PR в репозитории с настройкой Manual |

118| `@claude review once` | То же, что `@claude review`: запускает одно ревью без подписки | Те же случаи, что и для `@claude review` |

119 

120Чтобы любая из этих команд запустила ревью, должны выполняться все следующие условия:

121 

122* Опубликуйте её как новый комментарий верхнего уровня к pull request, а не как встроенный комментарий к строке diff и не как тело ревью. Редактирование более раннего комментария не считается.

123* Поместите команду в начало комментария, причём `always` должно находиться на той же строке, что и остальная часть команды. Регистр не имеет значения.

124* Вам нужны права write, maintain или admin в репозитории. Claude проверяет это через GitHub для каждого комментирующего, а комментарии от ботов не запускают ревью.

125* Pull request должен быть открыт.

126 

127Когда команда принята, в pull request появляется check run **Claude Code Review** с заголовком **Code review queued...**. Заголовок меняется на **Code review in progress...**, когда ревью начинается. Claude также может отреагировать на ваш комментарий с помощью 👀, но эта реакция может появиться и тогда, когда ревью не запускается, поэтому ориентируйтесь на check run.

128 

129Если ревью уже выполняется для последнего коммита pull request, новый запрос не запускает второе.

130 

131<Note>

132 До обновления в июле 2026 года `@claude review` подписывал PR на ревью, запускаемые при push. Если вы полагались на это поведение, используйте вместо этого комментарий `@claude review always`.

133</Note>

134 

135<h3 id="what-a-later-review-covers">

136 Что охватывает последующее ревью

137</h3>

138 

139Последующее ревью, которое запускается само, например после push, фокусируется на том, что изменилось с момента последнего ревью, и публикует меньше результатов nit и pre-existing. В его сводке указывается количество того, что было опущено, в строке, заканчивающейся на «found and not posted» или «outside the scope of this re-review and not posted».

140 

141Чтобы получить ревью, в котором ничего из этого не опущено, оставьте комментарий [`@claude review`](#comment-commands). Такое ревью снова охватывает весь pull request.

142 

143<h3 id="review-drafts-and-pull-requests-from-forks">

144 Ревью черновиков и pull request из форков

145</h3>

146 

147Автоматические ревью пропускают оба этих случая, поэтому запросите ревью с помощью команды в комментарии:

148 

149* **Черновики pull request**: команда в комментарии выполняется для черновика, поэтому вы можете запросить ревью до того, как пометите pull request как готовый. Push в черновик не запускают ревью, даже после `@claude review always`. Подписка вступает в силу, как только вы пометите pull request как готовый.

150* **Pull request из форков**: Claude не проводит ревью pull request из форка автоматически, независимо от настройки **Review runs** репозитория. Чтобы запустить ревью, оставьте комментарий `@claude review` в pull request. [Условия для команд в комментариях](#comment-commands) по-прежнему действуют, причём права на запись нужны в базовом репозитории, а не в форке.

151 

152В pull request из форка `@claude review always` тоже работает, но не подписывает pull request на ревью при последующих push. Нажатие **Re-run** в check run там не запускает ревью.

153 

154<h3 id="use-code-review-alongside-the-claude-code-github-action">

155 Использование Code Review вместе с Claude Code GitHub Action

156</h3>

157 

158Если в репозитории также работает [Claude Code GitHub Action](/docs/ru/github-actions) в интерактивном режиме с триггерной фразой по умолчанию `@claude`, комментарий `@claude review` запускает и Action. Чтобы разделить их, задайте для входного параметра `trigger_phrase` в Action другую фразу.

159 

160<h2 id="related-resources">

161 Связанные ресурсы

162</h2>

163 

164* [Устранение неполадок Code Review](/docs/ru/code-review-troubleshooting): ревью, которое не запустилось, завершилось ошибкой или было пропущено из-за бюджета

165* [Code Review](/docs/ru/code-review): что представляет собой сервис и как выполняется ревью

166* [Настройка Code Review](/docs/ru/code-review-setup): для Owner — включение Code Review и выбор того, когда и на каком уровне запускаются ревью

167* [Настройка Code Review под ваши нужды](/docs/ru/code-review-customize): изменение того, что помечает Claude, с помощью `REVIEW.md` и `CLAUDE.md`

168* [Стоимость и использование Code Review](/docs/ru/code-review-costs): как тарифицируются ревью и где задаётся лимит расходов

169* [Локальное ревью с помощью `/code-review`](/docs/ru/code-review-local): запуск ревью вашей ветки из сессии Claude Code

code-review-setup.md +189 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Настройка Code Review

6 

7> Включите Code Review для вашей организации Claude: подключите GitHub, установите Claude GitHub App, выберите репозитории и настройте, когда запускаются ревью

8 

9Как Owner вашей организации Claude, вы включаете Code Review в разделе [**Admin settings > Claude Code**](https://claude.ai/admin-settings/claude-code#code-review) на claude.ai. Ревью выполняются на инфраструктуре Anthropic, поэтому вам не нужно добавлять файлы workflow в свои репозитории.

10 

11После настройки вы выбираете, насколько тщательными будут ревью и когда они будут запускаться в каждом репозитории. Расходы растут при более высоком уровне ревью и при более частом запуске ревью. См. [Стоимость Code Review](/docs/ru/code-review-costs#pricing).

12 

13<h2 id="what-you-need-to-turn-on-code-review">

14 Что нужно для включения Code Review

15</h2>

16 

17Сначала убедитесь, что ваша организация [соответствует требованиям Code Review](/docs/ru/code-review#availability). Затем убедитесь, что у вас есть следующие права доступа или есть человек, у которого они есть:

18 

19| Доступ | Для чего нужен |

20| :- | :- |

21| [Роль Owner](/docs/ru/server-managed-settings#access-control) в вашей организации Claude | Каждый шаг на странице администратора |

22| Owner организации GitHub | Установка Claude GitHub App и [привязка его к вашей организации Claude](/docs/ru/admin-setup#connected-github-accounts). Если вы не являетесь owner, попросите owner установить и привязать приложение, прежде чем начинать |

23| Доступ на запись к каждому добавляемому репозиторию из учетной записи GitHub, которую вы подключаете к Claude | Добавление репозитория |

24 

25<h2 id="turn-on-code-review">

26 Включение Code Review

27</h2>

28 

29<Steps>

30 <Step title="Нажмите переключатель Allow code review">

31 Перейдите в раздел **Code review** на странице [**Admin settings > Claude Code**](https://claude.ai/admin-settings/claude-code#code-review) и нажмите переключатель **Allow code review**.

32 

33 Если Code Review включается сразу без диалогового окна, значит, в вашей организации уже привязан Claude GitHub App или добавлены репозитории. Перейдите к разделу [Добавление репозиториев](#add-more-repositories), а затем вернитесь к последнему шагу.

34 </Step>

35 

36 <Step title="Подключите учетную запись GitHub">

37 Если открылось диалоговое окно **Connect GitHub**, нажмите **Connect**. Если ваша организация использует GitHub Enterprise Server, сначала выберите свой экземпляр в диалоговом окне. GitHub попросит вас авторизовать Claude, а затем вернет вас на страницу администратора с открытым диалоговым окном **Add a repository**.

38 

39 Если сразу открылось окно **Add a repository**, ваша учетная запись уже подключена, поэтому переходите к следующему шагу.

40 </Step>

41 

42 <Step title="Установите Claude GitHub App">

43 Если нужные репозитории отображаются в диалоговом окне **Add a repository** или вы находите их с помощью поиска в нем, переходите к следующему шагу. Диалоговое окно показывает репозиторий, только если у Claude GitHub App есть к нему доступ, поэтому, если их там нет, установите приложение:

44 

45 * Нажмите **Install GitHub App**. Если в списке нет репозиториев, это кнопка в диалоговом окне. В противном случае она находится внизу меню фильтра организаций GitHub в диалоговом окне. Страница установки GitHub откроется в новой вкладке.

46 * Выберите организацию GitHub, которой принадлежат репозитории.

47 * Выберите, к каким репозиториям приложение получит доступ.

48 * Подтвердите запрашиваемые разрешения. Этот набор шире, чем требуется для ревью, и используется совместно с другими функциями Claude, такими как [GitHub Actions](/docs/ru/github-actions). См. [к чему имеет доступ ревью](/docs/ru/code-review#what-a-review-can-access) и [полный список разрешений](/docs/ru/github-actions#github-app-permissions).

49 * После завершения установки вкладка вернется в Claude. Если на ней отображается кнопка **Finish connecting GitHub**, нажмите ее, чтобы привязать установку к вашей организации Claude.

50 * Вернитесь на вкладку страницы администратора, где список в диалоговом окне обновится.

51 </Step>

52 

53 <Step title="Выберите репозитории">

54 Выберите репозитории, для которых нужно ревью, затем нажмите **Continue**. Для добавления репозитория у подключенной учетной записи GitHub должен быть доступ на запись к нему. Вы можете [добавить другие репозитории](#add-more-repositories) позже.

55 </Step>

56 

57 <Step title="Нажмите Finish">

58 Далее откроется диалоговое окно **Code review is set up**. Нажмите **Finish**, чтобы включить Code Review. Если вы закроете диалоговое окно другим способом, ваши репозитории останутся добавленными, но **Allow code review** останется выключенным, и вам нужно будет включить его с помощью переключателя.

59 

60 Каждый репозиторий изначально настроен на ревью после каждого push, что дает наибольшее количество ревью. Чтобы запускать их реже, [настройте, когда запускаются ревью](#set-when-reviews-run).

61 </Step>

62 

63 <Step title="Проверьте с помощью тестового pull request">

64 Откройте тестовый pull request в одном из добавленных репозиториев и не помечайте его как черновик. В течение нескольких минут появится check run с именем **Claude Code Review**. Если вы уже установили для репозитория режим **Manual (@claude review)**, оставьте комментарий `@claude review` в pull request, чтобы запустить первое ревью.

65 

66 Если check run не появился, см. [No check run appears on the test pull request](/docs/ru/code-review-troubleshooting#no-check-run-appears-on-the-test-pull-request).

67 

68 Когда ревью будет готово, отправьте своим разработчикам страницу [Чтение и запрос ревью в pull request](/docs/ru/code-review-pull-requests), где описаны уровни серьезности, команды в комментариях и то, как реагировать на найденные проблемы.

69 </Step>

70</Steps>

71 

72<h2 id="set-defaults-for-your-organization">

73 Настройка значений по умолчанию для организации

74</h2>

75 

76Как Owner, вы решаете, насколько тщательными будут ревью и как часто они будут запускаться. Обе настройки находятся в разделе **Code review** на странице [**Admin settings > Claude Code**](https://claude.ai/admin-settings/claude-code#code-review).

77 

78<h3 id="set-the-default-review-level">

79 Настройка уровня ревью по умолчанию

80</h3>

81 

82Уровень ревью определяет, насколько тщательным будет каждое ревью, и более тщательное ревью стоит дороже. Вы задаете одно значение по умолчанию для организации и можете переопределить его для отдельных репозиториев.

83 

84| Уровень | Компромисс |

85| :- | :- |

86| Quick | Более легкая проверка. Самый быстрый уровень с наименьшей стоимостью |

87| Standard | Сбалансированные глубина, скорость и стоимость. Уровень по умолчанию |

88| Deep | Самая тщательная проверка. Занимает больше всего времени и стоит дороже всего |

89 

90* **Значение по умолчанию для организации**: выберите уровень в разделе **Review level** и подтвердите нажатием **Change level**. Каждый репозиторий использует его, если вы не задали для этого репозитория собственный уровень.

91* **Отдельный репозиторий**: нажмите **Edit** в строке репозитория, затем выберите **Review level**. Первый вариант, **Default**, следует настройке организации. Уровень сохраняется сразу после выбора.

92 

93Новый уровень применяется к ревью, которые начинаются после изменения. О других факторах, влияющих на стоимость каждого ревью, см. [Стоимость и использование Code Review](/docs/ru/code-review-costs).

94 

95<h3 id="set-when-reviews-run">

96 Настройка времени запуска ревью

97</h3>

98 

99У каждого репозитория есть собственная настройка **Review runs**, которая определяет, когда проводится ревью его pull request.

100 

101* **Once after PR creation**: ревью запускается, когда pull request открывается, повторно открывается или помечается как готовый к ревью

102* **After every push**: ревью запускается при каждом push в ветку pull request, выявляя новые проблемы по мере развития pull request и автоматически закрывая обсуждения, когда вы исправляете отмеченные проблемы

103* **Manual (@claude review)**: открытие pull request или push в него не запускает ревью. Оставьте комментарий [`@claude review`](/docs/ru/code-review-pull-requests#comment-commands), чтобы запросить ревью, или `@claude review always`, чтобы также подписать pull request на ревью при последующих push.

104 

105Режим Manual полезен для репозиториев с высокой активностью, где вы хотите включать ревью только для определенных pull request, или чтобы начинать ревью pull request только тогда, когда они готовы. Чтобы сравнить, как каждый вариант влияет на расходы, см. [Как часто запускаются ревью](/docs/ru/code-review-costs#how-often-reviews-run).

106 

107Чтобы изменить настройку, нажмите **Edit** в строке репозитория в таблице **Repositories** и выберите вариант **Review runs**. Выбор сохраняется сразу, а в столбце **Review runs** таблицы он отображается в сокращенном виде: Once per PR, Every push или Manual.

108 

109* **Черновики и pull request из форков**: какой бы вариант вы ни выбрали, [автоматические ревью пропускают и те, и другие](/docs/ru/code-review-pull-requests#review-drafts-and-pull-requests-from-forks)

110* **Новые репозитории**: репозиторий, добавленный через диалоговое окно **Add a repository**, изначально использует **After every push**. Если его организация GitHub [охвачена целиком](#cover-a-whole-github-organization), он вместо этого получает настройку из строки этой организации.

111 

112<h3 id="turn-tip-comments-on-or-off">

113 Включение и отключение комментариев-подсказок

114</h3>

115 

116Комментарий-подсказка — это короткий комментарий, который Claude публикует в pull request, когда ревью не запускается, объясняя причину и дальнейшие действия. Настройка **Show tips on pull requests** включена по умолчанию. Когда она включена, Claude публикует подсказку в каждом из следующих случаев, объясняя:

117 

118* **Репозиторий настроен на Manual**: как запросить ревью с помощью комментария

119* **Pull request создан из форка**: что ревью может запросить мейнтейнер

120* **Бот или пользователь без доступа на запись оставляет комментарий `@claude review`**: что ревью не было запущено и кто может его запросить

121* **Организация GitHub не привязана к вашей организации Claude**: что ревью приостановлены и как привязать организацию

122 

123Отключите эту настройку, чтобы прекратить публикацию таких комментариев.

124 

125<h3 id="what-developers-can-change">

126 Что могут изменить разработчики

127</h3>

128 

129Чтобы изменить уровень ревью, настройку **Review runs** или список репозиториев, для которых проводятся ревью, разработчики обращаются к вам. В GitHub без роли Owner они могут делать следующее:

130 

131* **Запросить ревью**: оставить комментарий [`@claude review`](/docs/ru/code-review-pull-requests#comment-commands) в pull request. Для этого нужен доступ на запись к репозиторию, и это работает для [черновиков и pull request из форков](/docs/ru/code-review-pull-requests#review-drafts-and-pull-requests-from-forks), которые автоматические ревью пропускают.

132* **Подписать отдельный pull request на ревью при каждом push**: оставить комментарий `@claude review always` в pull request, который не является [черновиком или pull request из форка](/docs/ru/code-review-pull-requests#review-drafts-and-pull-requests-from-forks), например в репозитории, настроенном на Manual

133* **Изменить то, что помечают ревью**: сделать коммит [файлов `REVIEW.md` и `CLAUDE.md`](/docs/ru/code-review-customize) в репозиторий, например чтобы добавить проверку

134 

135Ревью, запрошенные разработчиками, [оплачиваются вашей организацией](/docs/ru/code-review-costs#pricing). Чтобы ограничить расходы Code Review за месяц, см. [Ограничение расходов](/docs/ru/code-review-costs#limit-your-spend).

136 

137<h2 id="manage-repositories">

138 Управление репозиториями

139</h2>

140 

141Вы можете добавлять репозитории по одному или охватить сразу всю организацию GitHub, а также остановить ревью там, где они вам не нужны.

142 

143<h3 id="add-more-repositories">

144 Добавление репозиториев

145</h3>

146 

147Чтобы добавить репозитории после настройки, нажмите **Add** над таблицей **Repositories** в разделе **Code review**. Откроется диалоговое окно **Add a repository**. Выберите репозитории и нажмите **Continue**.

148 

149* **Репозиторий отсутствует в списке**: см. [A repository isn't listed in Add a repository](/docs/ru/code-review-troubleshooting#a-repository-isn’t-listed-in-add-a-repository).

150* **Вам нужны все репозитории организации GitHub**: [охватите организацию](#cover-a-whole-github-organization) вместо того, чтобы выбирать репозитории по одному

151 

152<h3 id="cover-a-whole-github-organization">

153 Охват всей организации GitHub

154</h3>

155 

156Чтобы включить Code Review для всех репозиториев организации GitHub, задайте **Review runs** в строке организации в таблице **Repositories**. Это охватывает все репозитории этой организации, к которым у Claude GitHub App есть доступ, включая репозитории, добавленные позже. Это может значительно увеличить расходы. Для этого необходимо выполнение всех следующих условий:

157 

158* Учетная запись GitHub, которую вы подключили к Claude, является owner этой организации GitHub.

159* Организация находится на github.com. Экземпляры GitHub Enterprise Server и личные учетные записи GitHub не подходят.

160* Установлен [месячный лимит расходов](/docs/ru/code-review-costs#limit-your-spend) для вашей организации Claude или для Code Review.

161 

162Чтобы охватить организацию, нажмите **Edit** в ее строке, выберите вариант **Review runs** и подтвердите. Доступны три варианта из раздела [Настройка времени запуска ревью](#set-when-reviews-run), а также **Off**.

163 

164После подтверждения вступают в силу следующие изменения:

165 

166* **Охват**: каждый репозиторий охватывается начиная со следующего pull request. Если Claude GitHub App был установлен на выбранные репозитории, а не на все, Claude проводит ревью этих репозиториев; чтобы охватить остальные, измените доступ приложения к репозиториям на GitHub.

167* **Существующие настройки**: каждый репозиторий в этой организации GitHub получает выбранный вами вариант, включая репозитории, которые вы настраивали по отдельности. Повторная настройка строки приводит к тому же результату. Репозитории, которые вы отключили в их собственных строках, остаются отключенными.

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

169* **Уровень ревью**: у строки организации нет собственного уровня ревью.

170 

171<h3 id="turn-off-code-review-or-remove-a-repository">

172 Отключение Code Review или удаление репозитория

173</h3>

174 

175В разделе **Code review** на странице [**Admin settings > Claude Code**](https://claude.ai/admin-settings/claude-code#code-review) выберите элемент управления, соответствующий тому, что вы хотите остановить:

176 

177* **Один репозиторий с сохранением его в списке**: нажмите **Edit** в его строке и отключите **Code review**. В таблице репозиторий будет отображаться как Off.

178* **Один репозиторий с его удалением**: нажмите **Edit** в его строке, затем **Remove repository** внизу диалогового окна. Ревью в нем прекращаются, и после этого другая организация Claude может настроить этот репозиторий. Пока организация GitHub этого репозитория охвачена целиком, удалить его нельзя; вместо этого отключите его переключатель **Code review**.

179* **Вся организация GitHub**: нажмите **Edit** в строке организации и выберите **Off**. Это также отключает репозитории этой организации, которые вы добавляли по одному.

180* **Все**: отключите **Allow code review**. Новые ревью не запускаются ни в одном репозитории, а ваш список репозиториев сохраняется, чтобы вы могли снова включить функцию позже.

181 

182<h2 id="related-resources">

183 Связанные ресурсы

184</h2>

185 

186* [Стоимость и использование Code Review](/docs/ru/code-review-costs): как уровень ревью и время их запуска влияют на расходы, как установить лимит расходов и где просматривать использование

187* [Чтение и запрос ревью в pull request](/docs/ru/code-review-pull-requests): что разработчики видят в pull request и команды в комментариях

188* [Настройка Code Review](/docs/ru/code-review-customize): настройте то, что помечает Claude, с помощью `REVIEW.md` и `CLAUDE.md`

189* [GitHub Enterprise Server](/docs/ru/github-enterprise-server): подключите самостоятельно размещенный экземпляр GitHub перед настройкой

code-review-troubleshooting.md +113 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Устранение неполадок Code Review

6 

7> Исправьте ситуации, когда Code Review не запустился, завершился с ошибкой или был пропущен из-за бюджета, найдите недостающие замечания и решите проблемы с настройкой и `REVIEW.md`.

8 

9Если [Code Review](/docs/ru/code-review) ведёт себя на pull request не так, как вы ожидаете, начните с check run **Claude Code Review**. Его заголовок показывает, на каком этапе остановилось ревью.

10 

11<h2 id="check-how-far-the-review-got">

12 Проверьте, на каком этапе остановилось ревью

13</h2>

14 

15Найдите check run **Claude Code Review** в вашем pull request, затем сопоставьте его заголовок с одним из распространённых вариантов:

16 

17| Заголовок check run | Что это означает | Что делать |

18| :- | :- | :- |

19| **Code review queued...** или **Code review in progress...** | Ревью ещё не завершилось | Дождитесь изменения заголовка |

20| **Code review found no issues** | Ревью завершилось и не нашло ничего, что стоило бы пометить | Ничего |

21| Заголовок, сообщающий, что найдены проблемы | Ревью завершилось с замечаниями | Если вы не видите их в diff, см. [Поиск проблем, которые не отображаются как встроенные комментарии](#find-issues-that-aren’t-showing-as-inline-comments) |

22| **Code review skipped — no new changes** | Автоматическое ревью не запустилось для вашего последнего push | Чтобы всё равно получить ревью, оставьте комментарий `@claude review` |

23| **Code review failed** или **Code review timed out** | Ревью не завершилось | Чтобы запустить его снова, см. [Повторный запуск ревью, завершившегося с ошибкой или по тайм-ауту](#retrigger-a-failed-or-timed-out-review) |

24| **Code review declined** | Ревью не запускалось | Прочитайте сводку check run. Если в ней упоминается бюджет или лимит расходов, см. [Ревью не запустилось, и в PR отображается сообщение о бюджете](#review-didn’t-run-and-the-pr-shows-a-budget-message) |

25| Check run отсутствует | Ревью не запускалось | Оставьте комментарий `@claude review`. Если после этого check run не появился, см. [Команда в комментарии не запустила ревью](#a-comment-command-didn’t-start-a-review) |

26 

27<h2 id="a-review-didn’t-start">

28 Ревью не запустилось

29</h2>

30 

31Проверьте эти случаи, если check run **Claude Code Review** не появляется или если Claude публикует комментарий о том, что ревью было пропущено.

32 

33<h3 id="a-comment-command-didn’t-start-a-review">

34 Команда в комментарии не запустила ревью

35</h3>

36 

37После того как вы оставили комментарий `@claude review`, найдите в pull request check run **Claude Code Review** с заголовком **Code review queued...** или **Code review in progress...**. Реакция 👀 на ваш комментарий не подтверждает, что ревью будет выполнено. Если check run не появился, проверьте каждую из следующих причин:

38 

39* **Code Review не включён для этого репозитория**: Claude не публикует ни комментария, ни check run в ответ на команду. Попросите Owner [добавить репозиторий](/docs/ru/code-review-setup#add-more-repositories).

40* **Комментарий не соответствует условию**: это был встроенный комментарий или текст ревью, а не новый комментарий верхнего уровня, либо команда стояла не в начале комментария. Редактирование более раннего комментария вместо публикации нового также не учитывается, а pull request должен быть открыт. Ознакомьтесь с [условиями для команд в комментариях](/docs/ru/code-review-pull-requests#comment-commands) и опубликуйте новый комментарий, который им соответствует.

41* **У вас нет прав на запись**: вам нужно разрешение write, maintain или admin в репозитории, а для pull request из форка учитывается разрешение в базовом репозитории. Если в вашей организации включены подсказки, Claude ответит: "No review was started: manual reviews can only be requested by someone with write access to this repository." Попросите оставить комментарий кого-то, у кого есть права на запись.

42* **Бюджет исчерпан**: Claude публикует комментарий, начинающийся с "⚠️ Code review skipped". См. [Ревью не запустилось, и в PR отображается сообщение о бюджете](#review-didn’t-run-and-the-pr-shows-a-budget-message).

43 

44<h3 id="review-didn’t-run-and-the-pr-shows-a-budget-message">

45 Ревью не запустилось, и в PR отображается сообщение о бюджете

46</h3>

47 

48Когда бюджета вашей организации недостаточно для ревью, Code Review пропускает его, а Claude публикует в pull request комментарий, начинающийся с "⚠️ Code review skipped". В некоторых из этих случаев также появляется check run с заголовком **Code review declined**.

49 

50Комментарий содержит ссылку на [claude.ai/admin-settings/usage](https://claude.ai/admin-settings/usage), где администратор может восстановить бюджет. По формулировке можно понять, какой лимит был достигнут:

51 

52* **"has reached its monthly code review spending cap"**: достигнут [ежемесячный лимит расходов на Code Review](/docs/ru/code-review-costs#limit-your-spend). Ревью возобновятся в начале следующего расчётного периода. Чтобы получить их раньше, попросите администратора повысить лимит.

53* **"has no extra usage available to pay for this review"**: баланс [кредитов использования](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) вашей организации исчерпан или достигнут её общий ежемесячный лимит расходов. Попросите администратора пополнить кредиты или повысить этот лимит.

54* **"is too low to start another review"**: остаток бюджета или баланса меньше ожидаемой стоимости одного ревью. Попросите администратора повысить лимит или пополнить кредиты.

55 

56После восстановления бюджета оставьте в pull request комментарий `@claude review`, чтобы получить пропущенное ревью. Действуют [условия для команд в комментариях](/docs/ru/code-review-pull-requests#comment-commands), поэтому у автора комментария должны быть права на запись.

57 

58<h2 id="retrigger-a-failed-or-timed-out-review">

59 Повторный запуск ревью, завершившегося с ошибкой или по тайм-ауту

60</h2>

61 

62Если в сводке check run указано "The review session was interrupted before it could finish. A new review of this commit has been queued automatically.", ничего делать не нужно. Такое ревью автоматически повторяется один раз.

63 

64В остальных случаях, когда заголовок check run — **Code review failed** или **Code review timed out**, запустите ревью снова с помощью комментария или повторного запуска:

65 

66* **Оставьте комментарий `@claude review`**: опубликуйте его как комментарий верхнего уровня в pull request. Это запускает новое ревью без подписки pull request на будущие push.

67* **Нажмите Re-run**: если pull request не [из форка](/docs/ru/code-review-pull-requests#review-drafts-and-pull-requests-from-forks), нажмите **Re-run** у проверки **Claude Code Review** на вкладке **Checks** в GitHub. Повторный запуск охватывает текущий головной коммит pull request и также не подписывает pull request.

68 

69<h2 id="find-issues-that-aren’t-showing-as-inline-comments">

70 Поиск проблем, которые не отображаются как встроенные комментарии

71</h2>

72 

73Если заголовок check run сообщает, что найдены проблемы, но вы не видите встроенных комментариев ревью в diff, посмотрите в других местах, где отображаются замечания:

74 

75* **Details в check run**: нажмите **Details** рядом с проверкой **Claude Code Review** на вкладке **Checks**. Таблица серьёзности содержит замечания с файлом, строкой и кратким описанием независимо от того, был ли принят встроенный комментарий.

76* **Аннотации в Files changed**: откройте вкладку **Files changed** в PR. Замечание, привязанное к строке, но не опубликованное как встроенный комментарий, отображается там как аннотация к соответствующим строкам.

77* **Текст ревью**: замечания без привязки к месту в коде или выходящие за пределы текущего diff отображаются под заголовком **Additional findings** в тексте ревью.

78 

79<h2 id="the-check-run-mentions-review-md">

80 Check run упоминает REVIEW\.md

81</h2>

82 

83Два сообщения, которые check run может содержать о `REVIEW.md`, касаются защиты веток:

84 

85* **"This review applied the repository's review instructions (REVIEW\.md) from its default branch, which is not protected against direct pushes."**: ревью прочитало только корневой файл. О том, что меняет защита ветки, см. [Из какой ветки читается REVIEW.md](/docs/ru/code-review-customize#which-branch-review-md-is-read-from).

86* **"were not applied to this review: branch protection could not be confirmed"**: ревью не прочитало ни одного `REVIEW.md`.

87 

88<h2 id="setup-problems">

89 Проблемы с настройкой

90</h2>

91 

92Эти случаи возникают у Owner при [настройке Code Review](/docs/ru/code-review-setup).

93 

94<h3 id="a-repository-isn’t-listed-in-add-a-repository">

95 Репозиторий не отображается в Add a repository

96</h3>

97 

98Сначала найдите репозиторий по имени, поскольку диалог не загружает длинный список полностью. Диалог показывает репозиторий, только если у Claude GitHub App есть к нему доступ. Нажмите **Install GitHub App** и предоставьте приложению доступ к репозиторию. Если ни один репозиторий не отображается, **Install GitHub App** — это кнопка в диалоге. В противном случае она находится внизу меню фильтра организаций GitHub в диалоге.

99 

100<h3 id="no-check-run-appears-on-the-test-pull-request">

101 В тестовом pull request не появляется check run

102</h3>

103 

104Убедитесь, что **Allow code review** включён, что репозиторий указан в списке **Repositories** в разделе **Code review** и что у Claude GitHub App есть к нему доступ. Автоматические ревью пропускают черновые pull request, а для репозитория с режимом **Manual (@claude review)** для запуска первого ревью нужен комментарий `@claude review`.

105 

106<h2 id="related-resources">

107 Связанные ресурсы

108</h2>

109 

110* [Просмотр и запрос ревью в pull request](/docs/ru/code-review-pull-requests): что означают замечания и check run, а также команды в комментариях

111* [Настройка Code Review](/docs/ru/code-review-setup): для Owner — включение Code Review и управление репозиториями

112* [Стоимость и использование Code Review](/docs/ru/code-review-costs): лимиты расходов, стоящие за сообщением о бюджете

113* [Кастомизация Code Review](/docs/ru/code-review-customize): какую копию `REVIEW.md` читает ревью

commands.md +2 −2

Details

72| `/claude-api [migrate\|upgrade\|managed-agents-onboard\|prompt-audit\|cost-optimize\|build-eval\|hillclimb\|preserved-thinking-migration]` | **[Skill](/docs/ru/skills#bundled-skills).** Загрузить справочный материал [Claude API](https://platform.claude.com/docs/en/api/overview) и [Managed Agents](https://platform.claude.com/docs/en/managed-agents/overview) для языка вашего проекта. Также активируется автоматически, когда ваш код импортирует `anthropic` или `@anthropic-ai/sdk`. Для того, что делает каждая подкоманда и какую версию она требует, см. [Работать над проектами Claude API](/docs/ru/skills#work-on-claude-api-projects) |72| `/claude-api [migrate\|upgrade\|managed-agents-onboard\|prompt-audit\|cost-optimize\|build-eval\|hillclimb\|preserved-thinking-migration]` | **[Skill](/docs/ru/skills#bundled-skills).** Загрузить справочный материал [Claude API](https://platform.claude.com/docs/en/api/overview) и [Managed Agents](https://platform.claude.com/docs/en/managed-agents/overview) для языка вашего проекта. Также активируется автоматически, когда ваш код импортирует `anthropic` или `@anthropic-ai/sdk`. Для того, что делает каждая подкоманда и какую версию она требует, см. [Работать над проектами Claude API](/docs/ru/skills#work-on-claude-api-projects) |

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

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

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

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

77| `/compact [instructions]` | Освободить контекст путём суммирования разговора до сих пор. Опционально передайте инструкции фокуса для суммирования. См. [как сжатие обрабатывает правила, skills и файлы памяти](/docs/ru/context-window#what-survives-compaction) |77| `/compact [instructions]` | Освободить контекст путём суммирования разговора до сих пор. Опционально передайте инструкции фокуса для суммирования. См. [как сжатие обрабатывает правила, skills и файлы памяти](/docs/ru/context-window#what-survives-compaction) |

78| `/config [key=value ...]` | Открыть интерфейс [Параметры](/docs/ru/settings) для настройки темы, модели, [стиля вывода](/docs/ru/output-styles) и других предпочтений. Передайте одну или несколько пар `key=value` для установки параметра напрямую без открытия интерфейса, например `/config thinking=false`, `/config theme=dark` или `/config model=sonnet`. Форма `key=value` также работает в неинтерактивном режиме (`-p`) и из мобильного приложения Claude через [Remote Control](/docs/ru/remote-control). Форма `key=value` не может включить параметр, который требует вашего подтверждения на панели, такой как [`autoContinueAtUsageLimit`](/docs/ru/interactive-mode#turn-automatic-continue-off), хотя может его отключить. Запустите `/config --help` для списка принимаемых ключей. Псевдоним: `/settings` |78| `/config [key=value ...]` | Открыть интерфейс [Параметры](/docs/ru/settings) для настройки темы, модели, [стиля вывода](/docs/ru/output-styles) и других предпочтений. Передайте одну или несколько пар `key=value` для установки параметра напрямую без открытия интерфейса, например `/config thinking=false`, `/config theme=dark` или `/config model=sonnet`. Форма `key=value` также работает в неинтерактивном режиме (`-p`) и из мобильного приложения Claude через [Remote Control](/docs/ru/remote-control). Форма `key=value` не может включить параметр, который требует вашего подтверждения на панели, такой как [`autoContinueAtUsageLimit`](/docs/ru/interactive-mode#turn-automatic-continue-off), хотя может его отключить. Запустите `/config --help` для списка принимаемых ключей. Псевдоним: `/settings` |


134| `/remote-env` | Выбрать [облачное окружение](/docs/ru/cloud-environments#select-an-environment-from-the-cli) по умолчанию для облачных сессий, которые вы запускаете из CLI |134| `/remote-env` | Выбрать [облачное окружение](/docs/ru/cloud-environments#select-an-environment-from-the-cli) по умолчанию для облачных сессий, которые вы запускаете из CLI |

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

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

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

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

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

140| `/run-skill-generator` | **[Skill](/docs/ru/skills#bundled-skills).** Научить `/run` и `/verify` как собирать, запускать и управлять приложением вашего проекта из чистого окружения путём написания per-project [skill](/docs/ru/skills#run-and-verify-your-app) |140| `/run-skill-generator` | **[Skill](/docs/ru/skills#bundled-skills).** Научить `/run` и `/verify` как собирать, запускать и управлять приложением вашего проекта из чистого окружения путём написания per-project [skill](/docs/ru/skills#run-and-verify-your-app) |

desktop.md +257 −3

Details

207* Нажмите **Walk through in diff**, чтобы открыть представление diff и пройти по результатам по одному. Результат, относящийся к текущему diff, отображается у соответствующей строки, где вы можете нажать **Fix this one** или отклонить его.207* Нажмите **Walk through in diff**, чтобы открыть представление diff и пройти по результатам по одному. Результат, относящийся к текущему diff, отображается у соответствующей строки, где вы можете нажать **Fix this one** или отклонить его.

208* Нажмите **Apply fixes**, чтобы попросить Claude исправить результаты, которые всё ещё открыты.208* Нажмите **Apply fixes**, чтобы попросить Claude исправить результаты, которые всё ещё открыты.

209 209 

210В любой сессии вы также можете попросить Claude в поле промпта исправить то, что обнаружило код-ревью. О том, что ищет `/code-review` и какие аргументы принимает, см. [Review a diff locally](/docs/ru/code-review#review-a-diff-locally).210В любой сессии вы также можете попросить Claude в поле промпта исправить то, что обнаружило код-ревью. О том, что ищет `/code-review` и какие аргументы принимает, см. [Локальное код-ревью с помощью `/code-review`](/docs/ru/code-review-local).

211 211 

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

213 Мониторьте статус pull request213 Мониторьте статус pull request


859* **Сессии на одно соединение**: Desktop на macOS и Linux открывает несколько сессий в одном SSH-соединении. Если `sshd_config` сервера задаёт `MaxSessions 1`, увеличьте значение, например до значения OpenSSH по умолчанию, равного 10.859* **Сессии на одно соединение**: Desktop на macOS и Linux открывает несколько сессий в одном SSH-соединении. Если `sshd_config` сервера задаёт `MaxSessions 1`, увеличьте значение, например до значения OpenSSH по умолчанию, равного 10.

860* **Папка установки**: Desktop устанавливает вспомогательную программу и Claude Code в `~/.claude/remote/` в вашем домашнем каталоге. Он запускает их оттуда, поэтому эта папка не может находиться в файловой системе, смонтированной с `noexec`. Выделите около 1 ГБ дискового пространства в домашнем каталоге каждого подключающегося пользователя. О том, что хранится в этой папке, см. [Файлы и процессы на удалённой машине](#files-and-processes-on-the-remote-machine).860* **Папка установки**: Desktop устанавливает вспомогательную программу и Claude Code в `~/.claude/remote/` в вашем домашнем каталоге. Он запускает их оттуда, поэтому эта папка не может находиться в файловой системе, смонтированной с `noexec`. Выделите около 1 ГБ дискового пространства в домашнем каталоге каждого подключающегося пользователя. О том, что хранится в этой папке, см. [Файлы и процессы на удалённой машине](#files-and-processes-on-the-remote-machine).

861* **Оболочка**: оболочка, заданная для вашей учётной записи на удалённой машине, должна выполнять команды, отправленные через SSH, как это делают Bash, Zsh и `sh`861* **Оболочка**: оболочка, заданная для вашей учётной записи на удалённой машине, должна выполнять команды, отправленные через SSH, как это делают Bash, Zsh и `sh`

862* **Сеть**: Claude Code работает на удалённой машине и выполняет сетевые запросы оттуда, поэтому машине нужен [доступ к сети, который требуется Claude Code](/docs/ru/network-config#network-access-requirements). Если машина не может загрузить Claude Code, Desktop загружает его на вашем компьютере и выгружает на машину. Остальные запросы Claude Code по-прежнему отправляются с удалённой машины.862* **Сеть**: Claude Code работает на удалённой машине и выполняет сетевые запросы оттуда, поэтому машине нужен [доступ к сети, который требуется Claude Code](/docs/ru/network-config#network-access-requirements). Если машина не может загрузить Claude Code, Desktop загружает его на вашем компьютере и выгружает на машину. Остальные запросы Claude Code по-прежнему отправляются с удалённой машины. Если на удалённой машине с Linux этим запросам нужен прокси, [задайте его для SSH-сессий](#set-a-proxy-or-a-ca-certificate-for-ssh-sessions).

863 

864<h4 id="set-a-proxy-or-a-ca-certificate-for-ssh-sessions">

865 Настройка прокси или сертификата CA для SSH-сессий

866</h4>

867 

868Если удалённая машина с Linux выходит в интернет через прокси или ей нужен сертификат CA, добавьте [переменные прокси и CA](/docs/ru/network-config) в раздел `env` файла `~/.claude/settings.json` на этой машине. Добавьте их, даже если вы уже экспортируете их в `~/.profile`, `~/.bash_profile`, `~/.zprofile` или `~/.zshrc` на этой машине.

869 

870SSH-сессия не получает их из этих файлов, даже если `claude` в терминале на этой машине их получает. Тогда сессия может зависнуть или показать **The connection from … to the API failed** или **Authentication failed**, и повторный вход не помогает.

871 

872<Steps>

873 <Step title="Добавьте переменные">

874 Для файла CA используйте [`NODE_EXTRA_CA_CERTS`](/docs/ru/network-config#custom-ca-certificates), потому что Claude Code не доверяет CA из `SSL_CERT_FILE` в `~/.claude/settings.json`. Этот пример задаёт прокси и файл CA:

875 

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

877 {

878 "env": {

879 "HTTPS_PROXY": "http://proxy.example.com:8080",

880 "NODE_EXTRA_CA_CERTS": "/etc/ssl/certs/example-ca.pem"

881 }

882 }

883 ```

884 </Step>

885 

886 <Step title="Отправьте сообщение снова">

887 Отправьте сообщение снова, потому что переменная, которую вы добавляете или изменяете в этом файле, вступает в силу в течение нескольких секунд. Если ошибка сохраняется, начните новую сессию.

888 </Step>

889</Steps>

890 

891<h5 id="find-a-proxy-or-ca-variable-set-elsewhere-on-the-remote-machine">

892 Поиск переменной прокси или CA, заданной в другом месте на удалённой машине

893</h5>

894 

895Проверьте, не задаёт ли удалённая машина с Linux переменную прокси или CA в другом месте, потому что сессии используют это значение и [игнорируют значение из любого файла настроек](/docs/ru/settings-reference#how-env-values-interact-with-your-shell):

896 

897<Steps>

898 <Step title="Выведите список переменных, которые задаёт удалённая машина">

899 В терминале на вашем компьютере выполните `ssh devbox env`, подставив свой хост.

900 </Step>

901 

902 <Step title="Измените переменную там, где она задана">

903 Если переменная есть в списке, измените её в файле, который её задаёт, например `~/.zshenv`, `/etc/environment` или `~/.bashrc` на удалённой машине.

904 </Step>

905 

906 <Step title="Передайте сессиям новое значение">

907 Перезапустите удалённую машину или закройте Desktop и завершите процессы помощника, как в первых двух шагах [удаления помощника](#files-and-processes-on-the-remote-machine). Делайте это, когда никакая задача не выполняется, потому что любой из этих способов прерывает работу Claude.

908 </Step>

909</Steps>

863 910 

864<h4 id="use-your-ssh-configuration-on-macos-and-linux">911<h4 id="use-your-ssh-configuration-on-macos-and-linux">

865 Использование вашей конфигурации SSH на macOS и Linux912 Использование вашей конфигурации SSH на macOS и Linux


892 939 

893Введите `devbox` в поле **SSH host**.940Введите `devbox` в поле **SSH host**.

894 941 

942<h5 id="reach-a-container-on-a-remote-machine">

943 Подключение к контейнеру на удалённой машине

944</h5>

945 

946Чтобы запустить сессию внутри контейнера, который не публикует SSH-порт, подключайтесь к нему через `ProxyCommand`, потому что Desktop не выполняет `RemoteCommand` записи, к которой вы подключаетесь. Если ваша запись использует `RemoteCommand` для входа в контейнер, сессия работает на машине, на которую входит запись, а не в контейнере.

947 

948<Steps>

949 <Step title="Добавьте запись">

950 Добавьте следующую запись в конец вашего `~/.ssh/config` или непосредственно над первой записью `Host *`, если она у вас есть. Замените Docker-контейнер `devbox`, его пользователя `dev` и машину `build.example.com` на свои. Команда записи запускает SSH-сервер внутри контейнера для каждого соединения:

951 

952 ```text ~/.ssh/config theme={null}

953 Host devbox-container

954 User dev

955 ProxyCommand ssh build.example.com docker exec -i devbox /usr/sbin/sshd -i

956 ```

957 </Step>

958 

959 <Step title="Подготовьте контейнер">

960 * Установите OpenSSH-сервер с ключом хоста, который остаётся прежним при пересборке образа или пересоздании контейнера

961 * Дайте учётной записи, указанной в `User`, способ входа, например файл `authorized_keys`

962 * Убедитесь, что контейнер соответствует [требованиям к удалённой машине](#remote-machine-requirements-for-ssh-sessions)

963 </Step>

964 

965 <Step title="Проверьте список разрешённых хостов">

966 Если ваш администратор [ограничивает SSH-хосты](#restrict-which-ssh-hosts-users-can-connect-to), выполните `ssh -G devbox-container` в терминале на вашем компьютере. Попросите администратора разрешить в `sshHostAllowlist` выведенное значение `hostname`, здесь `devbox-container`. Разрешая это имя, администратор разрешает всё, к чему подключается `ProxyCommand` вашей записи.

967 </Step>

968 

969 <Step title="Протестируйте запись, затем подключитесь">

970 Выполните `ssh devbox-container` в терминале на вашем компьютере. Исправьте то, о чём сообщает команда, и запускайте её снова, пока она не откроет оболочку в контейнере, ничего у вас не спрашивая:

971 

972 * **Если `ssh` запрашивает пароль, парольную фразу или код**: перейдите на вход, который работает без запроса, например ключ, хранящийся в вашем SSH-агенте

973 * **Если `ssh` сообщает `Cannot execute command-line and remote command.` или `Bad packet length`**: уберите `RemoteCommand` и `RequestTTY` из вашей записи для `build.example.com`. После этого `ssh build.example.com` в терминале на вашем компьютере открывает оболочку на этой машине, а не в контейнере.

974 * **Если `ssh` сообщает `Connection closed by UNKNOWN port 65535`**: выполните `ssh build.example.com docker exec devbox /usr/sbin/sshd -t` в том же терминале.

975 * Если команда выводит `Missing privilege separation directory: /run/sshd`, создайте эту папку в контейнере.

976 * Если команда выводит `no hostkeys available`, а у контейнера есть ключи хоста, добавьте `-u root` после `exec` в этой команде и в записи.

977 

978 Затем введите `devbox-container` в поле **SSH host**.

979 </Step>

980</Steps>

981 

895<h5 id="use-variables-from-your-shell-in-a-proxycommand">982<h5 id="use-variables-from-your-shell-in-a-proxycommand">

896 Использование переменных из вашей оболочки в `ProxyCommand`983 Использование переменных из вашей оболочки в `ProxyCommand`

897</h5>984</h5>


900 987 

901Для этого требуется Claude Desktop v2.37337.0 или более поздней версии и команда `env`, которая принимает `-0`; это можно проверить, выполнив `env -0` в терминале на вашем компьютере.988Для этого требуется Claude Desktop v2.37337.0 или более поздней версии и команда `env`, которая принимает `-0`; это можно проверить, выполнив `env -0` в терминале на вашем компьютере.

902 989 

990<Note>

991 Если ваша оболочка задаёт временные учётные данные AWS, [укажите для AWS CLI профиль](#use-aws-credentials-in-a-proxycommand) вместо экспорта переменных `AWS_*`.

992</Note>

993 

994<a id="use-aws-credentials-in-a-proxycommand" />

995 

996<h5 id="use-aws-credentials-in-a-proxycommand">

997 Использование учётных данных AWS в `ProxyCommand`

998</h5>

999 

1000Если вы задаёте временные учётные данные AWS в файле запуска оболочки, `ProxyCommand`, который запускает AWS CLI, может подключаться в терминале и завершаться ошибкой в Desktop. Когда ваша оболочка экспортирует `AWS_SESSION_TOKEN`, `AWS_SECURITY_TOKEN` или `AWS_CREDENTIAL_EXPIRATION`, `ssh` и ваш `ProxyCommand` в Desktop не получают учётные данные AWS из оболочки, `AWS_REGION` или `AWS_PROFILE`.

1001 

1002Если у AWS CLI нет другого источника региона или учётных данных, он завершается ошибкой `You must specify a region` или `Unable to locate credentials`. Чтобы подключаться из Desktop, укажите для AWS CLI профиль, который он читает из `~/.aws/config`:

1003 

1004<Steps>

1005 <Step title="Добавьте профиль с регионом и источником учётных данных">

1006 Этот пример добавляет профиль с именем `corp`, который получает учётные данные от вспомогательной программы:

1007 

1008 ```ini ~/.aws/config theme={null}

1009 [profile corp]

1010 region = us-east-1

1011 credential_process = /full/path/to/your-credential-helper

1012 ```

1013 

1014 * **`region`**: укажите регион AWS машин, к которым вы подключаетесь

1015 * **`credential_process`**: укажите полный путь к программе, которая выводит учётные данные в [формате JSON, описанном в документации AWS](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sourcing-external.html). Выберите программу, которой не требуется ввод с вашей стороны, потому что AWS CLI запускает её при каждом подключении, включая переподключения в ваше отсутствие.

1016 * **IAM Identity Center**: добавьте [настройки IAM Identity Center](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html) профиля вместо `credential_process`. Выполните `aws sso login --profile corp` в терминале перед подключением и снова, когда срок действия этого входа истечёт.

1017 </Step>

1018 

1019 <Step title="Укажите профиль в ProxyCommand">

1020 Этот пример добавляет `--profile` к [команде для Session Manager из документации AWS](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-getting-started-enable-ssh-connections.html):

1021 

1022 ```text ~/.ssh/config theme={null}

1023 Host i-*

1024 ProxyCommand sh -c "aws ssm start-session --profile corp --target %h --document-name AWS-StartSSHSession --parameters 'portNumber=%p'"

1025 ```

1026 </Step>

1027 

1028 <Step title="Подключитесь снова">

1029 Выполните `ssh` с хостом в терминале, чтобы убедиться, что запись по-прежнему подключается там, затем подключитесь из Desktop.

1030 </Step>

1031</Steps>

1032 

903<h5 id="raise-the-ssh-connection-timeout">1033<h5 id="raise-the-ssh-connection-timeout">

904 Увеличение таймаута SSH-соединения1034 Увеличение таймаута SSH-соединения

905</h5>1035</h5>


916 1046 

917`ssh` использует первое найденное для хоста значение, поэтому размещайте запись выше любой записи `Host *`, которая задаёт `ConnectTimeout`. Чтобы убедиться, выполните `ssh -G devbox` в терминале на вашем компьютере. Его вывод содержит `connecttimeout 120`. После изменения значения закройте и снова откройте Desktop.1047`ssh` использует первое найденное для хоста значение, поэтому размещайте запись выше любой записи `Host *`, которая задаёт `ConnectTimeout`. Чтобы убедиться, выполните `ssh -G devbox` в терминале на вашем компьютере. Его вывод содержит `connecttimeout 120`. После изменения значения закройте и снова откройте Desktop.

918 1048 

1049Если сама удалённая машина ожидает подтверждения на вашем телефоне, подтвердите в течение 45 секунд, какое бы значение `ConnectTimeout` вы ни задали. Этот лимит нельзя увеличить, потому что Desktop сам задаёт `ServerAliveInterval` и `ServerAliveCountMax`, и тогда `ssh` закрывает вход, во время которого удалённая машина ничего не отправляет в течение этого времени. Если вместо этого вас ожидает jump-хост или `ProxyCommand`, увеличьте `ConnectTimeout` в записи удалённой машины, чтобы покрыть это время.

1050 

1051<h5 id="fix-a-match-host-block-that-only-desktop-applies">

1052 Исправление блока `Match host`, который применяет только Desktop

1053</h5>

1054 

1055Если Desktop использует настройку, которую не использует `ssh devbox` в терминале, найдите блок `Match host` выше строки `HostName` записи. В терминале `ssh` читает расположенный там блок до строки `HostName`, поэтому сравнивает блок с `devbox`. Desktop передаёт `ssh` значение `HostName` в командной строке, поэтому `ssh` сравнивает блок с этим значением.

1056 

1057Чтобы проверить, выполните `ssh -G` в терминале на вашем компьютере со значениями `HostName` и `User` записи в командной строке, как это делает Desktop:

1058 

1059```bash theme={null}

1060ssh -G -o HostName=devbox.internal.example.com -l alice devbox

1061```

1062 

1063Сравните вывод с выводом `ssh -G devbox`. Если настройки блока, например `proxycommand`, появляются только в первом выводе, блок действует только в Desktop. Чтобы Desktop тоже его пропускал, добавьте `!originalhost devbox` в его строку `Match`:

1064 

1065```text ~/.ssh/config theme={null}

1066Match host *.internal.example.com !originalhost devbox

1067```

1068 

1069Чтобы убедиться, снова выполните первую команду. Настройки блока больше не появляются в её выводе.

1070 

919<h5 id="forwarding-settings-that-desktop-leaves-off">1071<h5 id="forwarding-settings-that-desktop-leaves-off">

920 Настройки переадресации, которые Desktop оставляет выключенными1072 Настройки переадресации, которые Desktop оставляет выключенными

921</h5>1073</h5>


1154 </Step>1306 </Step>

1155 1307 

1156 <Step title="Завершите процессы">1308 <Step title="Завершите процессы">

1157 Войдя на удалённую машину под этим пользователем, выполните `kill` с каждым идентификатором процесса, который выводит [`pgrep`](#files-and-processes-on-the-remote-machine).1309 Войдя на удалённую машину под этим пользователем, выполните `kill` с идентификатором каждого процесса Claude Code, который выводит [`pgrep`](#files-and-processes-on-the-remote-machine). Когда они исчезнут из списка, выполните `kill` с идентификатором каждого процесса `server`. Если сначала завершить процесс `server`, команда, которую выполняет Claude Code, может продолжить работу.

1310 

1311 Затем выведите список оставшихся процессов пользователя, например с помощью `ps -u "$(id -un)" -f`, и завершите те, которые, как вы определили, запустил Claude Code. Программы, которые он оставил в фоне, могут продолжать работать после его завершения, не попадая в список `pgrep`.

1158 </Step>1312 </Step>

1159 1313 

1160 <Step title="Удалите папку">1314 <Step title="Удалите папку">


1170 1324 

1171Прежде чем архивировать сессию, у которой есть worktree, см. [Параллельная работа с сессиями](#work-in-parallel-with-sessions).1325Прежде чем архивировать сессию, у которой есть worktree, см. [Параллельная работа с сессиями](#work-in-parallel-with-sessions).

1172 1326 

1327<h5 id="see-which-user-the-processes-run-as">

1328 Как узнать, от имени какого пользователя работают процессы

1329</h5>

1330 

1331Помощник и Claude Code работают от имени пользователя, под которым Desktop входит по SSH. Для их установки и запуска не требуется `sudo`. Чтобы проверить пользователя, выполните `ps -o user= -p` на удалённой машине с идентификатором процесса, который выводит [`pgrep`](#files-and-processes-on-the-remote-machine).

1332 

1333Программы, которые запускает Claude Code, такие как shell-команды и MCP-серверы, тоже запускаются от имени этого пользователя. Проверьте права этого пользователя на удалённой машине, включая его правила `sudo`, так же, как вы проверили бы их для человека, выполняющего там команды.

1334 

1173<h5 id="see-who-connected-to-the-remote-machine">1335<h5 id="see-who-connected-to-the-remote-machine">

1174 Как узнать, кто подключался к удалённой машине1336 Как узнать, кто подключался к удалённой машине

1175</h5>1337</h5>

1176 1338 

1177Чтобы узнать, кто подключался к удалённой машине, прочитайте лог SSH-сервера на этой машине, где вход из Desktop выглядит так же, как вход из терминала. С Desktop на macOS или Linux ожидайте запись при каждом подключении Desktop, а не по одной на каждую сессию.1339Чтобы узнать, кто подключался к удалённой машине, прочитайте лог SSH-сервера на этой машине, где вход из Desktop выглядит так же, как вход из терминала. С Desktop на macOS или Linux ожидайте запись при каждом подключении Desktop, а не по одной на каждую сессию.

1178 1340 

1341SSH-подключений Desktop нет в [метриках и событиях](/docs/ru/monitoring-usage#available-metrics-and-events) Claude Code. Чтобы узнать по ним, на какой удалённой машине выполнялась SSH-сессия, см. [Привязка телеметрии к SSH-сессиям Desktop](/docs/ru/monitoring-usage#attribute-telemetry-to-desktop-ssh-sessions). О собственных записях Desktop о его подключениях см. [Получение логов Desktop для проблемы с SSH](#get-desktops-logs-for-an-ssh-problem).

1342 

1343<h4 id="connections-that-close-before-login">

1344 Подключения, закрывающиеся до входа

1345</h4>

1346 

1347Если лог SSH-сервера показывает подключения, которые закрываются до какого-либо входа, это могут быть проверки SSH-порта со стороны Desktop. Desktop проверяет, отвечает ли машина, например после неудачного подключения к ней. Он открывает подключение к порту и сразу закрывает его, ничего не отправляя. Ожидайте одну проверку или несколько подряд, например восемь примерно за две минуты.

1348 

1349Если ничто не блокирует и не отклоняет адреса за такие подключения, с проверками Desktop ничего делать не нужно. Если адрес, с которого подключается Desktop, отклоняется или блокируется, проверьте, [не отклоняет ли адрес сам SSH-сервер](#check-whether-the-ssh-server-itself-refuses-the-address) и [не учитывает ли fail2ban проверки Desktop](#check-whether-fail2ban-counts-desktops-tests).

1350 

1351<h5 id="recognize-a-test-in-the-ssh-server’s-log">

1352 Распознавание проверки в логе SSH-сервера

1353</h5>

1354 

1355Сравните строки в своём логе со строками, которые сервер OpenSSH в Linux записывает для проверки при `LogLevel` по умолчанию, в строке таблицы для версии вашего сервера. Если приветствие сервера приходит до того, как Desktop закроет подключение, вместо этого вы можете увидеть строки из последнего столбца:

1356 

1357| Версия OpenSSH | Строки для проверки | Строки, если приветствие приходит первым |

1358| - | - | - |

1359| От 6.6 до 7.9 | Строка с `Did not receive identification string from 203.0.113.7` | Та же строка |

1360| От 8.0 до 8.2 | `error: kex_exchange_identification: Connection closed by remote host` | `error: kex_exchange_identification: read: Connection reset by peer` |

1361| От 8.3 до 9.4 | `error: kex_exchange_identification: Connection closed by remote host`, затем `Connection closed by 203.0.113.7 port 51234` | `error: kex_exchange_identification: read: Connection reset by peer`, затем `Connection reset by 203.0.113.7 port 51234` |

1362| От 9.5 до 10.2 | `Connection closed by 203.0.113.7 port 51234` | `error: kex_exchange_identification: read: Connection reset by peer`, затем `Connection reset by 203.0.113.7 port 51234` |

1363| От 10.3 до 10.5 | `Connection closed by 203.0.113.7 port 51234 [preauth]` | `error: kex_exchange_identification: read: Connection reset by peer [preauth]`, затем `Connection reset by 203.0.113.7 port 51234 [preauth]` |

1364 

1365Другие программы, которые открывают порт и закрывают его, могут оставлять такие же строки. Если в строке есть адрес, убедитесь, что это адрес, с которого подключается компьютер с Desktop.

1366 

1367В строках версий от 8.0 до 8.2 адреса нет. Чтобы его получить, задайте `LogLevel VERBOSE` в `sshd_config` и выполните `sshd -T | grep -i loglevel` от имени root. Если выводится `loglevel VERBOSE`, перезагрузите SSH-сервер. Затем найдите строку с `Connection from 203.0.113.7 port 51234` перед строкой проверки.

1368 

1369<a id="check-whether-the-ssh-server-itself-refuses-the-address" />

1370 

1371<h5 id="check-whether-the-ssh-server-itself-refuses-the-address">

1372 Проверка того, не отклоняет ли адрес сам SSH-сервер

1373</h5>

1374 

1375Если подключения отклоняются с адреса, который используют совместно многие компьютеры с Desktop, найдите в логе SSH-сервера строку, которая заканчивается так:

1376 

1377```text theme={null}

1378drop connection #0 from [203.0.113.7]:51234 on [192.0.2.10]:22 penalty: connections without attempting authentication

1379```

1380 

1381При `LogLevel` по умолчанию OpenSSH 9.8 и более поздних версий может записывать такую строку, отклоняя адрес из-за подключений, которые закрылись без попытки входа, как это делают проверки Desktop. При настройках по умолчанию после нескольких проверок такая строка сама по себе не появляется.

1382 

1383Чтобы предотвратить отклонение, задайте в `sshd_config` для `PerSourcePenaltyExemptList` адреса, с которых подключаются люди, например `PerSourcePenaltyExemptList 203.0.113.7`. Тогда сервер не применяет к этим адресам ни одного из своих штрафов, включая штрафы за неудачные входы. Чтобы проверить файл, выполните `sshd -T | grep -i persourcepenalt` от имени root. Если выводится ваш список, перезагрузите SSH-сервер.

1384 

1385<a id="check-whether-fail2ban-counts-desktops-tests" />

1386 

1387<h5 id="check-whether-fail2ban-counts-desktop’s-tests">

1388 Проверка того, не учитывает ли fail2ban проверки Desktop

1389</h5>

1390 

1391Если fail2ban версии 0.10.5 или более поздней заблокировал адрес, с которого подключается Desktop, найдите режим своего jail в `jail.conf`, `jail.local` или в `jail.d/`:

1392 

1393* **Строка `filter`, в которой режим указан в квадратных скобках**, например `filter = sshd[mode=aggressive]`: используйте этот режим.

1394* **Только стандартная строка `filter`** с `[mode=%(mode)s]`: используйте строку `mode` или `normal`, если её нет.

1395 

1396Если режим — `normal`, fail2ban не учитывает строки проверок Desktop, поэтому ищите другую причину блокировки.

1397 

1398Для другого режима скопируйте строки из своего лога в файл на удалённой машине. Копируйте каждую строку целиком, от даты до конца, и обе строки, если проверка оставляет две. Выполните там `fail2ban-regex` с этим файлом и режимом вашего jail, например `aggressive`:

1399 

1400```bash theme={null}

1401fail2ban-regex -o ip lines.log "sshd[mode=aggressive]"

1402```

1403 

1404Для каждого сбоя, который учитывает fail2ban, команда выводит адрес в отдельной строке, например `203.0.113.7`. В этом случае [предотвратите блокировку](#prevent-a-ban-by-fail2ban). Если она ничего не выводит, fail2ban в этом режиме не учитывает ни одну из этих строк, поэтому ищите другую причину блокировки.

1405 

1406<a id="prevent-a-ban-by-fail2ban" />

1407 

1408<h5 id="prevent-a-ban-by-fail2ban">

1409 Предотвращение блокировки со стороны fail2ban

1410</h5>

1411 

1412Чтобы fail2ban не блокировал адрес из-за проверок Desktop, измените одну из двух настроек jail, у каждой из которых есть своя цена:

1413 

1414* **`mode`**: задайте значение `normal` везде, где ваш jail его задаёт, — в строке `mode` или в квадратных скобках строки вида `filter = sshd[mode=aggressive]`. Вы отказываетесь от всех подсчётов, которые ведут только другие режимы, например подсчёта клиентов, которые подключаются и уходят, не пытаясь войти.

1415* **`ignoreip`**: задайте адреса, с которых подключаются люди, например `ignoreip = 203.0.113.7`. Тогда fail2ban ничего не учитывает с этих адресов, включая неудачные входы.

1416 

1179<h4 id="use-mcp-servers-set-up-on-the-remote-machine">1417<h4 id="use-mcp-servers-set-up-on-the-remote-machine">

1180 Использование MCP-серверов, настроенных на удалённой машине1418 Использование MCP-серверов, настроенных на удалённой машине

1181</h4>1419</h4>


1682 1920 

1683Для любого другого сообщения проверьте [требования к удалённой машине](#remote-machine-requirements-for-ssh-sessions).1921Для любого другого сообщения проверьте [требования к удалённой машине](#remote-machine-requirements-for-ssh-sessions).

1684 1922 

1923<a id="get-desktops-logs-for-an-ssh-problem" />

1924 

1925<h3 id="get-desktop’s-logs-for-an-ssh-problem">

1926 Получение логов Desktop для проблемы с SSH

1927</h3>

1928 

1929Файл `ssh.log`, в котором Desktop записывает свои SSH-подключения, находится в zip-архиве логов Desktop, который вы сохраняете из меню **Help**. Чтобы сохранить его, откройте **Help > Troubleshooting** и выберите пункт для вашей системы:

1930 

1931* **macOS**: **Show Logs in Finder**

1932* **Windows**: **Show Logs in File Explorer**

1933* **Linux**: **Show Logs in File Manager**

1934 

1935Просмотрите файлы перед отправкой, поскольку они могут содержать имена и другие детали из вашего окружения. `<host>` и `<user>` обозначают имена, которые заменил Desktop. Desktop заменяет не все имена, и имя SSH-хоста или пользователя может всё равно встречаться в исходном виде. Если вы отправляете zip-архив кому-либо, сообщите, какой хост дал сбой и когда, поскольку в логах он может быть не указан.

1936 

1937В zip-архиве нет лога вспомогательной программы, которую Desktop устанавливает на удалённую машину. Чтобы получить и этот лог, скопируйте `remote-server.log` из каталога вспомогательной программы в [`~/.claude/remote/run/`](#files-and-processes-on-the-remote-machine) в домашнем каталоге пользователя, который подключался. Этот файл тоже просмотрите перед отправкой.

1938 

1685<h3 id="app-won’t-quit">1939<h3 id="app-won’t-quit">

1686 Приложение не закрывается1940 Приложение не закрывается

1687</h3>1941</h3>

env-vars.md +3 −1

Details

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

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

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

228| `CLAUDE_CODE_ARTIFACT_PUBLISH_EDITS` | Установите `0`, чтобы Claude не вносил небольшие изменения в файл [артефакта](/docs/ru/artifacts#update-an-artifact) в процессе его публикации. В этом случае Claude редактирует файл своими инструментами редактирования файлов и публикует его отдельным шагом. Требуется Claude Code v2.1.300 или новее |

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

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

230| `CLAUDE_CODE_AUTO_COMPACT_WINDOW` | Задаёт [окно автосжатия](/docs/ru/model-config#set-the-auto-compact-window) в токенах, от `100000` до `1000000`. Принимает только обычное целое число, например `500000`: значение вроде `500k` читается как `500` и ограничивается минимумом в 100K. Фактическое окно также ограничено контекстным окном модели. Имеет приоритет над командой `/autocompact`, флагом `--autocompact` и настройкой `autoCompactWindow`. Значение `used_percentage` в строке состояния всегда рассчитывается относительно полного контекстного окна модели, поэтому, когда эта переменная задана, этот процент больше не показывает, когда произойдёт сжатие контекста |231| `CLAUDE_CODE_AUTO_COMPACT_WINDOW` | Задаёт [окно автосжатия](/docs/ru/model-config#set-the-auto-compact-window) в токенах, от `100000` до `1000000`. Принимает только обычное целое число, например `500000`: значение вроде `500k` читается как `500` и ограничивается минимумом в 100K. Фактическое окно также ограничено контекстным окном модели. Имеет приоритет над командой `/autocompact`, флагом `--autocompact` и настройкой `autoCompactWindow`. Значение `used_percentage` в строке состояния всегда рассчитывается относительно полного контекстного окна модели, поэтому, когда эта переменная задана, этот процент больше не показывает, когда произойдёт сжатие контекста |


332| `CLAUDE_CODE_IDLE_COMPACT_MIN_TOKENS` | Размер контекста в токенах, начиная с которого к диалогу применяется [сжатие контекста при простое](/docs/ru/settings-reference#idlecompaction) (по умолчанию: `200000`). Принимает положительное целое число; всё остальное игнорируется. Значения ниже `100000` повышаются до `100000` — наименьшего порога. Сжатие при простое по умолчанию включено для диалогов, которые соответствуют его условиям. Чтобы отключить его, установите `idleCompaction` в `false`. Требуется Claude Code v2.1.290 или новее |333| `CLAUDE_CODE_IDLE_COMPACT_MIN_TOKENS` | Размер контекста в токенах, начиная с которого к диалогу применяется [сжатие контекста при простое](/docs/ru/settings-reference#idlecompaction) (по умолчанию: `200000`). Принимает положительное целое число; всё остальное игнорируется. Значения ниже `100000` повышаются до `100000` — наименьшего порога. Сжатие при простое по умолчанию включено для диалогов, которые соответствуют его условиям. Чтобы отключить его, установите `idleCompaction` в `false`. Требуется Claude Code v2.1.290 или новее |

333| `CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS` | Сколько [субагентов](/docs/ru/sub-agents#concurrent-subagent-limit) может выполняться в одной сессии, прежде чем инструмент Agent откажется запускать ещё одного (по умолчанию: 20). Принимает положительное целое число, записанное цифрами; всё остальное игнорируется, поэтому переменная может изменить ограничение, но не отключить его. Требуется Claude Code v2.1.217 или новее |334| `CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS` | Сколько [субагентов](/docs/ru/sub-agents#concurrent-subagent-limit) может выполняться в одной сессии, прежде чем инструмент Agent откажется запускать ещё одного (по умолчанию: 20). Принимает положительное целое число, записанное цифрами; всё остальное игнорируется, поэтому переменная может изменить ограничение, но не отключить его. Требуется Claude Code v2.1.217 или новее |

334| `CLAUDE_CODE_MAX_CONTEXT_TOKENS` | Переопределяет размер контекстного окна, который Claude Code предполагает для активной модели. Начиная с v2.1.193 то, как оно применяется, зависит от того, как Claude Code определяет ID модели; см. [Исправление окна для шлюза или пользовательского ID модели](/docs/ru/model-config#correct-the-window-for-a-gateway-or-custom-model-id). Используйте это при маршрутизации через `ANTHROPIC_BASE_URL` к модели, контекстное окно которой не совпадает со встроенным размером для её имени |335| `CLAUDE_CODE_MAX_CONTEXT_TOKENS` | Переопределяет размер контекстного окна, который Claude Code предполагает для активной модели. Начиная с v2.1.193 то, как оно применяется, зависит от того, как Claude Code определяет ID модели; см. [Исправление окна для шлюза или пользовательского ID модели](/docs/ru/model-config#correct-the-window-for-a-gateway-or-custom-model-id). Используйте это при маршрутизации через `ANTHROPIC_BASE_URL` к модели, контекстное окно которой не совпадает со встроенным размером для её имени |

335| `CLAUDE_CODE_MAX_MCP_DESCRIPTION_LENGTH` | Максимальная длина в символах каждого описания инструмента MCP и инструкций каждого MCP-сервера, которые Claude Code отправляет модели. Заданное значение заменяет оба [ограничения по умолчанию](/docs/ru/mcp#for-mcp-server-authors): 4096 и 16384 для описания инструмента, который Claude загружает через поиск инструментов. Более длинный текст Claude Code обрезает. Принимает положительное целое число цифрами. Всё остальное игнорируется, и применяются значения по умолчанию. Требуется Claude Code v2.1.280 или новее |336| `CLAUDE_CODE_MAX_MCP_DESCRIPTION_LENGTH` | Максимальная длина в символах описаний инструментов MCP и инструкций MCP-серверов, которые Claude Code отправляет модели. Заданное значение заменяет оба [лимита по умолчанию](/docs/ru/mcp#for-mcp-server-authors): 4096, а также 16384 для описания инструмента, который Claude загружает через поиск инструментов. Принимает положительное целое число, записанное цифрами. Всё остальное игнорируется, и применяются значения по умолчанию. Требуется Claude Code v2.1.280 или новее |

336| `CLAUDE_CODE_MAX_OUTPUT_TOKENS` | Задаёт максимальное количество выходных токенов для большинства запросов. Значения по умолчанию и верхние пределы зависят от модели; см. [максимальное количество выходных токенов](https://platform.claude.com/docs/en/about-claude/models/overview#latest-models-comparison). Claude Code снижает значение, превышающее предел модели, до этого предела. Для ID модели, который Claude Code не может сопоставить с известной ему моделью, значение по умолчанию — 32000, а предел — 128000. Увеличение этого значения уменьшает эффективное контекстное окно, доступное до срабатывания [автосжатия](/docs/ru/costs#reduce-token-usage) |337| `CLAUDE_CODE_MAX_OUTPUT_TOKENS` | Задаёт максимальное количество выходных токенов для большинства запросов. Значения по умолчанию и верхние пределы зависят от модели; см. [максимальное количество выходных токенов](https://platform.claude.com/docs/en/about-claude/models/overview#latest-models-comparison). Claude Code снижает значение, превышающее предел модели, до этого предела. Для ID модели, который Claude Code не может сопоставить с известной ему моделью, значение по умолчанию — 32000, а предел — 128000. Увеличение этого значения уменьшает эффективное контекстное окно, доступное до срабатывания [автосжатия](/docs/ru/costs#reduce-token-usage) |

337| `CLAUDE_CODE_MAX_RETRIES` | Переопределяет количество повторных попыток для неудачных запросов к API (по умолчанию: 10). Начиная с v2.1.186 ограничено значением 15; начиная с v2.1.199 `CLAUDE_CODE_RETRY_WATCHDOG` повышает значение по умолчанию и снимает ограничение. Для автономных сессий, которым нужно пережидать более длительные сбои, вместо этого задайте `CLAUDE_CODE_RETRY_WATCHDOG` |338| `CLAUDE_CODE_MAX_RETRIES` | Переопределяет количество повторных попыток для неудачных запросов к API (по умолчанию: 10). Начиная с v2.1.186 ограничено значением 15; начиная с v2.1.199 `CLAUDE_CODE_RETRY_WATCHDOG` повышает значение по умолчанию и снимает ограничение. Для автономных сессий, которым нужно пережидать более длительные сбои, вместо этого задайте `CLAUDE_CODE_RETRY_WATCHDOG` |

338| `CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION` | Удалена в v2.1.224 и теперь ни на что не влияет. Ранее ограничивала общее количество [субагентов](/docs/ru/sub-agents), которых Claude мог запустить с помощью инструмента Agent за одну сессию (по умолчанию: 200); запуск сверх ограничения завершался ошибкой `Subagent spawn limit reached`. [Ограничение на количество одновременных субагентов](/docs/ru/sub-agents#concurrent-subagent-limit) и [ограничение глубины](/docs/ru/sub-agents#let-subagents-spawn-their-own-subagents) по-прежнему действуют |339| `CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION` | Удалена в v2.1.224 и теперь ни на что не влияет. Ранее ограничивала общее количество [субагентов](/docs/ru/sub-agents), которых Claude мог запустить с помощью инструмента Agent за одну сессию (по умолчанию: 200); запуск сверх ограничения завершался ошибкой `Subagent spawn limit reached`. [Ограничение на количество одновременных субагентов](/docs/ru/sub-agents#concurrent-subagent-limit) и [ограничение глубины](/docs/ru/sub-agents#let-subagents-spawn-their-own-subagents) по-прежнему действуют |


598* Запустить [`/skill-doctor`](/docs/ru/skills#find-unused-skills) или открыть его отчёт на вкладке **Stats** в `/plugin`599* Запустить [`/skill-doctor`](/docs/ru/skills#find-unused-skills) или открыть его отчёт на вкладке **Stats** в `/plugin`

599* Синхронизировать [скиллы](/docs/ru/skills#where-synced-skills-load) и [плагины](/docs/ru/plugins/loading#synced-plugins), включённые для вашей учётной записи claude.ai, с вашими сессиями в терминале600* Синхронизировать [скиллы](/docs/ru/skills#where-synced-skills-load) и [плагины](/docs/ru/plugins/loading#synced-plugins), включённые для вашей учётной записи claude.ai, с вашими сессиями в терминале

600* Включить [мод You should know](/docs/ru/interactive-mode#you-should-know-suggestions)601* Включить [мод You should know](/docs/ru/interactive-mode#you-should-know-suggestions)

602* Видеть, что [мод](/docs/ru/plugins/mods/overview#where-mods-run) отображает в панели чата расширения VS Code; хуки мода при этом по-прежнему выполняются

601* Использовать [инструмент-советник](/docs/ru/advisor#requirements)603* Использовать [инструмент-советник](/docs/ru/advisor#requirements)

602* Читать [комментарии к артефакту](/docs/ru/artifacts#collect-comments-on-an-artifact) или отвечать на них604* Читать [комментарии к артефакту](/docs/ru/artifacts#collect-comments-on-an-artifact) или отвечать на них

603* Поручать Claude читать [публичный артефакт другой организации](/docs/ru/artifacts#read-an-artifact-shared-with-you)605* Поручать Claude читать [публичный артефакт другой организации](/docs/ru/artifacts#read-an-artifact-shared-with-you)

errors.md +201 −9

Details

72| `Claude.ai login was rejected — run /login, then /remote-control` | [Authentication](#remote-control-couldnt-refresh-your-login) |72| `Claude.ai login was rejected — run /login, then /remote-control` | [Authentication](#remote-control-couldnt-refresh-your-login) |

73| `OAuth token unavailable — run /login to restore Remote Control` | [Authentication](#remote-control-couldnt-refresh-your-login) |73| `OAuth token unavailable — run /login to restore Remote Control` | [Authentication](#remote-control-couldnt-refresh-your-login) |

74| `Signed out of Claude — run /login, then /remote-control` | [Authentication](#remote-control-couldnt-refresh-your-login) |74| `Signed out of Claude — run /login, then /remote-control` | [Authentication](#remote-control-couldnt-refresh-your-login) |

75| `Remote Control could not renew this computer's connection` | [Authentication](#remote-control-could-not-renew-this-computers-connection) |

75| `signed-in claude.ai account or organization changed on this machine` | [Authentication](#remote-control-stopped-because-the-signed-in-account-changed) |76| `signed-in claude.ai account or organization changed on this machine` | [Authentication](#remote-control-stopped-because-the-signed-in-account-changed) |

76| `Remote Control stopped — the app running this session is now signed in to a different Claude account` | [Authentication](#remote-control-stopped-because-the-app-running-the-session-signed-out-or-switched-accounts) |77| `Remote Control stopped — the app running this session is now signed in to a different Claude account` | [Authentication](#remote-control-stopped-because-the-app-running-the-session-signed-out-or-switched-accounts) |

77| `Remote Control stopped — the app running this session is signed out of Claude` | [Authentication](#remote-control-stopped-because-the-app-running-the-session-signed-out-or-switched-accounts) |78| `Remote Control stopped — the app running this session is signed out of Claude` | [Authentication](#remote-control-stopped-because-the-app-running-the-session-signed-out-or-switched-accounts) |


153| `Request too large` | [Request errors](#request-too-large) |154| `Request too large` | [Request errors](#request-too-large) |

154| `Request too large for the API's 32MB request limit` | [Request errors](#request-too-large) |155| `Request too large for the API's 32MB request limit` | [Request errors](#request-too-large) |

155| `Image was too large` | [Request errors](#image-was-too-large) |156| `Image was too large` | [Request errors](#image-was-too-large) |

157| `API Error: an image in the conversation could not be processed and was removed` | [Request errors](#image-was-too-large) |

156| `Unable to resize image` | [Request errors](#unable-to-resize-image) |158| `Unable to resize image` | [Request errors](#unable-to-resize-image) |

157| `Request rejected as unprocessable by the model` | [Request errors](#request-rejected-as-unprocessable-by-the-model) |159| `Request rejected as unprocessable by the model` | [Request errors](#request-rejected-as-unprocessable-by-the-model) |

158| `PDF too large` / `PDF is password protected` / `pdftoppm is not installed` | [Request errors](#pdf-errors) |160| `PDF too large` / `PDF is password protected` / `pdftoppm is not installed` | [Request errors](#pdf-errors) |


179| `Effort '<level>' isn't available with thinking turned off on this model` | [Request errors](#effort-isnt-available-with-thinking-turned-off) |181| `Effort '<level>' isn't available with thinking turned off on this model` | [Request errors](#effort-isnt-available-with-thinking-turned-off) |

180| `effort '<level>' is not supported when thinking is disabled` | [Request errors](#effort-isnt-available-with-thinking-turned-off) |182| `effort '<level>' is not supported when thinking is disabled` | [Request errors](#effort-isnt-available-with-thinking-turned-off) |

181| `max_tokens must be greater than thinking.budget_tokens` | [Request errors](#thinking-budget-exceeds-output-limit) |183| `max_tokens must be greater than thinking.budget_tokens` | [Request errors](#thinking-budget-exceeds-output-limit) |

184| `Claude's response exceeded the ... output token maximum` | [Request errors](#response-exceeded-the-output-token-maximum) |

182| `API Error: 400 due to tool use concurrency issues` | [Request errors](#tool-use-or-thinking-block-mismatch) |185| `API Error: 400 due to tool use concurrency issues` | [Request errors](#tool-use-or-thinking-block-mismatch) |

183| `API Error: 400 orphaned tool_result in conversation history` | [Request errors](#tool-use-or-thinking-block-mismatch) |186| `API Error: 400 orphaned tool_result in conversation history` | [Request errors](#tool-use-or-thinking-block-mismatch) |

184| `API Error: 400 duplicate tool_use ID in conversation history` | [Request errors](#tool-use-or-thinking-block-mismatch) |187| `API Error: 400 duplicate tool_use ID in conversation history` | [Request errors](#tool-use-or-thinking-block-mismatch) |


199| `The connection dropped while downloading the update` | [Troubleshoot installation and login](/docs/ru/troubleshoot-install#the-connection-dropped-while-downloading-the-update) |202| `The connection dropped while downloading the update` | [Troubleshoot installation and login](/docs/ru/troubleshoot-install#the-connection-dropped-while-downloading-the-update) |

200| `Download timed out: exceeded the total deadline` | [Troubleshoot installation and login](/docs/ru/troubleshoot-install#the-connection-dropped-while-downloading-the-update) |203| `Download timed out: exceeded the total deadline` | [Troubleshoot installation and login](/docs/ru/troubleshoot-install#the-connection-dropped-while-downloading-the-update) |

201| `--bg and --print conflict` | [Command-line errors](#conflict-between-bg-and-print) |204| `--bg and --print conflict` | [Command-line errors](#conflict-between-bg-and-print) |

205| `Couldn't tell whether --bg is a flag or text here, so nothing was started` | [Command-line errors](#couldnt-tell-whether-bg-is-a-flag-or-text) |

202| `Error: Cannot use both --append-subagent-system-prompt and --append-subagent-system-prompt-file. Please use only one.` | [Command-line errors](#conflict-between-a-system-prompt-flag-and-its-file-form) |206| `Error: Cannot use both --append-subagent-system-prompt and --append-subagent-system-prompt-file. Please use only one.` | [Command-line errors](#conflict-between-a-system-prompt-flag-and-its-file-form) |

203| `Cloud sessions cannot be created from a --restricted session` | [Command-line errors](#cloud-sessions-cannot-be-created-from-a-restricted-session) |207| `Cloud sessions cannot be created from a --restricted session` | [Command-line errors](#cloud-sessions-cannot-be-created-from-a-restricted-session) |

204| `Cloud sessions are disabled by your organization's policy` | [Command-line errors](#cloud-sessions-are-disabled-by-your-organizations-policy) |208| `Cloud sessions are disabled by your organization's policy` | [Command-line errors](#cloud-sessions-are-disabled-by-your-organizations-policy) |


217| `couldn't be resolved to a real location, so its skills, commands, and agents weren't loaded` | [Command-line errors](#directory-couldnt-be-resolved-to-a-real-location) |221| `couldn't be resolved to a real location, so its skills, commands, and agents weren't loaded` | [Command-line errors](#directory-couldnt-be-resolved-to-a-real-location) |

218| `Error: Workspace not trusted` when starting Remote Control | [Command-line errors](#workspace-not-trusted-when-starting-remote-control) |222| `Error: Workspace not trusted` when starting Remote Control | [Command-line errors](#workspace-not-trusted-when-starting-remote-control) |

219| `` `<flag>` before `remote-control` is not carried over to the sessions Remote Control starts `` | [Command-line errors](#not-carried-over-to-the-sessions-remote-control-starts) |223| `` `<flag>` before `remote-control` is not carried over to the sessions Remote Control starts `` | [Command-line errors](#not-carried-over-to-the-sessions-remote-control-starts) |

224| `--sandbox is not supported by claude remote-control` / `--no-sandbox is not supported by claude remote-control` | [Command-line errors](#sandbox-is-not-supported-by-claude-remote-control) |

220| `` `claude import` is not yet available in this build `` | [Command-line errors](#claude-import-is-not-yet-available-in-this-build) |225| `` `claude import` is not yet available in this build `` | [Command-line errors](#claude-import-is-not-yet-available-in-this-build) |

221| `Could not read Claude Code config` | [Command-line errors](#could-not-read-claude-code-config) |226| `Could not read Claude Code config` | [Command-line errors](#could-not-read-claude-code-config) |

222| `Could not import <server>: <reason>` | [Command-line errors](#could-not-import-a-server-from-claude-desktop) |227| `Could not import <server>: <reason>` | [Command-line errors](#could-not-import-a-server-from-claude-desktop) |


233| `Shell command failed for pattern "..."`, from `/security-review` or any skill that injects dynamic context | [Command-line errors](#security-review-fails-without-origin-head) |238| `Shell command failed for pattern "..."`, from `/security-review` or any skill that injects dynamic context | [Command-line errors](#security-review-fails-without-origin-head) |

234| `Shell command permission check failed for pattern "..."`, from a skill that injects dynamic context | [Command-line errors](#security-review-fails-without-origin-head) |239| `Shell command permission check failed for pattern "..."`, from a skill that injects dynamic context | [Command-line errors](#security-review-fails-without-origin-head) |

235| ``Skill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found`` | [Command-line errors](#security-review-fails-without-origin-head) |240| ``Skill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found`` | [Command-line errors](#security-review-fails-without-origin-head) |

241| `No shell command in <name> was run, because the <tool> tool does not accept one of them` | [Command-line errors](#no-shell-command-was-run) |

236| `Input must be provided either through stdin or as a prompt argument when using --print` | [Command-line errors](#input-must-be-provided-when-using-print) |242| `Input must be provided either through stdin or as a prompt argument when using --print` | [Command-line errors](#input-must-be-provided-when-using-print) |

237| `Claude Code can't read the keyboard here: stdin is not a terminal` | [Command-line errors](#claude-code-cant-read-the-keyboard-here) |243| `Claude Code can't read the keyboard here: stdin is not a terminal` | [Command-line errors](#claude-code-cant-read-the-keyboard-here) |

238| `Error: Input contained only whitespace` | [Command-line errors](#input-contained-only-whitespace) |244| `Error: Input contained only whitespace` | [Command-line errors](#input-contained-only-whitespace) |


367| `Claude Code exited after an unrecoverable interface error (...)` | [Configuration warnings](#exited-after-an-unrecoverable-interface-error) |373| `Claude Code exited after an unrecoverable interface error (...)` | [Configuration warnings](#exited-after-an-unrecoverable-interface-error) |

368| `Agent descriptions are over the 15.0k-token limit` | [Configuration warnings](#agent-descriptions-are-over-the-15000-token-limit) |374| `Agent descriptions are over the 15.0k-token limit` | [Configuration warnings](#agent-descriptions-are-over-the-15000-token-limit) |

369| `hook needs quotes around a path with a space` | [Configuration warnings](#hook-needs-quotes-around-a-path-with-a-space) |375| `hook needs quotes around a path with a space` | [Configuration warnings](#hook-needs-quotes-around-a-path-with-a-space) |

376| `Instruction file not loaded` | [Configuration warnings](#instruction-file-not-loaded) |

370| `Not loaded: rename <path>, then restart — its name uses "<name>", a name reserved for the skills synced from your claude.ai account` | [Configuration warnings](#a-skill-command-or-workflow-wasnt-loaded-because-its-name-is-reserved) |377| `Not loaded: rename <path>, then restart — its name uses "<name>", a name reserved for the skills synced from your claude.ai account` | [Configuration warnings](#a-skill-command-or-workflow-wasnt-loaded-because-its-name-is-reserved) |

371| `N skill or command names refused: run with --debug to see which ([names]), rename, then restart` | [Configuration warnings](#skill-or-command-name-refused) |378| `N skill or command names refused: run with --debug to see which ([names]), rename, then restart` | [Configuration warnings](#skill-or-command-name-refused) |

372| `Ignoring N permissions.allow entries from ... this workspace has not been trusted` | [Configuration warnings](#workspace-has-not-been-trusted) |379| `Ignoring N permissions.allow entries from ... this workspace has not been trusted` | [Configuration warnings](#workspace-has-not-been-trusted) |


377| `Your organization's managed settings allow Claude Code to use: <providers>` | [Configuration warnings](#managed-settings-dont-allow-this-api-provider) |384| `Your organization's managed settings allow Claude Code to use: <providers>` | [Configuration warnings](#managed-settings-dont-allow-this-api-provider) |

378| `Your organization's managed settings allow Claude Code to use no API provider at all` | [Configuration warnings](#managed-settings-dont-allow-this-api-provider) |385| `Your organization's managed settings allow Claude Code to use no API provider at all` | [Configuration warnings](#managed-settings-dont-allow-this-api-provider) |

379| `MCP server <name> is blocked by enterprise managed policy` | [Configuration warnings](#mcp-server-is-blocked-by-enterprise-managed-policy) |386| `MCP server <name> is blocked by enterprise managed policy` | [Configuration warnings](#mcp-server-is-blocked-by-enterprise-managed-policy) |

387| `"<name>" is a reserved MCP server name and was not loaded` | [Configuration warnings](#mcp-server-name-is-reserved) |

380| `Managed settings document could not be parsed as a JSON object; none of its settings are in effect. Fix or remove it.` | [Configuration warnings](#managed-settings-document-could-not-be-parsed) |388| `Managed settings document could not be parsed as a JSON object; none of its settings are in effect. Fix or remove it.` | [Configuration warnings](#managed-settings-document-could-not-be-parsed) |

381| `Managed settings drop-in directory could not be read` | [Configuration warnings](#managed-settings-document-could-not-be-parsed) |389| `Managed settings drop-in directory could not be read` | [Configuration warnings](#managed-settings-document-could-not-be-parsed) |

382| `Unable to read managed policy settings` | [Configuration warnings](#unable-to-read-managed-policy-settings) |390| `Unable to read managed policy settings` | [Configuration warnings](#unable-to-read-managed-policy-settings) |

391| `Managed settings contain invalid entries, including PreToolUse/PermissionRequest hooks that are NOT loaded; fix or remove each entry:` | [Configuration warnings](#managed-settings-hooks-not-loaded) |

383| `otelHeadersHelper failed; telemetry is not being exported. See /status: ...` | [Configuration warnings](#otelheadershelper-failed) |392| `otelHeadersHelper failed; telemetry is not being exported. See /status: ...` | [Configuration warnings](#otelheadershelper-failed) |

384| `"crossSessionInbound" must be one of "accept", "hold", "refuse"` | [Configuration warnings](#crosssessioninbound-must-be-one-of-accept-hold-refuse) |393| `"crossSessionInbound" must be one of "accept", "hold", "refuse"` | [Configuration warnings](#crosssessioninbound-must-be-one-of-accept-hold-refuse) |

385| `API Error: ANTHROPIC_FOUNDRY_RESOURCE must be a Foundry resource name` | [Configuration warnings](#anthropic-foundry-resource-must-be-a-foundry-resource-name) |394| `API Error: ANTHROPIC_FOUNDRY_RESOURCE must be a Foundry resource name` | [Configuration warnings](#anthropic-foundry-resource-must-be-a-foundry-resource-name) |


389| `... has a wildcard before the rest of the command` | [Configuration warnings](#has-a-wildcard-before-the-rest-of-the-command) |398| `... has a wildcard before the rest of the command` | [Configuration warnings](#has-a-wildcard-before-the-rest-of-the-command) |

390| `Denying Bash also turns off the PowerShell tool, so Claude has neither` | [Configuration warnings](#denying-bash-also-turns-off-the-powershell-tool) |399| `Denying Bash also turns off the PowerShell tool, so Claude has neither` | [Configuration warnings](#denying-bash-also-turns-off-the-powershell-tool) |

391| `CLAUDE_CODE_DISABLE_1M_CONTEXT is set, but the 200K limit isn't enforced` | [Configuration warnings](#the-200k-limit-isnt-enforced) |400| `CLAUDE_CODE_DISABLE_1M_CONTEXT is set, but the 200K limit isn't enforced` | [Configuration warnings](#the-200k-limit-isnt-enforced) |

401| `Model "<model>" isn't recognized · context assumed to be 200k tokens` | [Correct the window for a gateway or custom model ID](/docs/ru/model-config#correct-the-window-for-a-gateway-or-custom-model-id) |

402| `Claude Code doesn't recognize the model "<model>", so it assumes a context window of 200k tokens` | [Correct the window for a gateway or custom model ID](/docs/ru/model-config#correct-the-window-for-a-gateway-or-custom-model-id) |

392| `[claude-code:unrecognized_model]` | [Configuration warnings](#unrecognized-model-id-on-a-request) |403| `[claude-code:unrecognized_model]` | [Configuration warnings](#unrecognized-model-id-on-a-request) |

404| `is ignored — managed settings set allowManagedReadPathsOnly` / `is ignored — managed settings set allowManagedDomainsOnly` | [Configuration warnings](#sandbox-allow-entries-are-ignored-under-a-managed-lock) |

393| `Stale sandbox mask files left by a killed session` | [Configuration warnings](#stale-sandbox-mask-files-left-by-a-killed-session) |405| `Stale sandbox mask files left by a killed session` | [Configuration warnings](#stale-sandbox-mask-files-left-by-a-killed-session) |

394| Responses seem lower quality than usual | [Response quality](#responses-seem-lower-quality-than-usual) |406| Responses seem lower quality than usual | [Response quality](#responses-seem-lower-quality-than-usual) |

395 407 


1209 1221 

1210До версии v2.1.238 Claude Code сообщал о случаях, которые теперь отображаются как `Signed out of Claude`, как `JWT refresh failed: no OAuth token — run /login`, и останавливал Remote Control с сообщением `Claude.ai login expired — run /login to restore Remote Control`, как только одна попытка обновления входа оставалась без ответа.1222До версии v2.1.238 Claude Code сообщал о случаях, которые теперь отображаются как `Signed out of Claude`, как `JWT refresh failed: no OAuth token — run /login`, и останавливал Remote Control с сообщением `Claude.ai login expired — run /login to restore Remote Control`, как только одна попытка обновления входа оставалась без ответа.

1211 1223 

1224<h3 id="remote-control-could-not-renew-this-computers-connection">

1225 Remote Control could not renew this computer's connection

1226</h3>

1227 

1228Это предупреждение появляется в терминале, где работает [`claude remote-control`](/docs/ru/remote-control#start-a-remote-control-session), когда сервер не может использовать ваш вход claude.ai, чтобы обновить учётные данные подключения до истечения их срока действия. Последнее предложение предупреждения сообщает, сколько ещё будут действовать текущие учётные данные или что их срок уже истёк:

1229 

1230```text theme={null}

1231Remote Control could not renew this computer's connection: claude.ai did not accept the sign-in it uses. Run `claude /login` to sign in again. The connection keeps working for about 26 hours; if it still cannot sign in then, it stops.

1232```

1233 

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

1235 

1236* Если предупреждение предлагает выполнить `claude /login`, откройте другой терминал на компьютере, где работает сервер, выполните там `claude /login` и войдите с учётной записью claude.ai

1237* Если сервер по-прежнему не может войти после истечения срока действия учётных данных подключения, он выводит ошибку, содержащую `Poll: Authentication failed (401)`, и останавливается. Войдите снова, как указано во втором предложении предупреждения, затем снова выполните `claude remote-control` в терминале, где сервер остановился.

1238 

1212<h3 id="remote-control-stopped-because-the-signed-in-account-changed">1239<h3 id="remote-control-stopped-because-the-signed-in-account-changed">

1213 Remote Control остановлен, потому что сменилась учётная запись, в которую выполнен вход1240 Remote Control остановлен, потому что сменилась учётная запись, в которую выполнен вход

1214</h3>1241</h3>


2279* Отключите неиспользуемые MCP-серверы с помощью `/mcp disable <name>`, чтобы убрать их определения инструментов из контекста2306* Отключите неиспользуемые MCP-серверы с помощью `/mcp disable <name>`, чтобы убрать их определения инструментов из контекста

2280* Сократите большие файлы памяти `CLAUDE.md` или перенесите инструкции в [правила, привязанные к путям](/docs/ru/memory#path-specific-rules), которые загружаются только при необходимости2307* Сократите большие файлы памяти `CLAUDE.md` или перенесите инструкции в [правила, привязанные к путям](/docs/ru/memory#path-specific-rules), которые загружаются только при необходимости

2281* Автосжатие включено по умолчанию и обычно предотвращает эту ошибку. Если вы отключили его в `/config` или с помощью [`DISABLE_AUTO_COMPACT`](/docs/ru/env-vars), включите его снова. Если вы оставляете его отключённым, выполняйте `/compact` самостоятельно до заполнения окна.2308* Автосжатие включено по умолчанию и обычно предотвращает эту ошибку. Если вы отключили его в `/config` или с помощью [`DISABLE_AUTO_COMPACT`](/docs/ru/env-vars), включите его снова. Если вы оставляете его отключённым, выполняйте `/compact` самостоятельно до заполнения окна.

2309* Если ошибка появляется около 200K токенов на модели, которая принимает больше, одна из причин — идентификатор модели, который Claude Code не распознаёт. Для такого идентификатора Claude Code предполагает окно в 200K, поэтому, чтобы продолжить работу за этой границей, [укажите реальное контекстное окно модели](/docs/ru/model-config#correct-the-window-for-a-gateway-or-custom-model-id).

2282 2310 

2283Интерактивную демонстрацию того, как заполняется контекст, см. в разделе [Explore the context window](/docs/ru/context-window).2311Интерактивную демонстрацию того, как заполняется контекст, см. в разделе [Explore the context window](/docs/ru/context-window).

2284 2312 


2340```text theme={null}2368```text theme={null}

2341Image was too large. Double press esc to go back and try again with a smaller image.2369Image was too large. Double press esc to go back and try again with a smaller image.

2342API Error: 400 ... image dimensions exceed max allowed size2370API Error: 400 ... image dimensions exceed max allowed size

2371API Error: an image in the conversation could not be processed and was removed.

2343```2372```

2344 2373 

2345Claude Code заменяет необрабатываемое изображение текстовым заполнителем и повторяет попытку, поэтому последующие сообщения проходят успешно. В версиях до 2.1.142 вставленное изображение могло оставаться в диалоге и вызывать ту же ошибку на каждом последующем сообщении. Чтобы восстановиться в этих версиях, дважды нажмите Esc и вернитесь до хода, на котором было добавлено изображение.2374Строка `could not be processed and was removed` означает, что API отказался принять изображение в диалоге, например изображение, превышающее ограничения по размеру или разрешению.

2375 

2376Если одна из этих ошибок продолжает возвращаться, обновите Claude Code. В старых версиях ошибка изображения могла повторяться, например, по таким причинам:

2377 

2378* До v2.1.299 в длинном диалоге с большим количеством изображений Claude Code мог удалить последние прикреплённые вами изображения вместо того, которое превышало лимит. Строка `was removed` тогда повторялась на каждом ходе, и Claude не видел ваших новых изображений.

2379* До v2.1.299 в VS Code, приложении Desktop и Agent SDK изображения, прикреплённые во время работы Claude, не проходили изменение размера, которое применяется к другим прикреплённым изображениям. Они попадали в API в исходном размере, что приводило к повторяющимся ошибкам изображений в длинных диалогах.

2380* До v2.1.166 вставленное изображение могло оставаться в диалоге, и та же ошибка затем повторялась в каждом последующем сообщении

2346 2381 

2347**Что делать:**2382**Что делать:**

2348 2383 


2800* Увеличьте [`CLAUDE_CODE_MAX_OUTPUT_TOKENS`](/docs/ru/env-vars) выше бюджета мышления2835* Увеличьте [`CLAUDE_CODE_MAX_OUTPUT_TOKENS`](/docs/ru/env-vars) выше бюджета мышления

2801* О том, как бюджет связан с длиной вывода, см. раздел [Расширенное мышление](/docs/ru/model-config#extended-thinking)2836* О том, как бюджет связан с длиной вывода, см. раздел [Расширенное мышление](/docs/ru/model-config#extended-thinking)

2802 2837 

2838<h3 id="response-exceeded-the-output-token-maximum">

2839 Response exceeded the output token maximum

2840</h3>

2841 

2842Ответ Claude достиг максимального количества выходных токенов, допустимого запросом, и был на этом обрезан:

2843 

2844```text theme={null}

2845API Error: Claude's response exceeded the ... output token maximum. To configure this behavior, set the CLAUDE_CODE_MAX_OUTPUT_TOKENS environment variable.

2846API Error: Claude's response exceeded the 64000 output token maximum for a request sent without streaming. The CLAUDE_CODE_MAX_OUTPUT_TOKENS environment variable cannot raise this limit.

2847```

2848 

2849Форма, упоминающая `a request sent without streaming`, означает, что потоковый запрос завершился неудачей и Claude Code повторно отправил его без потоковой передачи, что ограничивает ответ 64 000 выходных токенов. До v2.1.299 ответ, обрезанный в таком повторно отправленном запросе, завершал ход без этого сообщения, как если бы ответ был полным.

2850 

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

2852 

2853* Если Claude успел написать какой-то текст до обрезки ответа, в интерактивной сессии ответьте `continue`, чтобы запросить продолжение. Этот текст остаётся в диалоге.

2854* Если сообщение предлагает задать `CLAUDE_CODE_MAX_OUTPUT_TOKENS`, см. [`CLAUDE_CODE_MAX_OUTPUT_TOKENS`](/docs/ru/env-vars) о том, как ограничивается значение, и [Установка переменных окружения](/docs/ru/env-vars#set-environment-variables) о том, где его задать

2855* Чтобы каждый ответ укладывался в лимит, попросите Claude выдавать результат меньшими частями, например по одному файлу или одному разделу за ответ

2856 

2803<h3 id="tool-use-or-thinking-block-mismatch">2857<h3 id="tool-use-or-thinking-block-mismatch">

2804 Tool use or thinking block mismatch2858 Tool use or thinking block mismatch

2805</h3>2859</h3>


2936Меры безопасности модели пометили содержимое диалога как относящееся к теме кибербезопасности. Сообщение называет модель, пометившую запрос:2990Меры безопасности модели пометили содержимое диалога как относящееся к теме кибербезопасности. Сообщение называет модель, пометившую запрос:

2937 2991 

2938```text theme={null}2992```text theme={null}

2939API Error: Opus 4.8's safeguards flagged this message. Our intentionally broad safeguards allow us to deliver more capabilities faster, but can sometimes flag legitimate cybersecurity work. Apply to the Cyber Verification Program to reduce these interruptions. Send feedback with /feedback or learn more: https://support.claude.com/en/articles/14604842-real-time-cyber-safeguards-on-claude2993API Error: Opus 4.8's safeguards flagged this message. Our intentionally broad safeguards allow us to deliver more capabilities faster, but can sometimes flag legitimate cybersecurity work. Send feedback with /feedback or learn more: https://support.claude.com/en/articles/14604842-real-time-cyber-safeguards-on-claude

2940```2994```

2941 2995 

2942Если сообщение содержит строку `` Details: `[reasoning_extraction]` ``, см. раздел [Safeguards flagged a request for Claude's reasoning](#safeguards-flagged-a-request-for-claudes-reasoning).2996Если сообщение содержит строку `` Details: `[reasoning_extraction]` ``, см. раздел [Safeguards flagged a request for Claude's reasoning](#safeguards-flagged-a-request-for-claudes-reasoning).


2945 2999 

2946В [Amazon Bedrock](/docs/ru/amazon-bedrock), [Google Cloud's Agent Platform](/docs/ru/google-vertex-ai) и [Microsoft Foundry](/docs/ru/microsoft-foundry) пометка кибербезопасности вместо этого приводит к сообщению [Usage Policy refusal](#usage-policy-refusal).3000В [Amazon Bedrock](/docs/ru/amazon-bedrock), [Google Cloud's Agent Platform](/docs/ru/google-vertex-ai) и [Microsoft Foundry](/docs/ru/microsoft-foundry) пометка кибербезопасности вместо этого приводит к сообщению [Usage Policy refusal](#usage-policy-refusal).

2947 3001 

2948Сама защита работает на стороне сервера и существовала до v2.1.203; с тех пор в клиентских выпусках менялась только формулировка сообщения.

2949С v2.1.203 по v2.1.218 сообщение звучало как `<model> has safety measures that flagged this message for a cybersecurity topic. To learn about the Cyber Verification Program and apply for access, visit our help center:`, за которым следовала та же ссылка на справочный центр, а интерактивные сессии добавляли `If you were not engaging in a cybersecurity topic, please send feedback via /feedback.`

2950До версии 2.1.203 оно звучало как `<model>'s safeguards flagged this message for a cybersecurity topic. If your work requires this access, you can apply for an exemption:`, за которым следовала ссылка на форму для исключения.

2951 

2952**Что делать:**3002**Что делать:**

2953 3003 

2954* Если ваша работа требует такого содержимого, подайте заявку на доступ через [Cyber Verification Program](https://support.claude.com/en/articles/14604842-real-time-cyber-safeguards-on-claude)3004* Если ваша работа требует такого содержимого, подайте заявку на доступ через [Cyber Verification Program](https://support.claude.com/en/articles/14604842-real-time-cyber-safeguards-on-claude)

2955* Если ваш запрос не касался кибербезопасности, выполните `/feedback`, чтобы сообщить о ложном срабатывании3005* Если ваш запрос не касался кибербезопасности, выполните `/feedback`, чтобы сообщить о ложном срабатывании

2956* Чтобы продолжить работу в той же сессии, дважды нажмите Esc или выполните `/rewind`, чтобы вернуться к чекпоинту до хода, вызвавшего пометку, затем выберите другой подход. См. раздел [Чекпоинты](/docs/ru/checkpointing).3006* Чтобы продолжить работу в той же сессии, дважды нажмите Esc или выполните `/rewind`, чтобы вернуться к чекпоинту до хода, вызвавшего пометку, затем выберите другой подход. См. раздел [Чекпоинты](/docs/ru/checkpointing).

2957 3007 

3008Если видимое вами сообщение сформулировано как одно из приведённых ниже, это тот же флаг в более ранней версии Claude Code:

3009 

3010* В версиях с v2.1.219 по v2.1.296 сообщение также могло содержать `Apply to the Cyber Verification Program to reduce these interruptions.` перед заключительным предложением

3011* В версиях с v2.1.203 по v2.1.218 сообщение гласило `<model> has safety measures that flagged this message for a cybersecurity topic. To learn about the Cyber Verification Program and apply for access, visit our help center:`, после чего следовала та же ссылка на справочный центр. В интерактивных сессиях далее шло `If you were not engaging in a cybersecurity topic, please send feedback via /feedback.`

3012* До v2.1.203 оно гласило `<model>'s safeguards flagged this message for a cybersecurity topic. If your work requires this access, you can apply for an exemption:`, после чего следовала ссылка на форму запроса исключения

3013 

2958<h3 id="safeguards-flagged-a-request-for-claudes-reasoning">3014<h3 id="safeguards-flagged-a-request-for-claudes-reasoning">

2959 Safeguards flagged a request for Claude's reasoning3015 Safeguards flagged a request for Claude's reasoning

2960</h3>3016</h3>


3012* Уберите `-p` или `--print`. `--bg` принимает промпт как позиционный аргумент, поэтому `claude --bg "<task>"` — это полная команда. См. [Запуск новых агентов из оболочки](/docs/ru/agent-view#from-your-shell).3068* Уберите `-p` или `--print`. `--bg` принимает промпт как позиционный аргумент, поэтому `claude --bg "<task>"` — это полная команда. См. [Запуск новых агентов из оболочки](/docs/ru/agent-view#from-your-shell).

3013* Чтобы выполнить промпт неинтерактивно и вывести результат вместо создания фоновой сессии, уберите `--bg` и выполните `claude -p "<task>"`3069* Чтобы выполнить промпт неинтерактивно и вывести результат вместо создания фоновой сессии, уберите `--bg` и выполните `claude -p "<task>"`

3014 3070 

3071<h3 id="couldnt-tell-whether-bg-is-a-flag-or-text">

3072 Couldn't tell whether `--bg` is a flag or text

3073</h3>

3074 

3075Вы запустили `claude` с `--bg` или `--background` в такой позиции, где Claude Code не смог определить, имели ли вы в виду флаг фонового режима или текст. Команда ничего не запустила, вывела эту строку и завершилась с кодом выхода 1:

3076 

3077```text theme={null}

3078Couldn't tell whether --bg is a flag or text here, so nothing was started. To start a background session put it first: claude --bg <prompt>

3079```

3080 

3081Если вы ввели `--background`, в строке вместо этого будет указан `--background`.

3082 

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

3084 

3085* Чтобы запустить [фоновую сессию](/docs/ru/agent-view#from-your-shell), снова выполните команду в оболочке, поставив флаг первым: `claude --bg --name nightly-audit "<task>"`

3086 

3015<h3 id="conflict-between-a-system-prompt-flag-and-its-file-form">3087<h3 id="conflict-between-a-system-prompt-flag-and-its-file-form">

3016 Конфликт между флагом системного промпта и его файловой формой3088 Конфликт между флагом системного промпта и его файловой формой

3017</h3>3089</h3>


3296 3368 

3297До v2.1.248 `claude remote-control` не принимал собственные флаги, если первым шёл глобальный флаг, и команда завершалась с ошибкой `unknown option`.3369До v2.1.248 `claude remote-control` не принимал собственные флаги, если первым шёл глобальный флаг, и команда завершалась с ошибкой `unknown option`.

3298 3370 

3371<h3 id="sandbox-is-not-supported-by-claude-remote-control">

3372 `--sandbox` or `--no-sandbox` is not supported by claude remote-control

3373</h3>

3374 

3375Эта ошибка означает, что команда, запускающая ваш сервер [Remote Control](/docs/ru/remote-control), передаёт `--sandbox` или `--no-sandbox` после `remote-control`, а `claude remote-control` не принимает ни один из этих флагов. Сервер завершается с кодом выхода 1 вместо запуска:

3376 

3377```text theme={null}

3378Error: --sandbox is not supported by claude remote-control. The flag had no effect and was removed. To sandbox sessions, set sandbox.enabled to true in settings.

3379Error: --no-sandbox is not supported by claude remote-control. The flag had no effect and was removed. Remove it from the command.

3380```

3381 

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

3383 

3384* Уберите флаг из команды, в том числе из скрипта или определения сервиса, которые запускают сервер за вас, затем выполните её снова

3385* Чтобы изолировать в песочнице сессии, запускаемые сервером, включите [изоляцию в песочнице](/docs/ru/sandboxing), задав [`sandbox.enabled`](/docs/ru/settings-reference#sandbox-enabled) значение `true` в [файле настроек](/docs/ru/settings#where-settings-live)

3386 

3387Оба флага были удалены из `claude remote-control` в v2.1.300, поэтому команда, написанная для более ранней версии, всё ещё может содержать один из них.

3388 

3299<h3 id="claude-import-is-not-yet-available-in-this-build">3389<h3 id="claude-import-is-not-yet-available-in-this-build">

3300 claude import ещё недоступен в этой сборке3390 claude import ещё недоступен в этой сборке

3301</h3>3391</h3>


3542* Удалённый репозиторий, у которого HEAD на сервере указывает на ветку, которую никто не отправлял3632* Удалённый репозиторий, у которого HEAD на сервере указывает на ветку, которую никто не отправлял

3543* Репозиторий без удалённого `origin` или такой, для которого вы никогда не выполняли fetch3633* Репозиторий без удалённого `origin` или такой, для которого вы никогда не выполняли fetch

3544 3634 

3545Claude Code показывает ту же ошибку для любого скилла, который [внедряет динамический контекст](/docs/ru/skills#when-an-injected-command-fails), и неудачная внедрённая команда прерывает вызов этого скилла. Две родственные строки появляются ещё до выполнения команды:3635Claude Code показывает ту же ошибку для любого скилла, который [внедряет динамический контекст](/docs/ru/skills#when-an-injected-command-fails), и неудачная внедрённая команда прерывает вызов этого скилла.

3636 

3637Родственные сообщения появляются ещё до запуска команды:

3546 3638 

3547* `Shell command permission check failed for pattern "..."`: проверка разрешений не разрешила команду. В разделе [Проверки разрешений для внедрённых команд](/docs/ru/skills#permission-checks-on-injected-commands) описано, какие результаты приводят к прерыванию в каждом режиме разрешений и как заранее одобрить команду с помощью `allowed-tools`3639* `Shell command permission check failed for pattern "..."`: проверка разрешений не пропустила команду. В разделе [Проверки разрешений для внедрённых команд](/docs/ru/skills#permission-checks-on-injected-commands) описано, какие результаты прерывают выполнение в каждом режиме разрешений и как заранее разрешить команду с помощью `allowed-tools`

3548* ``Skill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found``: frontmatter скилла требует bash на компьютере, где его нет. Установите Git for Windows или измените frontmatter на `shell: powershell`. См. [Как выполняются внедрённые команды](/docs/ru/skills#how-injected-commands-run)3640* ``Skill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found``: frontmatter скилла требует bash на компьютере, где его нет. Установите Git for Windows или измените frontmatter на `shell: powershell`. См. [Как выполняются внедрённые команды](/docs/ru/skills#how-injected-commands-run)

3641* `No shell command in <name> was run`: одна из команд `!` в файле содержит необработанный управляющий символ, отличный от табуляции или перевода строки, поэтому ни одна из них не выполняется. См. [как найти и удалить этот символ](#no-shell-command-was-run)

3549 3642 

3550**Что делать:**3643**Что делать:**

3551 3644 


3553* Если вы не хотите указывать ветку, выполните `git fetch origin`, а затем `git remote set-head origin --auto`, которая спрашивает у удалённого репозитория, какая ветка у него по умолчанию. Она завершается с `error: Cannot determine remote HEAD`, если удалённый репозиторий не объявляет ветку по умолчанию, потому что он пуст или его HEAD указывает на ветку, которую никто не отправлял; в этом случае укажите ветку явно. Она завершается с `error: Not a valid ref`, если ваш клон не получает эту ветку; сначала расширьте refspec, как описано выше.3646* Если вы не хотите указывать ветку, выполните `git fetch origin`, а затем `git remote set-head origin --auto`, которая спрашивает у удалённого репозитория, какая ветка у него по умолчанию. Она завершается с `error: Cannot determine remote HEAD`, если удалённый репозиторий не объявляет ветку по умолчанию, потому что он пуст или его HEAD указывает на ветку, которую никто не отправлял; в этом случае укажите ветку явно. Она завершается с `error: Not a valid ref`, если ваш клон не получает эту ветку; сначала расширьте refspec, как описано выше.

3554* Если у репозитория нет удалённого репозитория, добавьте его с помощью `git remote add origin <url>` и выполните fetch перед созданием ссылки. Если удалённый репозиторий пуст, сначала отправьте свою ветку с помощью `git push -u origin HEAD` и укажите эту ветку в команде set-head; после этого `origin/HEAD` указывает на только что отправленную ветку, поэтому `/security-review` видит пустой diff, пока ваша ветка не разойдётся с ней.3647* Если у репозитория нет удалённого репозитория, добавьте его с помощью `git remote add origin <url>` и выполните fetch перед созданием ссылки. Если удалённый репозиторий пуст, сначала отправьте свою ветку с помощью `git push -u origin HEAD` и укажите эту ветку в команде set-head; после этого `origin/HEAD` указывает на только что отправленную ветку, поэтому `/security-review` видит пустой diff, пока ваша ветка не разойдётся с ней.

3555 3648 

3649<h3 id="no-shell-command-was-run">

3650 No shell command in a skill or command was run

3651</h3>

3652 

3653Одна из [команд динамического контекста](/docs/ru/skills#inject-dynamic-context) `` !`<command>` `` в файле скилла или пользовательской команды содержит необработанный управляющий символ, отличный от табуляции или перевода строки. Claude Code отклоняет весь вызов до выполнения любой из команд файла.

3654 

3655Сообщение называет инструмент оболочки, который выполнил бы команды, — Bash или PowerShell, — и заканчивается отклонённой командой. Каждый такой символ заменяется на `�`, чтобы было видно, где он находится:

3656 

3657```text theme={null}

3658No shell command in /my-skill was run, because the Bash tool does not accept one of them: command contains control characters that would be hidden in the approval dialog. Unprintable characters are shown as � below: remove them from the skill or command file, or from the arguments or options substituted into it.

3659build.sh --target�dist

3660```

3661 

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

3663 

3664* Найдите каждый `�` в команде, процитированной в конце сообщения. Удалите символ, который он обозначает, из файла скилла или команды либо из аргументов или параметров, подставляемых в файл.

3665 

3556<h3 id="input-must-be-provided-when-using-print">3666<h3 id="input-must-be-provided-when-using-print">

3557 Необходимо предоставить ввод при использовании `--print`3667 Необходимо предоставить ввод при использовании `--print`

3558</h3>3668</h3>


3694 3804 

3695* **Вы не передали базовую ветку**: Claude Code сравнивал с веткой репозитория по умолчанию и предлагает явно передать вашу базовую ветку, как в примере выше3805* **Вы не передали базовую ветку**: Claude Code сравнивал с веткой репозитория по умолчанию и предлагает явно передать вашу базовую ветку, как в примере выше

3696* **Вы передали базовую ветку, которая уже была в вашем клоне**: подсказка гласит ``Make sure <branch> exists locally or on origin (try `git fetch origin <branch>`)``3806* **Вы передали базовую ветку, которая уже была в вашем клоне**: подсказка гласит ``Make sure <branch> exists locally or on origin (try `git fetch origin <branch>`)``

3697* **Вы передали базовую ветку, которой не было в клоне**: 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 не может определить, является ли клон поверхностным, он вместо этого предлагает `git fetch --unshallow origin`. До v2.1.221 подсказка предлагала `git fetch --unshallow origin` для каждой полученной базовой ветки, а в полном клоне эта команда завершается ошибкой `fatal: --unshallow on a complete repository does not make sense`.3807* **Вы передали базовую ветку, которой не было в вашем клоне**: 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`.

3698 3808 

3699**Что делать:**3809**Что делать:**

3700 3810 


5499 5609 

5500* В `command` хука, который запускает указанный в уведомлении скрипт, заключите путь в двойные кавычки. В JSON-файле это записывается как `"command": "python3 \"${CLAUDE_PLUGIN_ROOT}/hooks/check.py\""`.5610* В `command` хука, который запускает указанный в уведомлении скрипт, заключите путь в двойные кавычки. В JSON-файле это записывается как `"command": "python3 \"${CLAUDE_PLUGIN_ROOT}/hooks/check.py\""`.

5501 5611 

5612<h3 id="instruction-file-not-loaded">

5613 Instruction file not loaded

5614</h3>

5615 

5616Это уведомление в представлении диалога интерактивной сессии означает, что существующий [файл памяти](/docs/ru/memory#how-claude-md-files-load) не был загружен. Действует ограничение на чтение.

5617 

5618```text theme={null}

5619Instruction file not loaded (a Read deny rule covers it):

5620path: .claude/rules/shared.md

5621```

5622 

5623Текст в скобках называет причину, например:

5624 

5625* **`a Read deny rule covers it`**: [правило deny](/docs/ru/permissions#read-and-edit) для `Read` совпадает с путём файла в том виде, в каком он записан, или с тем, куда ведёт ссылка на него

5626* **`it's read from outside your working directories, where reads are blocked`**: файл разрешается в путь за пределами [рабочих каталогов](/docs/ru/settings-reference#permissions-blockreadsoutsideworkingdirectories), при этом включена настройка [`permissions.blockReadsOutsideWorkingDirectories`](/docs/ru/settings-reference#permissions-blockreadsoutsideworkingdirectories)

5627* **`where it leads couldn't be worked out`**: например, файл является ссылкой, которая ведёт обратно на саму себя, напрямую или через другие ссылки

5628 

5629Когда собственный файл памяти подкаталога не удаётся загрузить в момент, когда Claude работает с файлами в нём, те же строки появляются в диалоге во время хода. Если не загружено больше файлов, чем перечислено в строках, последняя строка сообщает количество остальных, например `and 3 more instruction files not loaded`.

5630 

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

5632 

5633* Ничего, если ограничение задумано: сессия работает без инструкций из этого файла.

5634* Чтобы загрузить файл, не загруженный по причине `a Read deny rule covers it`, [удалите или сузьте это правило](/docs/ru/permissions#manage-permissions). Затем начните новую сессию.

5635* Чтобы загрузить файл, не загруженный по причине `it's read from outside your working directories, where reads are blocked`, переместите его или цель его ссылки внутрь рабочих каталогов. Затем начните новую сессию.

5636* Чтобы загрузить файл, не загруженный по причине `where it leads couldn't be worked out`, проверьте, не является ли файл ссылкой, которая ведёт на саму себя. Если это так, направьте ссылку на существующий файл или замените её обычным файлом. Затем начните новую сессию.

5637 

5638До версии 2.1.292 уведомление называло файл в конце той же строки, после причины.

5639 

5502<h3 id="a-skill-command-or-workflow-wasnt-loaded-because-its-name-is-reserved">5640<h3 id="a-skill-command-or-workflow-wasnt-loaded-because-its-name-is-reserved">

5503 A skill, command, or workflow wasn't loaded because its name is reserved5641 A skill, command, or workflow wasn't loaded because its name is reserved

5504</h3>5642</h3>


5683 5821 

5684До версии 2.1.257 **Reconnect** и повторное включение в `/mcp` могли подключить сервер, который обновление политики в середине сеанса заблокировало.5822До версии 2.1.257 **Reconnect** и повторное включение в `/mcp` могли подключить сервер, который обновление политики в середине сеанса заблокировало.

5685 5823 

5824<h3 id="mcp-server-name-is-reserved">

5825 MCP server name is reserved

5826</h3>

5827 

5828Это сообщение называет один из ваших MCP-серверов, имя которого входит в число зарезервированных Claude Code, например имён встроенных серверов:

5829 

5830```text theme={null}

5831"workspace" is a reserved MCP server name and was not loaded

5832```

5833 

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

5835 

5836* Переименуйте сервер там, где вы его определяете, например с `workspace` на `my-workspace`

5837* Другие зарезервированные имена, которых следует избегать, см. в разделе [Предупреждения о конфигурации MCP](/docs/ru/mcp#configuration-warnings)

5838 

5686<h3 id="managed-settings-document-could-not-be-parsed">5839<h3 id="managed-settings-document-could-not-be-parsed">

5687 Managed settings document could not be parsed5840 Managed settings document could not be parsed

5688</h3>5841</h3>


5737 5890 

5738До версии 2.1.285 только сеансы, вошедшие с учётными данными claude.ai или Claude Console, выходили с этим сообщением, и чтение, которое операционная система отклонила, также создавало его.5891До версии 2.1.285 только сеансы, вошедшие с учётными данными claude.ai или Claude Console, выходили с этим сообщением, и чтение, которое операционная система отклонила, также создавало его.

5739 5892 

5893<h3 id="managed-settings-hooks-not-loaded">

5894 Managed settings contain invalid entries, including PreToolUse/PermissionRequest hooks that are NOT loaded

5895</h3>

5896 

5897Этот блок в stderr при запуске с `-p` означает, что источник [управляемых настроек](/docs/ru/managed-settings) содержит запись хука, которую Claude Code не может загрузить. Этот хук не выполняется, а если в строке поле `hooks` источника указано как проигнорированное, не выполняется ни один хук этого источника.

5898 

5899Каждая строка называет источник, поле (если оно есть) и проблему, например неизвестный `type` хука или хук, объявленный вне ключа `hooks`:

5900 

5901```text theme={null}

5902Managed settings contain invalid entries, including PreToolUse/PermissionRequest hooks that are NOT loaded; fix or remove each entry:

5903 <source> (<field>): <message>

5904```

5905 

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

5907 

5908* Если вы администрируете источник, исправьте или удалите каждую запись из блока. В разделе [Конфигурация хуков](/docs/ru/hooks#configuration) показана структура, которую Claude Code ожидает в `hooks`.

5909* Если источник в строке — `parent managed settings`, эту запись передало в качестве [родительских настроек](/docs/ru/managed-settings#parent-settings-from-embedding-hosts) приложение, запустившее Claude Code, поэтому сообщите о ней разработчику этого приложения

5910* В остальных случаях отправьте блок администратору

5911 

5912До версии 2.1.300 при запуске с `-p` этот случай выводился под заголовком `Managed settings failed to load; policies from the failed source are NOT in effect:`.

5913 

5740<h3 id="otelheadershelper-failed">5914<h3 id="otelheadershelper-failed">

5741 otelHeadersHelper failed5915 otelHeadersHelper failed

5742</h3>5916</h3>


5955 6129 

5956До версии 2.1.233 Claude Code не записывал строку, когда отправлял запрос для ID модели, который он не распознавал.6130До версии 2.1.233 Claude Code не записывал строку, когда отправлял запрос для ID модели, который он не распознавал.

5957 6131 

6132<h3 id="sandbox-allow-entries-are-ignored-under-a-managed-lock">

6133 Sandbox allow entries are ignored under a managed lock

6134</h3>

6135 

6136Это предупреждение в `/status` и `claude doctor` означает, что управляемые настройки задают [`allowManagedReadPathsOnly`](/docs/ru/settings-reference#sandbox-filesystem-allowmanagedreadpathsonly) или [`allowManagedDomainsOnly`](/docs/ru/settings-reference#sandbox-network-allowmanageddomainsonly), поэтому записи [`allowRead`](/docs/ru/settings-reference#sandbox-filesystem-allowread) или [`allowedDomains`](/docs/ru/settings-reference#sandbox-network-alloweddomains) в указанном файле не применяются:

6137 

6138```text wrap theme={null}

6139sandbox.filesystem.allowRead is ignored — managed settings set allowManagedReadPathsOnly, so only allowRead paths from managed settings are honored. The 3 entries in /home/you/.claude/settings.json will NOT apply (see https://code.claude.com/docs/en/settings#sandbox-settings).

6140```

6141 

6142Для сетевой блокировки предупреждение называет `sandbox.network.allowedDomains` и `allowManagedDomainsOnly` и сообщает `only allowed domains (and WebFetch domain rules) from managed settings are honored`.

6143 

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

6145 

6146* Реагировать на предупреждение не обязательно

6147* Если вам нужны эти пути или домены, а блокировку задают управляемые настройки вашей организации, попросите администратора добавить их в эти настройки. Предупреждение останется, пока вы также не удалите записи из указанного файла.

6148* Чтобы убрать предупреждение, удалите записи из указанного файла. В общем файле, например в `.claude/settings.json` проекта, можно оставить записи для коллег без блокировки и оставить предупреждение.

6149 

5958<h3 id="stale-sandbox-mask-files-left-by-a-killed-session">6150<h3 id="stale-sandbox-mask-files-left-by-a-killed-session">

5959 Stale sandbox mask files left by a killed session6151 Stale sandbox mask files left by a killed session

5960</h3>6152</h3>

Details

57 </Step>57 </Step>

58 58 

59 <Step title="Включите Code Review">59 <Step title="Включите Code Review">

60 Перейдите на [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code) и включите [Code Review](/docs/ru/code-review#set-up-code-review) для ваших репозиториев GHES, используя ту же конфигурацию, что и для github.com.60 Перейдите на [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code) и включите [Code Review](/docs/ru/code-review-setup) для ваших репозиториев GHES, используя ту же конфигурацию, что и для github.com.

61 </Step>61 </Step>

62</Steps>62</Steps>

63 63 

Details

222| `T{char}` | Перейти прямо после предыдущего вхождения символа в текущей строке |222| `T{char}` | Перейти прямо после предыдущего вхождения символа в текущей строке |

223| `;` | Повторить последнее движение f/F/t/T |223| `;` | Повторить последнее движение f/F/t/T |

224| `,` | Повторить последнее движение f/F/t/T в обратном порядке |224| `,` | Повторить последнее движение f/F/t/T в обратном порядке |

225| `%` | Перейти к парной скобке `()`, `[]` или `{}`, начиная со следующей скобки в текущей строке, если курсор не находится на скобке. Требует Claude Code v2.1.301 или более позднюю версию |

225| `/` | Открыть поиск в обратной истории, то же самое, что `Ctrl+R`. Пустое приглашение поиска показывает подсказку: нажмите `Esc`, затем `i`, затем `/`, чтобы открыть меню команд вместо этого |226| `/` | Открыть поиск в обратной истории, то же самое, что `Ctrl+R`. Пустое приглашение поиска показывает подсказку: нажмите `Esc`, затем `i`, затем `/`, чтобы открыть меню команд вместо этого |

226 227 

227<Note>228<Note>


243| `dj`/`dk` | Удалить текущую строку и строку ниже или выше |244| `dj`/`dk` | Удалить текущую строку и строку ниже или выше |

244| `dgg`/`dG` | Удалить с текущей строки до первой или последней строки |245| `dgg`/`dG` | Удалить с текущей строки до первой или последней строки |

245| `d0`/`c0`/`y0` | Удалить, изменить или скопировать от курсора к началу строки. Требует Claude Code v2.1.281 или более позднюю версию |246| `d0`/`c0`/`y0` | Удалить, изменить или скопировать от курсора к началу строки. Требует Claude Code v2.1.281 или более позднюю версию |

247| `d%`/`c%`/`y%` | Удалить, изменить или скопировать от курсора до скобки, к которой переходит `%`, включительно. Требует Claude Code v2.1.301 или более позднюю версию |

246| `cc` | Изменить строку |248| `cc` | Изменить строку |

247| `C` | Изменить до конца строки |249| `C` | Изменить до конца строки |

248| `cw`/`ce`/`cb` | Изменить слово/до конца/назад |250| `cw`/`ce`/`cb` | Изменить слово/до конца/назад |

mcp.md +1 −1

Details

1632 1632 

1633До v2.1.296 более короткий лимит составлял 2 048 символов, а до v2.1.295 он применялся к описанию каждого инструмента, включая загружаемые через поиск инструментов.1633До v2.1.296 более короткий лимит составлял 2 048 символов, а до v2.1.295 он применялся к описанию каждого инструмента, включая загружаемые через поиск инструментов.

1634 1634 

1635Чтобы изменить лимиты для каждого сервера MCP в вашей сессии, установите [`CLAUDE_CODE_MAX_MCP_DESCRIPTION_LENGTH`](/docs/ru/env-vars#variables) на количество символов. Заданное число заменяет оба лимита: например, `8192` повышает более короткий лимит и понижает более длинный. Эта переменная требует Claude Code v2.1.280 или позже.1635Описания и инструкции некоторых серверов MCP, которые Anthropic размещает на `api.anthropic.com`, доходят до Claude полностью. Чтобы изменить лимиты для остальных серверов MCP в вашей сессии, установите [`CLAUDE_CODE_MAX_MCP_DESCRIPTION_LENGTH`](/docs/ru/env-vars#variables) на количество символов. Заданное число заменяет оба лимита: например, `8192` повышает более короткий лимит и понижает более длинный. Эта переменная требует Claude Code v2.1.280 или позже.

1636 1636 

1637<h4 id="per-tool-alwaysload">1637<h4 id="per-tool-alwaysload">

1638 Пометка инструмента для загрузки заранее или отложенной загрузки1638 Пометка инструмента для загрузки заранее или отложенной загрузки

Details

378 ```powershell theme={null}378 ```powershell theme={null}

379 $env:MCP_TIMEOUT = "60000"; claude379 $env:MCP_TIMEOUT = "60000"; claude

380 ```380 ```

381 

382 До версии 2.1.299 некоторые подключения к работающим HTTP-серверам завершались по таймауту при запуске независимо от `MCP_TIMEOUT`. Если вы используете одну из этих версий и работающий HTTP-сервер всё ещё завершается по таймауту после увеличения лимита, [обновите Claude Code](/docs/ru/setup#update-claude-code).

381 </Accordion>383 </Accordion>

382 384 

383 <Accordion title="Server already exists">385 <Accordion title="Server already exists">

memory.md +1 −0

Details

648Для отладки:648Для отладки:

649 649 

650* Запустите `/context` и проверьте список под **Memory files**, чтобы убедиться в наличии файлов CLAUDE.md и CLAUDE.local.md, которые должны загружаться при запуске. Если какой-либо из них там отсутствует, Claude не может его видеть. Используйте `/memory` для открытия и редактирования файлов.650* Запустите `/context` и проверьте список под **Memory files**, чтобы убедиться в наличии файлов CLAUDE.md и CLAUDE.local.md, которые должны загружаться при запуске. Если какой-либо из них там отсутствует, Claude не может его видеть. Используйте `/memory` для открытия и редактирования файлов.

651* Если появляется уведомление `Instruction file not loaded`, см. [что оно означает и что с этим делать](/docs/ru/errors#instruction-file-not-loaded).

651* `CLAUDE.md` в подкаталоге вашего рабочего каталога не отображается под **Memory files**, потому что он загружается по требованию, а не при запуске. Когда он загружается, в терминале появляется строка `Loaded` с его путём. Чтобы проверить новый файл, создайте его из оболочки, а не просите Claude написать его, а затем попросите Claude прочитать файл в этом подкаталоге.652* `CLAUDE.md` в подкаталоге вашего рабочего каталога не отображается под **Memory files**, потому что он загружается по требованию, а не при запуске. Когда он загружается, в терминале появляется строка `Loaded` с его путём. Чтобы проверить новый файл, создайте его из оболочки, а не просите Claude написать его, а затем попросите Claude прочитать файл в этом подкаталоге.

652* Проверьте, что соответствующий CLAUDE.md находится в местоположении, которое загружается для вашего сеанса (см. [Выберите, где разместить файлы CLAUDE.md](#choose-where-to-put-claude-md-files)).653* Проверьте, что соответствующий CLAUDE.md находится в местоположении, которое загружается для вашего сеанса (см. [Выберите, где разместить файлы CLAUDE.md](#choose-where-to-put-claude-md-files)).

653* Сделайте инструкции более конкретными. "Используйте отступ из 2 пробелов" работает лучше, чем "красиво форматируйте код".654* Сделайте инструкции более конкретными. "Используйте отступ из 2 пробелов" работает лучше, чем "красиво форматируйте код".

model-config.md +20 −0

Details

895 Исправление окна для шлюза или пользовательского ID модели895 Исправление окна для шлюза или пользовательского ID модели

896</h3>896</h3>

897 897 

898Любое из этих предупреждений при запуске означает, что Claude Code не распознаёт ID модели вашей сессии, поэтому не может определить контекстное окно модели и предполагает 200K токенов:

899 

900```text theme={null}

901⚠ Model "my-gateway-opus" isn't recognized · context assumed to be 200k tokens · ...

902Claude Code doesn't recognize the model "my-gateway-opus", so it assumes a context window of 200k tokens. Update Claude Code, or see https://code.claude.com/docs/en/model-config#correct-the-window-for-a-gateway-or-custom-model-id to set the window.

903```

904 

905Claude Code [автоматически сжимает](#default-auto-compact-thresholds) диалог при предполагаемых 200K, поэтому если реальное контекстное окно модели составляет 200K, исправлять ничего не нужно. В противном случае сообщите Claude Code реальное окно тем из следующих способов, который подходит для вашего ID:

906 

907* **Модель новее вашей версии Claude Code**: выполните `claude update` в оболочке. Если после обновления Claude Code распознаёт ID, больше ничего настраивать не нужно.

908* **Имя, которое ваш шлюз или поставщик использует для модели, известной Claude Code**: добавьте запись [`modelOverrides`](#override-model-ids-per-version), которая сопоставляет ID модели Anthropic с вашим ID, например `"claude-opus-4-8": "my-gateway-opus"`. Вместо этого можно указать ваш ID в строке [`modelPicker`](/docs/ru/settings-reference#fields-for-modelpicker), задав для `behavesAs` эту модель. В любом случае Claude Code затем рассматривает ID как эту модель.

909* **Модель с окном 1M**: добавьте `[1m]` к ID там, где вы задаёте модель, например `claude --model 'my-gateway-opus[1m]'` в оболочке. Если вы [отключили контекст 1M](#turn-off-1m-context), вы получите то же окно с суффиксом или без него.

910* **Любое другое окно**: задайте [`CLAUDE_CODE_MAX_CONTEXT_TOKENS`](/docs/ru/env-vars) равным размеру окна в токенах в окружении, из которого запускается Claude Code, например `CLAUDE_CODE_MAX_CONTEXT_TOKENS=400000`. Для нераспознанного ID, который не начинается с `claude-` и не имеет суффикса `[1m]`, переменная вступает в силу сама по себе. Для любого другого ID сначала проверьте, [к каким ID она применяется](#which-ids-claude_code_max_context_tokens-applies-to).

911 

912Как только Claude Code распознает ID или начнёт использовать указанное вами окно, предупреждение перестанет появляться при запуске сессии с этим ID.

913 

914<h4 id="which-ids-claude_code_max_context_tokens-applies-to">

915 К каким ID применяется `CLAUDE_CODE_MAX_CONTEXT_TOKENS`

916</h4>

917 

898При использовании [LLM-шлюза](/docs/ru/llm-gateway) или другого пользовательского развёртывания Claude Code может предполагать для ID модели контекстное окно, которое отличается от реального окна модели, независимо от того, сопоставляет ли он ID с моделью Claude. Задайте в [`CLAUDE_CODE_MAX_CONTEXT_TOKENS`](/docs/ru/env-vars) окно, которое Claude Code должен предполагать вместо этого.918При использовании [LLM-шлюза](/docs/ru/llm-gateway) или другого пользовательского развёртывания Claude Code может предполагать для ID модели контекстное окно, которое отличается от реального окна модели, независимо от того, сопоставляет ли он ID с моделью Claude. Задайте в [`CLAUDE_CODE_MAX_CONTEXT_TOKENS`](/docs/ru/env-vars) окно, которое Claude Code должен предполагать вместо этого.

899 919 

900Применение переменной зависит от ID. Claude Code рассматривает ID как написание поставщика или пользовательское написание, если он не начинается с `claude-` (в любом регистре) или если он содержит суффикс, который Claude Code удаляет при чтении ID, например дату `@YYYYMMDD`, используемую в Google Cloud's Agent Platform. До версии v2.1.259 Claude Code не учитывал удалённый суффикс, поэтому нераспознанный ID `claude-` с суффиксом даты рассматривался как простое имя `claude-`.920Применение переменной зависит от ID. Claude Code рассматривает ID как написание поставщика или пользовательское написание, если он не начинается с `claude-` (в любом регистре) или если он содержит суффикс, который Claude Code удаляет при чтении ID, например дату `@YYYYMMDD`, используемую в Google Cloud's Agent Platform. До версии v2.1.259 Claude Code не учитывал удалённый суффикс, поэтому нераспознанный ID `claude-` с суффиксом даты рассматривался как простое имя `claude-`.

Details

6 6 

7> Узнайте, как включить и настроить OpenTelemetry для Claude Code.7> Узнайте, как включить и настроить OpenTelemetry для Claude Code.

8 8 

9Отслеживайте использование Claude Code, затраты и активность инструментов в вашей организации, экспортируя данные телеметрии через OpenTelemetry (OTel). Claude Code экспортирует метрики как данные временных рядов через стандартный протокол метрик, события через протокол логов/событий и опционально распределенные трассировки через [протокол трассировки](#traces-beta).9Отслеживайте использование Claude Code, затраты и активность инструментов в вашей организации, экспортируя данные телеметрии через OpenTelemetry (OTel). Claude Code экспортирует метрики как данные временных рядов через стандартный протокол метрик, события через протокол логов/событий и опционально [распределенные трассировки через OpenTelemetry](#traces-beta).

10 

11<Note>

12 Сведения о Claude API или Managed Agents см. в разделе [OpenTelemetry для Claude API](https://platform.claude.com/docs/en/manage-claude/opentelemetry).

13</Note>

10 14 

11<h2 id="quick-start">15<h2 id="quick-start">

12 Быстрый старт16 Быстрый старт

Details

84* **Сетевая политика охватывает `$.http.fetch`.**84* **Сетевая политика охватывает `$.http.fetch`.**

85 85 

86 * **Политика вашей организации не разрешает WebFetch**: Claude Code также отклоняет каждый запрос `$.http.fetch` любого мода. См. [Доступность WebFetch](/docs/ru/tools-reference#webfetch-availability).86 * **Политика вашей организации не разрешает WebFetch**: Claude Code также отклоняет каждый запрос `$.http.fetch` любого мода. См. [Доступность WebFetch](/docs/ru/tools-reference#webfetch-availability).

87 * **Вы отключаете инструмент WebFetch с помощью [`CLAUDE_CODE_DISABLE_WEB_FETCH`](/docs/ru/env-vars#variables) или [правила deny](/docs/ru/permissions#tool-specific-permission-rules) для `WebFetch` в управляемых настройках или любом другом файле настроек**: моды по-прежнему могут выполнять запросы `$.http.fetch`.

88 

89 Чтобы остановить их для каждого мода, который устанавливают ваши пользователи, [запретите загрузку модов, установленных пользователями](#stop-user-installed-mods-from-loading), или добавьте хук на `http.fetch` в [моде политики](#enforce-a-policy-with-a-mod-of-your-own) и отклоняйте запросы от модов пользователей. Дайте этому хуку [обработчик `.catch`](/docs/ru/plugins/mods/events#handle-a-hook-that-fails), который тоже отклоняет запрос, потому что Claude Code пропускает хук, завершившийся с ошибкой, и тогда запрос выполняется. Если вы только [ограничите, какие плагины могут устанавливать пользователи](/docs/ru/plugins/org#restrict-what-users-can-install), загрузится меньше модов, но разрешённые вами по-прежнему смогут выполнять эти запросы.

87 * **Вы установили [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/ru/env-vars)**: мод, который устанавливаете вы или ваши пользователи, по-прежнему может выполнять эти запросы. Переменная останавливает только [моды, встроенные в Claude Code](/docs/ru/plugins/mods/overview#mods-built-into-claude-code), а также любой запрос `$.http.fetch`, который несёт учётные данные Anthropic сессии. До v2.1.288 переменная останавливала каждый запрос `$.http.fetch` любого мода.90 * **Вы установили [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/ru/env-vars)**: мод, который устанавливаете вы или ваши пользователи, по-прежнему может выполнять эти запросы. Переменная останавливает только [моды, встроенные в Claude Code](/docs/ru/plugins/mods/overview#mods-built-into-claude-code), а также любой запрос `$.http.fetch`, который несёт учётные данные Anthropic сессии. До v2.1.288 переменная останавливала каждый запрос `$.http.fetch` любого мода.

88 91 

89 Ни то, ни другое не охватывает программу, которую мод запускает с помощью `$.process.run`: она выходит в сеть с собственным доступом пользователя.92 Ничто из этого не охватывает программу, которую мод запускает с помощью `$.process.run`: она выходит в сеть с собственным доступом пользователя.

90* **Элементы управления плагинами охватывают моды.** Мод — это плагин, поэтому [параметры, которые ограничивают то, что пользователи могут установить](/docs/ru/plugins/org#restrict-what-users-can-install), такие как `strictKnownMarketplaces`, определяют, может ли он быть установлен вообще.93* **Элементы управления плагинами охватывают моды.** Мод — это плагин, поэтому [параметры, которые ограничивают то, что пользователи могут установить](/docs/ru/plugins/org#restrict-what-users-can-install), такие как `strictKnownMarketplaces`, определяют, может ли он быть установлен вообще.

91* **Моды не могут изменить запрос разрешения.** Мод может переделать большую часть интерфейса Claude Code, но не запрос разрешения, поэтому он не может изменить то, что показывает запрос. Мод все еще может одобрить или отказать в вызове инструмента перед появлением запроса, как описано в [Узнать, что происходит по умолчанию](#know-what-happens-by-default).94* **Моды не могут изменить запрос разрешения.** Мод может переделать большую часть интерфейса Claude Code, но не запрос разрешения, поэтому он не может изменить то, что показывает запрос. Мод все еще может одобрить или отказать в вызове инструмента перед появлением запроса, как описано в [Узнать, что происходит по умолчанию](#know-what-happens-by-default).

92* **Запросы доверия идут первыми.** В интерактивном сеансе в каталоге, который пользователь еще не доверил, ни один мод не загружается, пока они не ответят на запрос доверия.95* **Запросы доверия идут первыми.** В интерактивном сеансе в каталоге, который пользователь еще не доверил, ни один мод не загружается, пока они не ответят на запрос доверия.

Details

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

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

236 236 

237В [расширении VS Code](/docs/ru/plugins/mods/interface#draw-in-the-vs-code-extension) строки состояния и всплывающие уведомления вместо этого отображаются над полем ввода промпта, а строки лога — в диалоге.

238 

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

238 Запуск хода из фоновой работы240 Запуск хода из фоновой работы

239</h3>241</h3>

Details

226| `Spinner`, `ToolProgress`, `TurnDuration` | Строки состояния для хода: строка, которая анимируется, пока Claude работает, строка текущего прогресса работающего инструмента и строка, которая закрывает ход |226| `Spinner`, `ToolProgress`, `TurnDuration` | Строки состояния для хода: строка, которая анимируется, пока Claude работает, строка текущего прогресса работающего инструмента и строка, которая закрывает ход |

227| `InfoNotice`, `SessionMode`, `PromptHint` | Строки состояния под логотипом, метки режима в нижнем колонтитуле и строка подсказки под промптом |227| `InfoNotice`, `SessionMode`, `PromptHint` | Строки состояния под логотипом, метки режима в нижнем колонтитуле и строка подсказки под промптом |

228 228 

229`Pane`, `AskUserQuestion`, `Spinner`, `UserMessage`, `AssistantMessage` и точки отрисовки вызовов инструментов работают в терминале, приложении Desktop и расширении VS Code. Таблица [точек отрисовки](/docs/ru/plugins/mods/reference#render-sites) указывает, где вызывается каждая из остальных.

230 

229На сайте, который Claude Code уже рисует, ваш хук может изменить деталь, заменить рисование или оставить его в покое. Выберите вкладку, чтобы увидеть каждый из вариантов, применяемый к спиннеру. Примеры читают переменную `calls`, которую подсчитывает другой хук, как в [учебном моде](/docs/ru/plugins/mods/create#write-a-mod-yourself).231На сайте, который Claude Code уже рисует, ваш хук может изменить деталь, заменить рисование или оставить его в покое. Выберите вкладку, чтобы увидеть каждый из вариантов, применяемый к спиннеру. Примеры читают переменную `calls`, которую подсчитывает другой хук, как в [учебном моде](/docs/ru/plugins/mods/create#write-a-mod-yourself).

230 232 

231<Tabs>233<Tabs>


297 299 

298Запрос разрешения не является сайтом рендеринга, поэтому мод не может изменить то, что он показывает. Диалог вопроса, `AskUserQuestion`, является таким сайтом, поэтому мод может его изменить. Дерево для диалога должно содержать ссылку ровно один раз, а ваши элементы — над ней. В противном случае Claude Code рисует собственный диалог.300Запрос разрешения не является сайтом рендеринга, поэтому мод не может изменить то, что он показывает. Диалог вопроса, `AskUserQuestion`, является таким сайтом, поэтому мод может его изменить. Дерево для диалога должно содержать ссылку ровно один раз, а ваши элементы — над ней. В противном случае Claude Code рисует собственный диалог.

299 301 

300Терминал и приложение Desktop вызывают не одни и те же сайты. `Pane`, `AbovePrompt`, `Spinner` и сайты транскрипта работают в обоих. Несколько других строк состояния вызываются только в терминале. Таблица [сайтов рендеринга](/docs/ru/plugins/mods/reference#render-sites) указывает, где вызывается каждый из них.

301 

302<h3 id="open-a-pane-at-the-right-time">302<h3 id="open-a-pane-at-the-right-time">

303 Открытие панели в нужное время303 Открытие панели в нужное время

304</h3>304</h3>


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

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

330 330 

331[Расширение VS Code](#draw-in-the-vs-code-extension) игнорирует `rows` и `columns` и определяет размер панели само.

332 

331`focus`, `closeOnEscape` и `holdToasts` являются необязательными и принимают только `true`. Чтобы не задавать одно из них, опустите его. Передача `false` выбрасывает ошибку, такую как `ui.open: focus is true or left out`. Чтобы установить одно из них условно, добавляйте поле только тогда, когда условие выполняется. Этот вызов запрашивает фокус клавиатуры, только когда `items` не пусто:333`focus`, `closeOnEscape` и `holdToasts` являются необязательными и принимают только `true`. Чтобы не задавать одно из них, опустите его. Передача `false` выбрасывает ошибку, такую как `ui.open: focus is true or left out`. Чтобы установить одно из них условно, добавляйте поле только тогда, когда условие выполняется. Этот вызов запрашивает фокус клавиатуры, только когда `items` не пусто:

332 334 

333```javascript theme={null}335```javascript theme={null}


356 358 

357Когда панель появляется, `$.ui.open` разрешается в `{ isPlaced: true }`. Когда панель ждет, `isPlaced` имеет значение `false`, а `reason` — это строка, объясняющая причину. Ожидающая панель появляется, когда пользователь ее открывает или расширяет терминал. Чтобы сообщить, что что-то доступно, не открывая панель, вызовите `$.ui.toast('Your message')`, который показывает всплывающее уведомление.359Когда панель появляется, `$.ui.open` разрешается в `{ isPlaced: true }`. Когда панель ждет, `isPlaced` имеет значение `false`, а `reason` — это строка, объясняющая причину. Ожидающая панель появляется, когда пользователь ее открывает или расширяет терминал. Чтобы сообщить, что что-то доступно, не открывая панель, вызовите `$.ui.toast('Your message')`, который показывает всплывающее уведомление.

358 360 

361<h3 id="draw-in-the-vs-code-extension">

362 Рисование в расширении VS Code

363</h3>

364 

365В расширении VS Code то, что рисует мод, появляется на панели чата в расширении версии 2.1.299 или новее, в сессии, которая [получает флаги функций](/docs/ru/env-vars#features-that-need-feature-flag-fetching). В хуке `ui.render` для панели чата `e.surface` имеет значение `vscode`. Чтобы проверить, какие точки отрисовки и элементы рисует панель чата и какие пропсы она игнорирует, см. таблицы [точек отрисовки](/docs/ru/plugins/mods/reference#render-sites) и [элементов](/docs/ru/plugins/mods/reference#elements).

366 

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

368 

369* **Панели**: на панели чата шириной 800 пикселей или больше панели закрепляются рядом с диалогом, `e.props.placement` имеет значение `'dock'`, а `e.viewport.isFullscreen` — `true`. На более узкой панели чата панели рисуются над полем промпта, `placement` имеет значение `'inline'`, а панель показывает 12 строк, прежде чем начать прокрутку.

370* **Всплывающие уведомления и строки состояния**: они располагаются в одном стеке прямо над полем промпта вместе с панелями, когда панель чата узкая, по одной строке состояния на мод. Стек скрывается, пока показывается запрос разрешения или диалоговое окно.

371* **Метки**: панель чата обрамляет то, что мод рисует или переписывает, и помечает это именем плагина, например **From the token-chart plugin** или **Edited by the token-chart plugin**.

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

373* **Фокус клавиатуры**: панель чата выполняет запрос панели `focus: true` только тогда, когда панель чата находится в фокусе, Claude бездействует и не ожидает ответа на вопрос, а поле промпта пусто.

374* **Диалоговое окно вопроса**: в `AskUserQuestion` панель чата сохраняет собственную карточку вопроса и рисует ваши элементы над ней. Пропсы, которые вы передаете в `next`, не изменяют карточку.

375* **Предложения промпта**: `$.prompt.suggest` разрешается с `isShown: false` и ничего не показывает, потому что панель чата оставляет бледный текст предложения в поле промпта для собственных предложений Claude.

376* **Ограничения текста**: панель чата обрезает строку состояния до 200 символов или двух строк, а всплывающее уведомление — до 500 символов.

377 

359<h2 id="build-a-tree-from-elements">378<h2 id="build-a-tree-from-elements">

360 Создание дерева из элементов379 Создание дерева из элементов

361</h2>380</h2>

362 381 

363То, что возвращает хук `ui.render`, — это дерево элементов: описание того, что рисовать, состоящее из боксов, текста и элементов управления, вложенных друг в друга. Вы описываете рисование, и Claude Code рисует его в терминале или приложении Desktop.382То, что возвращает хук `ui.render`, — это дерево элементов: описание того, что рисовать, состоящее из боксов, текста и элементов управления, вложенных друг в друга. Вы описываете рисование, и Claude Code рисует его в том приложении, которое открыто у пользователя: в терминале, приложении Desktop или расширении VS Code.

364 383 

365Чтобы получить элементы, вызовите `$.ui.resolve(e)` в вашем хуке, как в `const { Box, Text, Button } = $.ui.resolve(e)`. Каждый элемент — это функция. Вы передаете ей свойства, и вы помещаете элементы и строки, которые идут внутри него, в `children`.384Чтобы получить элементы, вызовите `$.ui.resolve(e)` в вашем хуке, как в `const { Box, Text, Button } = $.ui.resolve(e)`. Каждый элемент — это функция. Вы передаете ей свойства, и вы помещаете элементы и строки, которые идут внутри него, в `children`.

366 385 


440| `Text` | Стилизованный текст. Принимает `color`, `bold`, `dimColor`, `italic` и `wrap`. `color` — это ключ темы или цвет, такой как `'red'`. `wrap` — это `'wrap'`, `'truncate'`, `'truncate-start'`, `'truncate-middle'` или `'truncate-end'`. | Везде |459| `Text` | Стилизованный текст. Принимает `color`, `bold`, `dimColor`, `italic` и `wrap`. `color` — это ключ темы или цвет, такой как `'red'`. `wrap` — это `'wrap'`, `'truncate'`, `'truncate-start'`, `'truncate-middle'` или `'truncate-end'`. | Везде |

441| `Button` | Элемент управления, который вызывает `onPress` | Везде |460| `Button` | Элемент управления, который вызывает `onPress` | Везде |

442| `Link`, `Code`, `Markdown` | Ссылка с `href` и необязательной `label`, блок кода и текст, отформатированный так, как ответы Claude. `Markdown` принимает свое содержимое в свойстве `text`, а не в `children`, и нуждается в `key`, когда вы передаете `onLinkPress`. | Везде |461| `Link`, `Code`, `Markdown` | Ссылка с `href` и необязательной `label`, блок кода и текст, отформатированный так, как ответы Claude. `Markdown` принимает свое содержимое в свойстве `text`, а не в `children`, и нуждается в `key`, когда вы передаете `onLinkPress`. | Везде |

443| `Input`, `Select` | Текстовое поле и выпадающий список | Терминал, Desktop |462| `Input`, `Select` | Текстовое поле и выпадающий список | Терминал, Desktop, VS Code |

444| `Svg` | Документ SVG | Desktop |463| `Svg` | Документ SVG | Desktop, VS Code |

445| `Client` | Область, нарисованная вторым вашим файлом, для анимации и ввода указателем. Этот файл не получает API модов. Он обращается к вашим хукам путем отправки данных, которые поступают как событие `ui.message`. Если он не загружается, не рисует или не выполняется, ваши хуки получают событие [`ui.fault`](/docs/ru/plugins/mods/reference#interface). | Терминал, Desktop |464| `Client` | Область, нарисованная вторым вашим файлом, для анимации и ввода указателем. Этот файл не получает API модов. Он обращается к вашим хукам путем отправки данных, которые поступают как событие `ui.message`. Если он не загружается, не рисует или не выполняется, ваши хуки получают событие [`ui.fault`](/docs/ru/plugins/mods/reference#interface). | Терминал, Desktop |

446| `Raster`, `Image` | [Сетка цветных ячеек](#draw-a-grid-of-colored-cells) и изображение | Терминал |465| `Raster`, `Image` | [Сетка цветных ячеек](#draw-a-grid-of-colored-cells) и изображение | Терминал |

447 466 


452В сессии, запущенной с `--plugin-dir`, строка транскрипта говорит об этом, например `ui.render (Pane) refused: Text prop "bogusProp" is not allowed; the engine drew its own`. [Лог отладки](/docs/ru/plugins/mods/troubleshoot#read-the-debug-log) записывает это как `ui.render (Pane): a hook returned a tree that does not validate` с той же причиной. Ничего больше не появляется в сессии, поэтому когда рисование не показывается, проверьте эту строку или лог.471В сессии, запущенной с `--plugin-dir`, строка транскрипта говорит об этом, например `ui.render (Pane) refused: Text prop "bogusProp" is not allowed; the engine drew its own`. [Лог отладки](/docs/ru/plugins/mods/troubleshoot#read-the-debug-log) записывает это как `ui.render (Pane): a hook returned a tree that does not validate` с той же причиной. Ничего больше не появляется в сессии, поэтому когда рисование не показывается, проверьте эту строку или лог.

453 472 

454<h3 id="link-in-the-desktop-app">473<h3 id="link-in-the-desktop-app">

455 `Link` в приложении Desktop474 `Link` в приложении Desktop и VS Code

456</h3>475</h3>

457 476 

458В приложении Desktop `Link` отображается как обычный текст, если его `href` не соответствует следующим требованиям:477В приложении Desktop и расширении VS Code `Link` отображается как обычный текст, если его `href` не соответствует следующим требованиям:

459 478 

460* **Схема и хост**: URL `https:` или URL `http://localhost`, например `http://localhost:3000`479* **Схема и хост**: URL `https:` или URL `http://localhost`, например `http://localhost:3000`

461* **Без `@`**: записывайте `@` в пути или запросе как `%40`480* **Без `@`**: записывайте `@` в пути или запросе как `%40`


477 496 

478Для тепловой карты, спарклайна или игровой доски в терминале нарисуйте один `Raster`, а не `Box` для каждой ячейки. `Raster` принимает `key`, его размер в `columns` и `rows`, и `cells` — строку base64, которая упаковывает каждую ячейку. Каждая ячейка — это три числа: кодовая точка символа, его цвет и цвет фона. Цвет — это 24-битное значение RGB в шестнадцатеричной записи, например `0xc62828` для красного. Значение `0x01000000`, на единицу выше этого диапазона, означает цвет терминала по умолчанию.497Для тепловой карты, спарклайна или игровой доски в терминале нарисуйте один `Raster`, а не `Box` для каждой ячейки. `Raster` принимает `key`, его размер в `columns` и `rows`, и `cells` — строку base64, которая упаковывает каждую ячейку. Каждая ячейка — это три числа: кодовая точка символа, его цвет и цвет фона. Цвет — это 24-битное значение RGB в шестнадцатеричной записи, например `0xc62828` для красного. Значение `0x01000000`, на единицу выше этого диапазона, означает цвет терминала по умолчанию.

479 498 

480Приложение Desktop не имеет `Raster`, поэтому проверьте `e.surface` и нарисуйте текст там. Это тело панели рисует тепловую карту три на два:499Приложения, кроме терминала, не имеют `Raster`, поэтому проверьте `e.surface` и нарисуйте текст там. Это тело панели рисует тепловую карту три на два:

481 500 

482```javascript theme={null}501```javascript theme={null}

483// The value that means "use the terminal's default color"502// The value that means "use the terminal's default color"


535 554 

536Ваш мод никогда не читает клавиатуру сам. Пользователь нажимает клавишу, Claude Code решает, для какого из ваших элементов управления она предназначена, и запускается обратный вызов этого элемента управления. Кроме [горячей клавиши цифры на полосе](/docs/ru/plugins/mods/reference#elements), это происходит только пока ваша панель или полоса имеет фокус клавиатуры. Остальное время клавиши идут в промпт.555Ваш мод никогда не читает клавиатуру сам. Пользователь нажимает клавишу, Claude Code решает, для какого из ваших элементов управления она предназначена, и запускается обратный вызов этого элемента управления. Кроме [горячей клавиши цифры на полосе](/docs/ru/plugins/mods/reference#elements), это происходит только пока ваша панель или полоса имеет фокус клавиатуры. Остальное время клавиши идут в промпт.

537 556 

557В [расширении VS Code](#draw-in-the-vs-code-extension) у кнопок нет горячих клавиш: пользователь щелкает по кнопке или нажимает на ней Enter и вводит текст в поля.

558 

538<h4 id="how-a-pane-gets-keyboard-focus">559<h4 id="how-a-pane-gets-keyboard-focus">

539 Как панель получает фокус клавиатуры560 Как панель получает фокус клавиатуры

540</h4>561</h4>


570 Установка горячей клавиши и первого фокуса591 Установка горячей клавиши и первого фокуса

571</h4>592</h4>

572 593 

573Эти свойства элемента управления определяют, как клавиатура его достигает:

574 

575* **`hotkey`**: чтобы позволить пользователю нажать `Button` одной клавишей, дайте ему `hotkey` одной цифры или одной строчной буквы, как в `hotkey: 'a'`594* **`hotkey`**: чтобы позволить пользователю нажать `Button` одной клавишей, дайте ему `hotkey` одной цифры или одной строчной буквы, как в `hotkey: 'a'`

576* **`autoFocus`**: чтобы выбрать, какой элемент управления имеет фокус при открытии панели, добавьте `autoFocus: true` к нему. Свойство принимает только `true`, поэтому не указывайте его для остальных элементов управления.595* **`autoFocus`**: чтобы выбрать, какой элемент управления имеет фокус при открытии панели, добавьте `autoFocus: true` к нему. В [расширении VS Code](#draw-in-the-vs-code-extension) `autoFocus` ничего не делает: элемент управления рисуется так, как если бы вы его не указали, и вам не нужно ничего менять. Проп принимает только `true`, поэтому не указывайте его для остальных элементов управления.

577 596 

578То, как горячая клавиша показывается, зависит от кнопки и приложения:597То, как горячая клавиша показывается, зависит от кнопки и приложения:

579 598 

580| Кнопка | В терминале | В приложении Desktop |599| Кнопка | В терминале | В приложении Desktop | В расширении VS Code |

581| :- | :- | :- |600| :- | :- | :- | :- |

582| С скобками, по умолчанию | `[ Add one ]`, без показанной горячей клавиши | Метка с маленькой клавишей рядом |601| С скобками, по умолчанию | `[ Add one ]`, без показанной горячей клавиши | Метка с маленькой клавишей рядом | Метка, а горячая клавиша ничего не делает |

583| С `plain: true` | `1: One` | Метка с маленькой клавишей рядом |602| С `plain: true` | `1: One` | Метка с маленькой клавишей рядом | Метка, а горячая клавиша ничего не делает |

584 603 

585В терминале назовите клавишу в метке кнопки в скобках или используйте `plain: true`, чтобы пользователь мог видеть, что нажать. [Справка элементов](/docs/ru/plugins/mods/reference#elements) имеет другие правила `Button`: `action`, горячие клавиши цифр на полосе и две кнопки на одной горячей клавише.604В терминале назовите клавишу в метке кнопки в скобках или используйте `plain: true`, чтобы пользователь мог видеть, что нажать. [Справка элементов](/docs/ru/plugins/mods/reference#elements) имеет другие правила `Button`: `action`, горячие клавиши цифр на полосе и две кнопки на одной горячей клавише.

586 605 

Details

24* **Запустить собственный код на команде**: `/command`, который запускает вашу функцию сразу же, без хода Claude, даже если Claude работает. См. [Добавление команды или инструмента](/docs/ru/plugins/mods/api#add-a-command-or-a-tool).24* **Запустить собственный код на команде**: `/command`, который запускает вашу функцию сразу же, без хода Claude, даже если Claude работает. См. [Добавление команды или инструмента](/docs/ru/plugins/mods/api#add-a-command-or-a-tool).

25* **Обмен данными между hooks**: hooks мода совместно используют переменные в его файле, поэтому то, что записывает один hook, может показать другой. Например, один hook может считать вызовы инструментов, а другой показывает счетчик рядом со спиннером, или один может читать использование токенов каждого запроса, а другой отображает его на графике в панели. См. [Реакция на события](/docs/ru/plugins/mods/events).25* **Обмен данными между hooks**: hooks мода совместно используют переменные в его файле, поэтому то, что записывает один hook, может показать другой. Например, один hook может считать вызовы инструментов, а другой показывает счетчик рядом со спиннером, или один может читать использование токенов каждого запроса, а другой отображает его на графике в панели. См. [Реакция на события](/docs/ru/plugins/mods/events).

26 26 

27Моды работают в CLI Claude Code и на вкладке Code приложения Claude Desktop. См. [Где работают моды](#where-mods-run), чтобы понять, как они ведут себя в других местах, например в расширении VS Code, `claude -p` и облачных сеансах. Если settings hook, skill или сервер MCP уже делает то, что вам нужно, [сравните их](#compare-mods-settings-hooks-skills-and-mcp-servers) перед написанием мода. Для управления модами для организации см. [Управление модами для вашей организации](/docs/ru/plugins/mods/admin).27Моды работают в CLI Claude Code, на вкладке Code приложения Claude Desktop и в расширении VS Code. См. [Где работают моды](#where-mods-run), чтобы понять, как они ведут себя в других местах, например в `claude -p` и облачных сессиях. Если хук настроек, скилл или MCP-сервер уже делает то, что вам нужно, [сравните их](#compare-mods-settings-hooks-skills-and-mcp-servers) перед написанием мода. Для управления модами для организации см. [Управление модами для вашей организации](/docs/ru/plugins/mods/admin).

28 28 

29<h2 id="get-a-mod">29<h2 id="get-a-mod">

30 Получение мода30 Получение мода


212 Где работают моды212 Где работают моды

213</h3>213</h3>

214 214 

215Хуки мода работают в каждом типе сессии, которая загружает плагин, независимо от того, какой провайдер обслуживает модель, включая Amazon Bedrock, Agent Platform от Google Cloud и Microsoft Foundry. С рисованием все ограниченнее: только терминал и приложение Desktop показывают панели, полосы и замененные строки мода. В этой таблице перечислены все места, где вы можете запустить Claude Code:215Хуки мода работают в каждом типе сессии, которая загружает плагин, независимо от того, какой провайдер обслуживает модель, включая Amazon Bedrock, Agent Platform от Google Cloud и Microsoft Foundry. С рисованием все ограниченнее: то, что рисует мод, отображается в терминале, приложении Desktop и расширении VS Code. В этой таблице перечислены все места, где вы можете запустить Claude Code:

216 216 

217| Где вы запускаете Claude Code | Хуки работают | То, что рисует мод, отображается |217| Где вы запускаете Claude Code | Хуки работают | То, что рисует мод, отображается |

218| :- | :- | :- |218| :- | :- | :- |

219| `claude` в терминале, включая встроенный терминал редактора и плагин JetBrains | Да | Да |219| `claude` в терминале, включая встроенный терминал редактора и плагин JetBrains | Да | Да |

220| Вкладка Code приложения Desktop, кроме сессии WSL | Да | Да, кроме элементов, которые [таблица элементов](/docs/ru/plugins/mods/reference#elements) отмечает как только для терминала |220| Вкладка Code приложения Desktop, кроме сессии WSL | Да | Да, кроме элементов, которые [таблица элементов](/docs/ru/plugins/mods/reference#elements) отмечает как только для терминала |

221| [Сессия WSL](/docs/ru/desktop-wsl) в приложении Desktop | Нет, потому что плагины недоступны в сессиях WSL | Нет |221| [Сессия WSL](/docs/ru/desktop-wsl) в приложении Desktop | Нет, потому что плагины недоступны в сессиях WSL | Нет |

222| Панель чата расширения VS Code | Да | Нет |222| Панель чата расширения VS Code | Да | Да, с версией расширения 2.1.299 или новее, в сессии, которая [получает флаги функций](/docs/ru/env-vars#features-that-need-feature-flag-fetching). Таблицы [точек отрисовки](/docs/ru/plugins/mods/reference#render-sites) и [элементов](/docs/ru/plugins/mods/reference#elements) отмечают, что рисует панель. |

223| `claude -p` и [Agent SDK](/docs/ru/agent-sdk/overview) | Да | Нет |223| `claude -p` и [Agent SDK](/docs/ru/agent-sdk/overview) | Да | Нет |

224| [Remote Control](/docs/ru/remote-control) из claude.ai или мобильного приложения | Да, в сессии на вашей машине | В терминале на вашей машине |224| [Remote Control](/docs/ru/remote-control) из claude.ai или мобильного приложения | Да, в сессии на вашей машине | В терминале на вашей машине |

225| [Облачная сессия](/docs/ru/claude-code-on-the-web) | Да, для плагина, который [попадает в облачную сессию](/docs/ru/cloud-environments#what-carries-over-from-your-setup) | Нет |225| [Облачная сессия](/docs/ru/claude-code-on-the-web) | Да, для плагина, который [попадает в облачную сессию](/docs/ru/cloud-environments#what-carries-over-from-your-setup) | Нет |

Details

6 6 

7> Полный справочник по модам Claude Code: структура модуля хуков, события, методы API модов, точки отрисовки, элементы по интерфейсам, ограничения и настройки.7> Полный справочник по модам Claude Code: структура модуля хуков, события, методы API модов, точки отрисовки, элементы по интерфейсам, ограничения и настройки.

8 8 

9Здесь можно найти любое событие, которое может обрабатывать [мод](/docs/ru/plugins/mods/overview), любой метод API модов, который он может вызвать, и любую точку отрисовки, в которой он может рисовать, для CLI Claude Code и приложения Desktop по состоянию на v2.1.290. Для каждой записи указаны имя и однострочное описание, а также ссылка на раздел руководства с пояснениями, если такой раздел есть.9Здесь можно найти любое событие, которое может обрабатывать [мод](/docs/ru/plugins/mods/overview), любой метод API модов, который он может вызвать, и любую точку отрисовки, в которой он может рисовать. Записи охватывают CLI Claude Code и приложение Desktop по состоянию на v2.1.290, а также расширение VS Code по состоянию на v2.1.299. Для каждой записи указаны имя и однострочное описание, а также ссылка на раздел руководства с пояснениями, если такой раздел есть.

10 10 

11<Note>11<Note>

12 Полный справочник — это [TypeScript-декларации Claude Code для модов](https://github.com/anthropics/claude-code/blob/main/mods/types/claude-code.d.ts), в которых описаны все события, методы и элементы с примерами. Копия на GitHub может быть старше установленной у вас версии Claude Code. Если они расходятся, доверяйте [копии, которую Claude Code записывает для вашей версии](/docs/ru/plugins/mods/create#get-the-types-for-your-build).12 Полный справочник — это [TypeScript-декларации Claude Code для модов](https://github.com/anthropics/claude-code/blob/main/mods/types/claude-code.d.ts), в которых описаны все события, методы и элементы с примерами. Копия на GitHub может быть старше установленной у вас версии Claude Code. Если они расходятся, доверяйте [копии, которую Claude Code записывает для вашей версии](/docs/ru/plugins/mods/create#get-the-types-for-your-build).


255 Точки отрисовки255 Точки отрисовки

256</h2>256</h2>

257 257 

258Точка отрисовки — это точка расширения в интерфейсе Claude Code. Каждая строка — это значение `e.component` в хуке `ui.render` с полями `e.props` и приложениями, которые её отрисовывают. `e.surface` — это `terminal` или `desktop`. В разделе [Изменение того, что уже рисует Claude Code](/docs/ru/plugins/mods/interface#change-what-claude-code-already-draws) показано, что хук может делать в точке отрисовки, с примером для каждого варианта.258Точка отрисовки — это точка расширения в интерфейсе Claude Code. Каждая строка — это значение `e.component` в хуке `ui.render` с полями `e.props` и приложениями, которые её отрисовывают. `e.surface` указывает приложение, которое выполняет отрисовку, например `terminal`, `desktop` или `vscode`. В разделе [Изменение того, что уже рисует Claude Code](/docs/ru/plugins/mods/interface#change-what-claude-code-already-draws) показано, что хук может делать в точке отрисовки, с примером для каждого варианта.

259 

260Для отрисовки в расширении VS Code требуется расширение версии 2.1.299 или новее и сессия, которая [получает флаги функций](/docs/ru/env-vars#features-that-need-feature-flag-fetching). В разделе [Рисование в расширении VS Code](/docs/ru/plugins/mods/interface#draw-in-the-vs-code-extension) перечислено, что расширение рисует иначе.

259 261 

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

261| :- | :- | :- | :- |263| :- | :- | :- | :- |

262| [`Pane`](/docs/ru/plugins/mods/interface#pick-where-to-draw) | `title`, `isFocused`, `bodyColumns`, `placement`, `scroll`, `view` | `id` панели | Terminal, Desktop |264| [`Pane`](/docs/ru/plugins/mods/interface#pick-where-to-draw) | `title`, `isFocused`, `bodyColumns`, `placement`, `scroll`, `view` | `id` панели | Terminal, Desktop, VS Code |

263| [`AbovePrompt`](/docs/ru/plugins/mods/interface#pick-where-to-draw) | `hasSurvey`, `isWorking`, `maxRows`, `bodyColumns`, `scroll`, `view` | Один экземпляр | Terminal, Desktop |265| [`AbovePrompt`](/docs/ru/plugins/mods/interface#pick-where-to-draw) | `hasSurvey`, `isWorking`, `maxRows`, `bodyColumns`, `scroll`, `view` | Один экземпляр | Terminal, Desktop |

264| `UserMessage` | `text`, `origin`, `isExpanded` и `task` или `from` в зависимости от источника | id сообщения | Terminal, Desktop |266| `UserMessage` | `text`, `origin`, `isExpanded` и `task` или `from` в зависимости от источника | id сообщения | Terminal, Desktop, VS Code |

265| `AssistantMessage` | Текст ответа | id сообщения | Terminal, Desktop |267| `AssistantMessage` | Текст ответа | id сообщения | Terminal, Desktop, VS Code |

266| `ToolUse`, `ToolResult`, `ToolGroup` | Имя, входные данные и результат инструмента | id вызова инструмента | Terminal, Desktop |268| `ToolUse`, `ToolResult`, `ToolGroup` | Имя, входные данные и результат инструмента | id вызова инструмента | Terminal, Desktop, VS Code |

267| `CommandOutput` | `command`, `text` | id сообщения | Terminal, Desktop |269| `CommandOutput` | `command`, `text` | id сообщения | Terminal, Desktop |

268| [`AskUserQuestion`](/docs/ru/plugins/mods/interface#change-what-claude-code-already-draws) | Вопрос и варианты | id вызова инструмента | Terminal, Desktop |270| [`AskUserQuestion`](/docs/ru/plugins/mods/interface#change-what-claude-code-already-draws) | Вопрос и варианты | id вызова инструмента | Terminal, Desktop, VS Code |

269| `ToolProgress` | `kind` | id вызова инструмента | Terminal |271| `ToolProgress` | `kind` | id вызова инструмента | Terminal |

270| [`Spinner`](/docs/ru/plugins/mods/interface#change-what-claude-code-already-draws) | `word`, `message`, `suffix`, `mode` | id агента | Terminal, Desktop |272| [`Spinner`](/docs/ru/plugins/mods/interface#change-what-claude-code-already-draws) | `word`, `message`, `suffix`, `mode` | id агента | Terminal, Desktop, VS Code |

271| `TurnDuration` | `word`, `durationMs` | id сообщения | Terminal |273| `TurnDuration` | `word`, `durationMs` | id сообщения | Terminal |

272| `InfoNotice` | `text`, `command` | id сообщения | Terminal |274| `InfoNotice` | `text`, `command` | id сообщения | Terminal |

273| `SessionMode` | `modes` | Один экземпляр | Terminal, Desktop |275| `SessionMode` | `modes` | Один экземпляр | Terminal, Desktop |

274| `PromptHint` | `isDraft`, `isWorking`, `hint` | Один экземпляр | Terminal, Desktop |276| `PromptHint` | `isDraft`, `isWorking`, `hint` | Один экземпляр | Terminal, Desktop |

275 277 

276`e.viewport` содержит `columns`, `rows` и `isFullscreen`. Он отсутствует, пока приложение не измерило своё окно. Его `rows` — это высота всего окна, а не вашей панели.278`e.viewport` содержит `columns`, `rows` и `isFullscreen`. В терминале и в приложении Desktop он отсутствует, пока приложение не измерило своё окно. Там его `rows` — это высота всего окна, а не вашей панели. В расширении VS Code он присутствует всегда.

277 279 

278Чтобы подогнать дерево под точку отрисовки, читайте в хуке следующие пропсы:280Чтобы подогнать дерево под точку отрисовки, читайте в хуке следующие пропсы:

279 281 

280* **Ширина `Pane` или полосы**: рисуйте по `e.props.bodyColumns`282* **Ширина `Pane` или полосы**: рисуйте по `e.props.bodyColumns`

281* **Высота `Pane` рядом с транскриптом**: когда `e.props.placement` равно `'dock'`, `e.props.scroll.bodyRows` — это число строк, которые панель отводит под ваше дерево283* **Высота `Pane` рядом с транскриптом**: когда `e.props.placement` равно `'dock'`, `e.props.scroll.bodyRows` — это число строк, которые панель отводит под ваше дерево

282* **Высота `Pane` над промптом**: когда `e.props.placement` равно `'inline'`, панель растёт вместе с вашим деревом до предела, а `bodyRows` — это этот предел. [Поле `rows` в `$.ui.open`](/docs/ru/plugins/mods/interface#open-a-pane-at-the-right-time) запрашивает другой предел.284* **Высота `Pane` над промптом**: когда `e.props.placement` равно `'inline'`, панель растёт вместе с вашим деревом до предела, а `bodyRows` — это этот предел. Чтобы запросить другой предел, см. [поле `rows` в `$.ui.open`](/docs/ru/plugins/mods/interface#open-a-pane-at-the-right-time).

283 285 

284Дерево, которое выше панели, прокручивается целиком.286Дерево, которое выше панели, прокручивается целиком.

285 287 


289 291 

290Элементы — это строительные блоки дерева, которое возвращает хук `ui.render`, и вы получаете их из `$.ui.resolve(e)`. В разделе [Построение дерева из элементов](/docs/ru/plugins/mods/interface#build-a-tree-from-elements) показаны распространённые элементы и то, как их рисует терминал, а в [галерее интерфейса](/docs/ru/plugins/mods/gallery) есть снимки экрана большинства из них. Галочка означает, что приложение умеет рисовать элемент.292Элементы — это строительные блоки дерева, которое возвращает хук `ui.render`, и вы получаете их из `$.ui.resolve(e)`. В разделе [Построение дерева из элементов](/docs/ru/plugins/mods/interface#build-a-tree-from-elements) показаны распространённые элементы и то, как их рисует терминал, а в [галерее интерфейса](/docs/ru/plugins/mods/gallery) есть снимки экрана большинства из них. Галочка означает, что приложение умеет рисовать элемент.

291 293 

292| Элемент | Основные пропсы | Terminal | Desktop |294| Элемент | Основные пропсы | Terminal | Desktop | VS Code |

293| :- | :- | :-: | :-: |295| :- | :- | :-: | :-: | :-: |

294| [`Box`](/docs/ru/plugins/mods/interface#build-a-tree-from-elements) | `key`, flex-раскладка, `gap`, `padding`, `margin`, `width`, `height`, [`borderStyle`](#box-border-styles), `backgroundColor`, `position`, `hover` | ✓ | ✓ |296| [`Box`](/docs/ru/plugins/mods/interface#build-a-tree-from-elements) | `key`, flex-раскладка, `gap`, `padding`, `margin`, `width`, `height`, [`borderStyle`](#box-border-styles), `backgroundColor`, `position`, `hover` | ✓ | ✓ | ✓ |

295| [`Text`](/docs/ru/plugins/mods/interface#build-a-tree-from-elements) | `color`, `backgroundColor`, `bold`, `italic`, `underline`, `dimColor`, `inverse`, `wrap` | ✓ | ✓ |297| [`Text`](/docs/ru/plugins/mods/interface#build-a-tree-from-elements) | `color`, `backgroundColor`, `bold`, `italic`, `underline`, `dimColor`, `inverse`, `wrap` | ✓ | ✓ | ✓ |

296| [`Button`](/docs/ru/plugins/mods/interface#respond-to-presses-and-typing) | `key`, `label`, `onPress`, `hotkey`, `plain`, `dimColor`, `autoFocus`, `action` | ✓ | ✓ |298| [`Button`](/docs/ru/plugins/mods/interface#respond-to-presses-and-typing) | `key`, `label`, `onPress`, `hotkey`, `plain`, `dimColor`, `autoFocus`, `action` | ✓ | ✓ | ✓ |

297| [`Link`](/docs/ru/plugins/mods/interface#link-in-the-desktop-app) | `href`, `label`. См. [Ограничения](#limits). | ✓ | ✓ |299| [`Link`](/docs/ru/plugins/mods/interface#link-in-the-desktop-app) | `href`, `label`. См. [Ограничения](#limits). | ✓ | ✓ | ✓ |

298| [`Code`](/docs/ru/plugins/mods/gallery#show-code-and-changes) | `source`, `language`, `path`, `startLine`, `format`, `wrap` | ✓ | ✓ |300| [`Code`](/docs/ru/plugins/mods/gallery#show-code-and-changes) | `source`, `language`, `path`, `startLine`, `format`, `wrap` | ✓ | ✓ | ✓ |

299| `Markdown` | `text`, `key`, `dimColor`, `onLinkPress`, `pressableLinks` | ✓ | ✓ |301| `Markdown` | `text`, `key`, `dimColor`, `onLinkPress`, `pressableLinks` | ✓ | ✓ | ✓ |

300| [`Input`](/docs/ru/plugins/mods/interface#take-typed-input-and-draw-a-row-for-each-item) | `key`, `label`, `placeholder`, `value`, `submitLabel`, `onSubmit`, `onInput`, `autoFocus` | ✓ | ✓ |302| [`Input`](/docs/ru/plugins/mods/interface#take-typed-input-and-draw-a-row-for-each-item) | `key`, `label`, `placeholder`, `value`, `submitLabel`, `onSubmit`, `onInput`, `autoFocus` | ✓ | ✓ | ✓ |

301| `Select` | `key`, `label`, `options`, `value`, `onSelect`, `autoFocus` | ✓ | ✓ |303| `Select` | `key`, `label`, `options`, `value`, `onSelect`, `autoFocus` | ✓ | ✓ | ✓ |

302| `Svg` | SVG-документ, до 131 072 символов | | ✓ |304| `Svg` | SVG-документ, до 131 072 символов | | ✓ | ✓ |

303| [`Client`](/docs/ru/plugins/mods/interface#build-a-tree-from-elements) | `module`, `key` | ✓ | ✓ |305| [`Client`](/docs/ru/plugins/mods/interface#build-a-tree-from-elements) | `module`, `key` | ✓ | ✓ | |

304| [`Raster`](/docs/ru/plugins/mods/interface#draw-a-grid-of-colored-cells) | `key`, `columns` до 512, `rows` до 256, `cells`. См. [Рисование сетки цветных ячеек](/docs/ru/plugins/mods/interface#draw-a-grid-of-colored-cells). | ✓ | |306| [`Raster`](/docs/ru/plugins/mods/interface#draw-a-grid-of-colored-cells) | `key`, `columns` до 512, `rows` до 256, `cells`. См. [Рисование сетки цветных ячеек](/docs/ru/plugins/mods/interface#draw-a-grid-of-colored-cells). | ✓ | | |

305| `Image` | Байты PNG или RGBA до 2 МиБ либо путь к файлу, `columns` и `rows` до 255, а также текст `alt`. | ✓ | |307| `Image` | Байты PNG или RGBA до 2 МиБ либо путь к файлу, `columns` и `rows` до 255, а также текст `alt`. | ✓ | | |

306 308 

307Дополнительные правила для `Button`: `action` указывает одно из собственных [действий сочетаний клавиш](/docs/ru/keybindings) Claude Code, и сочетание, назначенное пользователем для этого действия, нажимает кнопку, если это аккорд или клавиша с модификатором. Цифровой `hotkey` на кнопке в полосе также срабатывает, когда пользователь вводит только эту цифру в пустой промпт и делает паузу. Если две кнопки в одной отрисовке указывают один и тот же `hotkey`, он достаётся более поздней. `autoFocus` на любом элементе управления принимает только `true`, поэтому, чтобы отключить его, опустите этот проп.309Дополнительные правила для `Button`: `action` указывает одно из собственных [действий сочетаний клавиш](/docs/ru/keybindings) Claude Code, и сочетание, назначенное пользователем для этого действия, нажимает кнопку, если это аккорд или клавиша с модификатором. Цифровой `hotkey` на кнопке в полосе также срабатывает, когда пользователь вводит только эту цифру в пустой промпт и делает паузу. Если две кнопки в одной отрисовке указывают один и тот же `hotkey`, он достаётся более поздней. `autoFocus` на любом элементе управления принимает только `true`, поэтому, чтобы отключить его, опустите этот проп.

308 310 

311Расширение VS Code игнорирует некоторые пропсы элементов и рисует элемент так, как если бы вы их не указали:

312 

313* **`Box`**: `position` и `hover`

314* **`Button`**: `hotkey`, `plain`, `autoFocus` и `action`, поэтому там пользователь нажимает кнопку щелчком или клавишей Enter, когда кнопка в фокусе

315* **`Code`**: `language`, `path`, `startLine`, `format` и `wrap`, поэтому код рисуется без цветов и номеров строк, а блок с `format: 'diff'` показывает необработанный текст diff

316* **`Input` и `Select`**: `autoFocus`

317 

309<h3 id="box-border-styles">318<h3 id="box-border-styles">

310 Стили рамки `Box`319 Стили рамки `Box`

311</h3>320</h3>

Details

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

290</h3>290</h3>

291 291 

292Ваша панель не имеет фокуса клавиатуры.292Ваша панель не имеет фокуса клавиатуры, или рисунок находится в расширении VS Code, где у кнопок нет горячих клавиш. Выполните то, что соответствует вашему случаю:

293 293 

294Нажмите Ctrl+X затем Tab или щелкните панель. Откройте ее с `focus: true` из команды.294* **Нет фокуса клавиатуры**: нажмите Ctrl+X затем Tab или щелкните панель. Чтобы панель получала фокус при открытии, откройте ее с `focus: true` из команды.

295* **В расширении VS Code**: щелкните кнопку или нажмите Enter на ней, когда она получит фокус

295 296 

296<h3 id="a-drawing-works-in-the-terminal-and-not-in-the-desktop-app">297<h3 id="a-drawing-works-in-the-terminal-and-not-in-the-desktop-app-or-vs-code">

297 Рисунок работает в терминале и не в приложении Desktop298 Рисунок работает в терминале и не в приложении Desktop или VS Code

298</h3>299</h3>

299 300 

300Точка отрисовки или элемент там недоступны.301Либо это приложение не отрисовывает точку отрисовки или элемент, либо сессия относится к тем, в которых расширение VS Code ничего не отрисовывает для модов. Другие хуки мода по-прежнему выполняются. Проверьте такие причины:

301 302 

302Проверьте таблицы [точек отрисовки](/docs/ru/plugins/mods/reference#render-sites) и [элементов](/docs/ru/plugins/mods/reference#elements).303* **Точка отрисовки или элемент не отрисовываются в этом приложении**: найдите вашу точку в таблице [точек отрисовки](/docs/ru/plugins/mods/reference#render-sites), а ваши элементы - в таблице [элементов](/docs/ru/plugins/mods/reference#elements). Для элемента, которого нет в приложении, проверьте `e.surface` в хуке и верните дерево, которое приложение может отрисовать.

304* **Расширение VS Code старше 2.1.299**: панель чата отрисовывает содержимое модов начиная с [версии расширения](/docs/ru/vs-code#install-the-extension) 2.1.299. Проверьте версию в представлении Extensions в VS Code и обновите расширение там.

305* **Сессия VS Code не загружает флаги функций**: это необходимо для отрисовки в панели чата. Сессии в Amazon Bedrock, Google Cloud's Agent Platform или Microsoft Foundry либо через [шлюз приложений Claude](/docs/ru/claude-apps-gateway) пропускают эту загрузку, как и другие сессии, перечисленные в разделе [Функции, которым нужна загрузка флагов функций](/docs/ru/env-vars#features-that-need-feature-flag-fetching). Чтобы увидеть рисунок в такой сессии, запустите `claude` в терминале, например во встроенном терминале VS Code.

303 306 

304<h2 id="an-edit-or-a-value-is-lost">307<h2 id="an-edit-or-a-value-is-lost">

305 Редактирование или значение потеряно308 Редактирование или значение потеряно

Details

72 | `-d`, `--debug[=<filter>]` | Включите отладочное логирование для сервера, опционально отфильтрованное по категориям. Передайте фильтр только в форме `=`, например `--debug=api,hooks`. Требуется Claude Code v2.1.282 или позже. |72 | `-d`, `--debug[=<filter>]` | Включите отладочное логирование для сервера, опционально отфильтрованное по категориям. Передайте фильтр только в форме `=`, например `--debug=api,hooks`. Требуется Claude Code v2.1.282 или позже. |

73 | `--debug-file <path>` | Запишите отладочные логи в указанный файл. |73 | `--debug-file <path>` | Запишите отладочные логи в указанный файл. |

74 | `--verbose` | Показывайте подробные логи подключения и сеанса. |74 | `--verbose` | Показывайте подробные логи подключения и сеанса. |

75 | `--sandbox`, `--no-sandbox` | Удалены в v2.1.300. Если вы передадите любой из этих флагов, сервер [завершится с ошибкой](/docs/ru/errors#sandbox-is-not-supported-by-claude-remote-control) вместо запуска. |

75 76 

76 Если вы передадите глобальный флаг `claude` перед `remote-control`, или скрипт-обертка добавит его, Claude Code не переносит флаг в сеансы, которые создает сервер. Claude Code пропускает флаг только когда известно, что его удаление не изменит то, что могут делать эти сеансы, например `--verbose` или `--model`. Для любого другого флага, например `--settings`, Claude Code [отказывается запускаться](/docs/ru/errors#not-carried-over-to-the-sessions-remote-control-starts) и называет флаг для удаления.77 Если вы передадите глобальный флаг `claude` перед `remote-control`, или скрипт-обертка добавит его, Claude Code не переносит флаг в сеансы, которые создает сервер. Claude Code пропускает флаг только когда известно, что его удаление не изменит то, что могут делать эти сеансы, например `--verbose` или `--model`. Для любого другого флага, например `--settings`, Claude Code [отказывается запускаться](/docs/ru/errors#not-carried-over-to-the-sessions-remote-control-starts) и называет флаг для удаления.

77 78 

skills.md +8 −2

Details

720 720 

721Вы также можете складывать несколько skills в начале одного сообщения. Ввод `/write-tests /fix-issue 123` загружает оба skills и передает конечный текст `123` как `$ARGUMENTS` каждому из них.721Вы также можете складывать несколько skills в начале одного сообщения. Ввод `/write-tests /fix-issue 123` загружает оба skills и передает конечный текст `123` как `$ARGUMENTS` каждому из них.

722 722 

723Claude Code расширяет первый skill плюс до пяти дополнительных, сложенных после него. Расширение останавливается на первом токене, который не является встроенным skill, вызываемым пользователем, поэтому skill, который запускается как [подагент fork](#run-skills-in-a-subagent), такой как [`/code-review`](/docs/ru/code-review#review-a-diff-locally), или тот, чьи аргументы сами могут начинаться с команды slash, такой как `/loop`, также заканчивается там. Этот токен и все, что после него, становятся текстом аргумента для каждого расширенного skill. `/code-review` запускается как подагент fork с v2.1.218; на более ранних версиях он запускался встроенным и складывался.723Claude Code расширяет первый skill плюс до пяти дополнительных, сложенных после него. Расширение останавливается на первом токене, который не является встроенным skill, вызываемым пользователем, поэтому skill, который запускается как [субагент fork](#run-skills-in-a-subagent), такой как [`/code-review`](/docs/ru/code-review-local), или тот, чьи аргументы сами могут начинаться со слеш-команды, такой как `/loop`, также заканчивает последовательность там. Этот токен и все, что после него, становятся текстом аргумента для каждого расширенного skill. `/code-review` запускается как субагент fork с v2.1.218; на более ранних версиях он запускался встроенным и складывался.

724 724 

725Чтобы получить доступ к отдельным аргументам по позиции, используйте `$ARGUMENTS[N]` или более короткий `$N`:725Чтобы получить доступ к отдельным аргументам по позиции, используйте `$ARGUMENTS[N]` или более короткий `$N`:

726 726 


832 832 

833При оболочке `bash` по умолчанию добавляйте `|| true` к любой другой команде, которая, как вы ожидаете, завершится с ненулевым кодом. Пример — скрипт проверки, который завершается с кодом 1, если находит проблемы.833При оболочке `bash` по умолчанию добавляйте `|| true` к любой другой команде, которая, как вы ожидаете, завершится с ненулевым кодом. Пример — скрипт проверки, который завершается с кодом 1, если находит проблемы.

834 834 

835<h4 id="control-characters-in-injected-commands">

836 Управляющие символы во внедрённых командах

837</h4>

838 

839`No shell command in <name> was run` означает, что одна из команд `!` в файле содержит необработанный управляющий символ, отличный от табуляции или перевода строки, поэтому ни одна из них не выполняется. См. [как найти и удалить этот символ](/docs/ru/errors#no-shell-command-was-run).

840 

835<h4 id="permission-checks-on-injected-commands">841<h4 id="permission-checks-on-injected-commands">

836 Проверка разрешений для внедрённых команд842 Проверка разрешений для внедрённых команд

837</h4>843</h4>


865 871 

866Ответвление, выполняемое в фоне, также работает с [более узким набором инструментов, который применяется к фоновым субагентам](/docs/ru/sub-agents#run-subagents-in-foreground-or-background): субагент скилла — это обычный тип агента, поэтому на него не распространяется исключение для субагентов, ответвляющих диалог. Если шаги вашего скилла зависят от инструмента вне этого набора, задайте `background: false`, чтобы сохранить полный набор инструментов.872Ответвление, выполняемое в фоне, также работает с [более узким набором инструментов, который применяется к фоновым субагентам](/docs/ru/sub-agents#run-subagents-in-foreground-or-background): субагент скилла — это обычный тип агента, поэтому на него не распространяется исключение для субагентов, ответвляющих диалог. Если шаги вашего скилла зависят от инструмента вне этого набора, задайте `background: false`, чтобы сохранить полный набор инструментов.

867 873 

868Ответвлённый скилл, выполняемый в фоне, применяет свои правки вне [чекпоинтов](/docs/ru/checkpointing) вашей сессии, поэтому `/rewind` их не отменяет; для их отката используйте git.874Ответвлённый скилл, выполняемый в фоне, применяет свои правки вне [чекпоинтов](/docs/ru/checkpointing#subagent-edits-not-restored) вашей сессии. После его выполнения `/rewind` восстанавливает только те файлы, которые Claude уже редактировал в вашем диалоге. Правки скилла в других файлах остаются, поэтому для их отката используйте git.

869 875 

870<Warning>876<Warning>

871 `context: fork` имеет смысл только для скиллов с явными инструкциями. Если ваш скилл содержит рекомендации вроде «используйте эти соглашения API» без задачи, субагент получает рекомендации, но не получает промпта, на основе которого можно действовать, и возвращается без значимого результата.877 `context: fork` имеет смысл только для скиллов с явными инструкциями. Если ваш скилл содержит рекомендации вроде «используйте эти соглашения API» без задачи, субагент получает рекомендации, но не получает промпта, на основе которого можно действовать, и возвращается без значимого результата.

ultrareview.md +1 −1

Details

18* **Более широкое покрытие**: более крупный флот агентов-рецензентов исследует изменение параллельно, что выявляет проблемы, которые может пропустить локальный анализ18* **Более широкое покрытие**: более крупный флот агентов-рецензентов исследует изменение параллельно, что выявляет проблемы, которые может пропустить локальный анализ

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

20 20 

21Ultrareview требует аутентификации с помощью учетной записи claude.ai, так как работает как облачная сессия на инфраструктуре Anthropic. Если вы вошли только с помощью API-ключа, запустите `/login` и сначала аутентифицируйтесь с помощью claude.ai. Ultrareview недоступен при использовании Claude Code с Amazon Bedrock, Google Cloud's Agent Platform или Microsoft Foundry, а также недоступен для организаций, которые включили Zero Data Retention или к которым применена [конфигурация HIPAA](/docs/ru/hipaa-setup). Когда ultrareview недоступен, `/code-review ultra` вместо этого запускает локальное код-ревью в вашей сессии.21Ultrareview требует аутентификации с помощью учетной записи claude.ai, так как работает как облачная сессия на инфраструктуре Anthropic. Если вы вошли только с помощью API-ключа, запустите `/login` и сначала аутентифицируйтесь с помощью claude.ai. Ultrareview недоступен при использовании Claude Code с Amazon Bedrock, Google Cloud's Agent Platform или Microsoft Foundry, а также недоступен для организаций, которые включили Zero Data Retention или к которым применена [конфигурация HIPAA](/docs/ru/hipaa-setup). В этих случаях `/code-review ultra` вместо этого запускает локальное код-ревью в вашей сессии. Организации, использующие [ключи шифрования, управляемые клиентом](https://platform.claude.com/docs/en/manage-claude/cmek) (CMEK), не могут запускать ultrareview. Чтобы выполнить код-ревью ваших изменений локально, запустите `/code-review`.

22 22 

23<h2 id="run-ultrareview-from-the-cli">23<h2 id="run-ultrareview-from-the-cli">

24 Запуск ultrareview из CLI24 Запуск ultrareview из CLI

vs-code.md +76 −2

Details

220* Если при вставке появляется уведомление вида `Removed 3 invisible characters from the pasted text`, текст был вставлен без этих символов.220* Если при вставке появляется уведомление вида `Removed 3 invisible characters from the pasted text`, текст был вставлен без этих символов.

221* Если уведомление об удалённых символах появляется при отправке, ничего не было отправлено. Очищенный текст возвращается в поле ввода промпта. Отправьте ещё раз, чтобы отправить текст в показанном виде.221* Если уведомление об удалённых символах появляется при отправке, ничего не было отправлено. Очищенный текст возвращается в поле ввода промпта. Отправьте ещё раз, чтобы отправить текст в показанном виде.

222 222 

223<h3 id="latex-math-in-responses">

224 Математические формулы LaTeX в ответах

225</h3>

226 

227Панель чата отображает математические формулы LaTeX в ответах Claude в виде свёрстанных формул. Отображение формул требует Claude Code v2.1.301 или новее. В [режиме терминала](#switch-to-terminal-mode) формулы не верстаются. Панель верстает как выносные, так и строчные формулы:

228 

229* **Выносные формулы**: блок `$$ … $$` или `\[ … \]` на отдельной строке или строках, а также огороженный блок кода с языком `math`

230* **Строчные формулы**: `$…$` или `\(…\)`, которые открываются и закрываются в одной строке, например `$E = mc^2$` или `\(a^2 + b^2 = c^2\)`

231 

232Панель пытается отличать формулы от других случаев использования тех же символов, поэтому такой текст, как `$HOME`, цена вроде `$5` или `sed 's/\(foo\)/\1/'`, не верстается. Не верстается и текст внутри фрагмента кода или внутри любого блока кода, кроме огороженного блока `math`. Если формула отображается в исходном виде, хотя вы ожидали свёрстанную, см. раздел [Формула отображается как необработанный LaTeX](#a-formula-shows-as-raw-latex).

233 

234Когда вы выделяете и копируете текст, содержащий свёрстанную формулу, вы получаете исходный код TeX этой формулы в разделителях `$…$` или `$$…$$`, а не отрисованные символы. [**Copy response**](#use-the-prompt-box) и `/copy` выдают ответ в том виде, в каком его написал Claude, включая исходный код TeX.

235 

223<h3 id="resume-past-conversations">236<h3 id="resume-past-conversations">

224 Возобновление прошлых диалогов237 Возобновление прошлых диалогов

225</h3>238</h3>

226 239 

227Нажмите кнопку **Session history** в верхней части панели Claude Code, чтобы открыть историю диалогов. Можно искать по ключевому слову или просматривать по времени.240Нажмите кнопку **Session history** в верхней части панели Claude Code, чтобы открыть историю диалогов. Можно искать по ключевому слову или просматривать по времени.

228 241 

229Нажмите на любой диалог, чтобы возобновить его с полной историей сообщений. Если диалог уже открыт в другой вкладке текущего окна, нажатие переключит вас на эту вкладку. Подробнее о возобновлении сессий см. в разделе [Управление сессиями](/docs/ru/sessions).242Нажмите на любой диалог, чтобы возобновить его с полной историей сообщений. Если диалог уже открыт в другой вкладке текущего окна, нажатие переключит вас на эту вкладку. Если сообщения поначалу остаются пустыми, см. раздел [почему они пусты и когда появятся](#a-resumed-conversation-is-blank-at-first). Подробнее о возобновлении сессий см. в разделе [Управление сессиями](/docs/ru/sessions).

230 243 

231* **Названия сессий**: новые сессии получают названия, сгенерированные ИИ на основе вашего первого сообщения.244* **Названия сессий**: новые сессии получают названия, сгенерированные ИИ на основе вашего первого сообщения.

232* **Переименование и архивирование**: наведите курсор на сессию, чтобы увидеть эти действия. Переименуйте её, чтобы дать описательное название, или заархивируйте, чтобы переместить в группу **Archived sessions** в нижней части списка.245* **Переименование и архивирование**: наведите курсор на сессию, чтобы увидеть эти действия. Переименуйте её, чтобы дать описательное название, или заархивируйте, чтобы переместить в группу **Archived sessions** в нижней части списка.


321* **Вкладка редактора**: разговор возвращается со своей вкладкой.334* **Вкладка редактора**: разговор возвращается со своей вкладкой.

322* **Боковая панель**: разговор возвращается, если вы отправили сообщение или Claude ответил в нём в течение последних 10 минут. Если он не вернётся, возобновите разговор из [истории сеансов](#resume-past-conversations).335* **Боковая панель**: разговор возвращается, если вы отправили сообщение или Claude ответил в нём в течение последних 10 минут. Если он не вернётся, возобновите разговор из [истории сеансов](#resume-past-conversations).

323 336 

324Если другой процесс Claude Code всё ещё держит этот диалог открытым, перед его открытием здесь у вас запросят подтверждение с тем же уведомлением **Open here anyway**, что и при [возобновлении из истории сессий](#resume-past-conversations).337Если другой процесс Claude Code всё ещё держит этот диалог открытым, перед его открытием здесь у вас запросят подтверждение с тем же уведомлением **Open here anyway**, что и при [возобновлении из истории сессий](#resume-past-conversations). Если сообщения поначалу остаются пустыми, см. [почему они пустые и когда они появятся](#a-resumed-conversation-is-blank-at-first).

325 338 

326Если перезагрузка прервала Claude в середине шага, Claude продолжит этот шаг, когда разговор вернётся, и уведомление в чате отметит продолжение. Требует Claude Code v2.1.274 или более поздней версии. Если шаг был прерван более часа назад или сеанс открыт в другом месте, разговор вернётся в режиме ожидания.339Если перезагрузка прервала Claude в середине шага, Claude продолжит этот шаг, когда разговор вернётся, и уведомление в чате отметит продолжение. Требует Claude Code v2.1.274 или более поздней версии. Если шаг был прерван более часа назад или сеанс открыт в другом месте, разговор вернётся в режиме ожидания.

327 340 

328Чтобы отключить продолжение, откройте [настройку Continue After Reload](vscode://settings/claudeCode.continueAfterReload) и снимите флажок. Установка [`CLAUDE_CODE_RESUME_INTERRUPTED_TURN`](/docs/ru/env-vars#variables) или любой другой переменной `CLAUDE_CODE_RESUME_` в окружении VS Code или в [настройке `environmentVariables`](#extension-settings) не влияет на панель, поскольку расширение удаляет эти переменные перед запуском сессий панели.341Чтобы отключить продолжение, откройте [настройку Continue After Reload](vscode://settings/claudeCode.continueAfterReload) и снимите флажок. Установка [`CLAUDE_CODE_RESUME_INTERRUPTED_TURN`](/docs/ru/env-vars#variables) или любой другой переменной `CLAUDE_CODE_RESUME_` в окружении VS Code или в [настройке `environmentVariables`](#extension-settings) не влияет на панель, поскольку расширение удаляет эти переменные перед запуском сессий панели.

329 342 

343<h4 id="a-conversation-was-not-reopened">

344 Диалог не был открыт повторно

345</h4>

346 

347Если после перезагрузки появляется новый чат с подобным уведомлением над полем ввода промпта, это означает, что панель оставила ваш диалог закрытым, поскольку два последних открытия этого диалога не завершились:

348 

349```text theme={null}

350“Fix the login bug” was not reopened. It did not finish opening the last 2 times, and opening it again may stop Claude Code from responding here.

351```

352 

353Открытие не завершается, если панель аварийно завершает работу или перестаёт отвечать во время загрузки диалога, либо если вы перезагружаете или закрываете окно примерно в течение трёх секунд после его открытия. Ничего не теряется: диалог остаётся без изменений и сохраняется в [истории сессий](#resume-past-conversations).

354 

355* **Чтобы всё равно открыть его**: нажмите **Open it anyway** или выберите диалог в истории сессий. Если он открывается и панель продолжает работать, он будет возвращаться после последующих перезагрузок как обычно. Если панель снова перестанет отвечать, перезагрузите окно, чтобы вернуться к новому чату с уведомлением.

356* **Чтобы оставить его закрытым**: продолжайте работать в новом чате. Уведомление исчезнет, как только вы отправите промпт.

357 

330<h3 id="run-multiple-conversations">358<h3 id="run-multiple-conversations">

331 Запустите несколько разговоров359 Запустите несколько разговоров

332</h3>360</h3>


464 492 

465Дополнительную информацию о системе плагинов см. в разделах [Плагины](/docs/ru/plugins/overview) и [Маркетплейсы плагинов](/docs/ru/plugins/overview).493Дополнительную информацию о системе плагинов см. в разделах [Плагины](/docs/ru/plugins/overview) и [Маркетплейсы плагинов](/docs/ru/plugins/overview).

466 494 

495<h3 id="plugins-that-draw-in-the-panel">

496 Плагины, которые рисуют в панели

497</h3>

498 

499Плагин, содержащий [мод](/docs/ru/plugins/mods/overview), может рисовать в панели чата. Для рисования требуется расширение версии 2.1.299 или новее и сессия, которая [получает флаги функций](/docs/ru/env-vars#features-that-need-feature-flag-fetching). От такого плагина вы можете увидеть:

500 

501* Панель рядом с диалогом или над полем промпта

502* Всплывающее уведомление или строку состояния над полем промпта

503* Сообщение или вызов инструмента, отрисованные собственным способом плагина

504 

505Когда установленный вами плагин добавляет или изменяет что-либо в панели, метка называет его, например такими фразами:

506 

507* **Из плагина token-chart**: плагин нарисовал или вывел это, либо эта карточка — это плагин, который что-то у вас спрашивает

508* **Изменено плагином token-chart**: плагин изменил что-то, что рисует Claude Code, например вызов инструмента

509* **Промпт от плагина token-chart**: плагин отправил это сообщение от вашего имени

510 

511Чтобы запретить плагину рисовать, отключите плагин в [диалоговом окне плагинов](#install-plugins).

512 

467<h2 id="automate-browser-tasks-with-chrome">513<h2 id="automate-browser-tasks-with-chrome">

468 Автоматизация задач браузера с помощью Chrome514 Автоматизация задач браузера с помощью Chrome

469</h2>515</h2>


898 944 

899Кроме того, вы можете переназначить расширение на другую клавишу: откройте редактор [Keyboard Shortcuts](https://code.visualstudio.com/docs/configure/keybindings) в VS Code (`Cmd+K Cmd+S`), найдите `Claude Code: Focus input` и назначьте новое сочетание клавиш.945Кроме того, вы можете переназначить расширение на другую клавишу: откройте редактор [Keyboard Shortcuts](https://code.visualstudio.com/docs/configure/keybindings) в VS Code (`Cmd+K Cmd+S`), найдите `Claude Code: Focus input` и назначьте новое сочетание клавиш.

900 946 

947<h3 id="a-resumed-conversation-is-blank-at-first">

948 Возобновлённый диалог поначалу пустой

949</h3>

950 

951Когда вы [возобновляете прошлый диалог](#resume-past-conversations) или диалог [восстанавливается после перезагрузки](#continue-conversations-after-a-reload), его сообщения могут оставаться пустыми, пока запускается процесс Claude Code для этого диалога. Примерно через секунду в пустой области появляется `Waiting for your plugins…`.

952 

953Вам не нужно ничего делать. Сообщения появятся, как только процесс запустится и подтвердит, что ни одному плагину не нужно сначала их проверить, или через 20 секунд, если запуск занимает больше времени.

954 

955<h3 id="the-panel-stops-responding-each-time-a-reload-reopens-a-conversation">

956 Панель перестаёт отвечать каждый раз, когда перезагрузка снова открывает диалог

957</h3>

958 

959Если вся панель аварийно завершает работу, зависает или показывает только `Something went wrong` каждый раз, когда вы перезагружаете окно и ваш диалог восстанавливается, обновите расширение до версии v2.1.301 или выше. Затем снова перезагрузите окно или перезапустите VS Code. Если диалогу дважды подряд не удаётся завершить открытие, вместо него вы получите новый чат с уведомлением о том, что [он не был открыт повторно](#a-conversation-was-not-reopened).

960 

961<h3 id="a-formula-shows-as-raw-latex">

962 Формула отображается как необработанный LaTeX

963</h3>

964 

965Если ни одна математическая формула в ответах Claude не отображается в отформатированном виде, проверьте версию расширения в представлении Extensions, поскольку [отображение математики](#latex-math-in-responses) требует версии 2.1.301 или выше. Если вы используете [режим терминала](#switch-to-terminal-mode), который не форматирует математику независимо от версии, снимите флажок [настройки Use Terminal](vscode://settings/claudeCode.useTerminal), чтобы Claude Code открывался в панели чата.

966 

967Если одна формула отображается в исходном виде, а другие рядом с ней отформатированы, проверьте её на следующие причины:

968 

969* **Она воспринимается не как математика**: текст `$…$`, который читается как слово, остаётся в исходном виде, например `$O(n log n)$`. Текст `$…$`, начинающийся с цифры, например `$30$` или `$1/N$`, также остаётся в исходном виде, если только такой символ, как `=`, `+` или `^`, не помечает его как математику. Вместо этого попросите Claude использовать блок `$$` на отдельных строках, который панель форматирует без этой проверки.

970* **Она содержит отступы, слишком длинная или разбита на строки**: `$ x^2 $` с пробелами внутри знаков доллара, содержимое `$…$` длиннее 60 символов, а также `$…$` или `\(…\)`, разбитые на две строки, не форматируются. Вместо этого попросите Claude использовать блок `$$` на отдельных строках, у которого нет этих ограничений.

971* **TeX невозможно отформатировать**: формула с синтаксической ошибкой, определением макроса, например `\newcommand` или `\def`, или неэкранированным `%` отображается в исходном виде. Попросите Claude переписать её, исправив ошибку, без макроса или с `\%` для знака процента.

972* **Она слишком большая**: формула длиннее 8 192 символов или формула, которая при отрисовке оказалась бы намного больше своего исходного текста, отображается в исходном виде. Попросите Claude разбить её на формулы поменьше или записать компактнее.

973* **Она следует за большим объёмом математики**: в пределах одного блока текста в ответе панель форматирует формулы по порядку до определённого предела. Следующая формула, которая превысила бы этот предел, отображается в исходном виде. Попросите Claude отправить нужную вам формулу ещё раз отдельно.

974 

901<h3 id="claude-code-never-responds">975<h3 id="claude-code-never-responds">

902 Claude Code никогда не отвечает976 Claude Code никогда не отвечает

903</h3>977</h3>

Details

103Если вы уже подключили GitHub в браузере, `/web-setup` предупредит вас, что продолжение заменит это подключение для ваших облачных сеансов.103Если вы уже подключили GitHub в браузере, `/web-setup` предупредит вас, что продолжение заменит это подключение для ваших облачных сеансов.

104 104 

105<Note>105<Note>

106 Организации с включённым [Zero Data Retention](/docs/ru/zero-data-retention) или с применённой [конфигурацией HIPAA](/docs/ru/hipaa-setup) не могут использовать `/web-setup` или другие функции облачных сессий. Если GitHub CLI не установлен или не аутентифицирован, Claude Code открывает поток встроенной настройки в браузере вместо этого.106 Организации с включённым [Zero Data Retention](/docs/ru/zero-data-retention) или с применённой [конфигурацией HIPAA](/docs/ru/hipaa-setup) не могут использовать `/web-setup` или другие функции облачных сессий. Организации, использующие [ключи шифрования, управляемые клиентом](https://platform.claude.com/docs/en/manage-claude/cmek) (CMEK), также не могут запускать облачные сессии. Если GitHub CLI не установлен или не аутентифицирован, Claude Code открывает поток встроенной настройки в браузере вместо этого.

107</Note>107</Note>

108 108 

109<Steps>109<Steps>

Details

74 <p className="digest-wins-title">Другие улучшения</p>74 <p className="digest-wins-title">Другие улучшения</p>

75 75 

76 <div className="digest-wins-grid">76 <div className="digest-wins-grid">

77 <div><a href="/docs/ru/code-review#review-a-diff-locally"><code>/code-review</code></a> теперь работает как фоновый подагент с собственным окном контекста, поэтому работа по проверке остаётся вне вашей беседы и результаты приходят при завершении</div>77 <div><a href="/docs/ru/code-review-local"><code>/code-review</code></a> теперь работает как фоновый субагент с собственным контекстным окном, поэтому работа по ревью остаётся вне вашего диалога и результаты приходят при завершении</div>

78 <div><code>/verify</code>, <code>/code-review</code> и <code>/deep-research</code> запускаются только при их вызове; Claude больше не запускает их самостоятельно</div>78 <div><code>/verify</code>, <code>/code-review</code> и <code>/deep-research</code> запускаются только при их вызове; Claude больше не запускает их самостоятельно</div>

79 <div><a href="/docs/ru/interactive-mode#emoji-shortcodes">Сокращённые коды эмодзи</a> автодополняются в поле ввода подсказки: введите <code>:heart:</code> для вставки эмодзи или два или более символов после <code>:</code> для предложений; отключите с помощью <code>emojiCompletionEnabled</code></div>79 <div><a href="/docs/ru/interactive-mode#emoji-shortcodes">Сокращённые коды эмодзи</a> автодополняются в поле ввода промпта: введите <code>:heart:</code> для вставки эмодзи или два или более символов после <code>:</code> для предложений; отключите с помощью <code>emojiCompletionEnabled</code></div>

80 <div>Skills с <code>context: fork</code> <a href="/docs/ru/skills#run-skills-in-a-subagent">работают в фоне</a> по умолчанию, и <code>background: false</code> в frontmatter skill ждёт результата в том же ходу</div>80 <div>Скиллы с <code>context: fork</code> <a href="/docs/ru/skills#run-skills-in-a-subagent">работают в фоне</a> по умолчанию, и <code>background: false</code> в frontmatter скилла ждёт результата в том же ходу</div>

81 <div>Сеанс запускает до 20 подагентов одновременно по умолчанию; измените <a href="/docs/ru/sub-agents#concurrent-subagent-limit">лимит</a> с помощью <code>CLAUDE\_CODE\_MAX\_CONCURRENT\_SUBAGENTS</code></div>81 <div>Сессия запускает до 20 субагентов одновременно по умолчанию; измените <a href="/docs/ru/sub-agents#concurrent-subagent-limit">лимит</a> с помощью <code>CLAUDE\_CODE\_MAX\_CONCURRENT\_SUBAGENTS</code></div>

82 <div>`--max-budget-usd` теперь применяет ограничение на подагентов: как только расходы достигают его, Claude не может запустить больше и работающие фоновые подагенты останавливаются</div>82 <div>`--max-budget-usd` теперь применяет ограничение на субагентов: как только расходы достигают его, Claude не может запустить больше и работающие фоновые субагенты останавливаются</div>

83 <div>Новая настройка <a href="/docs/ru/sandboxing#disable-filesystem-isolation"><code>sandbox.filesystem.disabled</code></a> пропускает изоляцию файловой системы, сохраняя контроль исходящего сетевого трафика</div>83 <div>Новая настройка <a href="/docs/ru/sandboxing#disable-filesystem-isolation"><code>sandbox.filesystem.disabled</code></a> пропускает изоляцию файловой системы, сохраняя контроль исходящего сетевого трафика</div>

84 <div>В режиме auto проверки опасных команд <code>rm</code>, фоновых заданий и подозрительных путей Windows больше не открывают диалоги разрешений; вместо этого их рассматривает классификатор режима auto</div>84 <div>В авторежиме проверки опасных команд <code>rm</code>, фоновых заданий и подозрительных путей Windows больше не открывают диалоговые окна разрешений; вместо этого их рассматривает классификатор авторежима</div>

85 <div>Проверки разрешений Bash завершаются неудачей на большем количестве форм оболочки, включая перенаправления дескрипторов файлов, подписки переменных Zsh в сравнениях <code>\[\[ ]]</code>, вызовы <code>help</code> и <code>man</code>, которые могут запустить небезопасные опции, и команды длиной более 10 000 символов</div>85 <div>Проверки разрешений Bash отклоняют выполнение (fail closed) на большем количестве форм оболочки, включая перенаправления дескрипторов файлов, индексы переменных Zsh в сравнениях <code>\[\[ ]]</code>, вызовы <code>help</code> и <code>man</code>, которые могут запустить небезопасные опции, и команды длиной более 10 000 символов</div>

86 <div><a href="/docs/ru/fast-mode">Fast mode</a> больше не поддерживает Opus 4.7: <code>/fast</code> теперь применяется к Opus 5 и Opus 4.8</div>86 <div><a href="/docs/ru/fast-mode">Быстрый режим</a> больше не поддерживает Opus 4.7: <code>/fast</code> теперь применяется к Opus 5 и Opus 4.8</div>

87 <div>Долгоживущие вызовы инструментов выдают периодический импульс прогресса вместо молчания</div>87 <div>Долгие вызовы инструментов выдают периодический сигнал прогресса вместо молчания</div>

88 </div>88 </div>

89</div>89</div>

90 90 

Details

84 <p className="digest-wins-title">Другие улучшения</p>84 <p className="digest-wins-title">Другие улучшения</p>

85 85 

86 <div className="digest-wins-grid">86 <div className="digest-wins-grid">

87 <div>Расширение VS Code получает <a href="/docs/ru/vs-code#extension-settings">Focus view</a>, которое скрывает активность инструментов за одной развёртываемой строкой за ход; переключайте его из меню команд или с помощью <code>Ctrl+Alt+F</code> (<code>Ctrl+Option+F</code> на Mac)</div>87 <div>Расширение VS Code получило <a href="/docs/ru/vs-code#extension-settings">Focus view</a>, который скрывает активность инструментов за одной разворачиваемой строкой на каждый ход; переключайте его из меню команд или с помощью <code>Ctrl+Alt+F</code> (<code>Ctrl+Option+F</code> на Mac)</div>

88 <div>Файлы учётных данных песочницы принимают <a href="/docs/ru/sandboxing#mask-credential-files"><code>mode: "mask"</code></a> на Linux и WSL2, поэтому изолированные команды читают копию-дозорную, пока прокси песочницы подставляет реальное значение при выходе; маскирование учётных данных также получает опции <code>extract</code>, осведомлённый о JWT <code>decode</code> и AWS SigV4 повторного подписания</div>88 <div>Файлы учётных данных песочницы поддерживают <a href="/docs/ru/sandboxing#mask-credential-files"><code>mode: "mask"</code></a> на Linux и WSL2: команды в песочнице читают копию-заглушку, а прокси песочницы подставляет реальное значение при исходящем трафике; маскирование учётных данных также получило опции <code>extract</code>, учитывающий JWT <code>decode</code> и повторное подписание AWS SigV4</div>

89 <div>Маркетплейсы могут распространять плагин как <a href="/docs/ru/plugins/marketplace-reference#archive-plugin-source">zip-архив</a> с новым источником <code>archive</code>, загружаемый по HTTPS с опциональным пином SHA-256, поэтому установки работают без git или npm</div>89 <div>Маркетплейсы могут распространять плагин как <a href="/docs/ru/plugins/marketplace-reference#archive-plugin-source">zip-архив</a> с помощью нового источника <code>archive</code>, который загружается по HTTPS с необязательной фиксацией хеша SHA-256, поэтому установка работает без git или npm</div>

90 <div><code>/review</code> теперь является псевдонимом <a href="/docs/ru/code-review#review-a-diff-locally"><code>/code-review</code></a>, и <code>/code-review</code> без уровня усилий повторно использует уровень, который вы вводили в последний раз</div>90 <div><code>/review</code> теперь является псевдонимом <a href="/docs/ru/code-review-local"><code>/code-review</code></a>, а <code>/code-review</code> без уровня effort повторно использует уровень, который вы указали в последний раз</div>

91 <div>Сеанс, который вы копируете с помощью <a href="/docs/ru/agent-view#copy-the-session-with-%2Ffork"><code>/fork</code></a>, теперь вносит свои изменения кода в собственный worktree вместо checkout исходного сеанса</div>91 <div>Сессия, которую вы копируете с помощью <a href="/docs/ru/agent-view#copy-the-session-with-%2Ffork"><code>/fork</code></a>, теперь вносит изменения в код в собственном worktree, а не в checkout исходной сессии</div>

92 <div>Плагины, которые вы устанавливаете из <a href="/docs/ru/plugins/install#install-a-plugin"><code>/plugin</code></a>, активируются в текущем сеансе, когда это безопасно; сводка установки сообщает <code>Plugin is now active.</code> или говорит вам выполнить <code>/reload-plugins</code></div>92 <div>Плагины, которые вы устанавливаете из <a href="/docs/ru/plugins/install#install-a-plugin"><code>/plugin</code></a>, активируются в текущей сессии, когда это безопасно; сводка установки сообщает <code>Plugin is now active.</code> или предлагает выполнить <code>/reload-plugins</code></div>

93 <div><a href="/docs/ru/agent-view#how-file-edits-are-isolated">Фоновые сеансы</a>, которые изменили код в worktree, теперь фиксируют и отправляют перед завершением, открывают черновик pull request только когда задача это требует, и следуют инструкциям git в вашем <code>CLAUDE.md</code></div>93 <div><a href="/docs/ru/agent-view#how-file-edits-are-isolated">Фоновые сессии</a>, изменившие код в worktree, теперь перед завершением делают коммит и push, открывают черновик pull request, только если этого требует задача, и следуют инструкциям по git в вашем <code>CLAUDE.md</code></div>

94 <div>Ограничение в 200 подагентов на сеанс удалено, поэтому долгоживущие сеансы больше не отказывают в новых подагентах; ограничения <a href="/docs/ru/sub-agents#concurrent-subagent-limit">параллелизма</a> и глубины по-прежнему применяются</div>94 <div>Ограничение в 200 субагентов на сессию снято, поэтому долго работающие сессии больше не отказывают в создании новых субагентов; ограничения на <a href="/docs/ru/sub-agents#concurrent-subagent-limit">параллелизм</a> и глубину по-прежнему действуют</div>

95 <div>Проверенные параметры репозитория больше не могут включить <a href="/docs/ru/remote-control#enable-remote-control-for-all-sessions">автоподключение Remote Control</a>; установите <code>remoteControlAtStartup</code> в параметрах пользователя или управляемых параметрах вместо этого, и параметры проекта и локальные параметры могут только его отключить</div>95 <div>Настройки, сохранённые в репозитории, больше не могут включить <a href="/docs/ru/remote-control#enable-remote-control-for-all-sessions">автоподключение Remote Control</a>; вместо этого задайте <code>remoteControlAtStartup</code> в пользовательских или управляемых настройках, а настройки проекта и локальные настройки могут только отключить его</div>

96 <div><a href="/docs/ru/worktrees#how-claude-code-enforces-isolation">Изоляция worktree</a> теперь блокирует не только редактирование файлов, но также команды Bash и перенаправления git, которые достигают основного checkout, в каждом типе сеанса и в подагентах сеанса</div>96 <div><a href="/docs/ru/worktrees#how-claude-code-enforces-isolation">Изоляция в worktree</a> теперь блокирует не только редактирование файлов, но и команды Bash и перенаправления git, которые затрагивают основной checkout, во всех типах сессий и в субагентах сессии</div>

97 <div>Команда Bash больше не может скрыть часть себя от проверок разрешений, и заполнение табуляцией или невидимым Unicode больше не скрывает часть команды от диалога одобрения</div>97 <div>Команда Bash больше не может скрыть часть себя от проверок разрешений, а заполнение табуляцией или невидимыми символами Unicode больше не скрывает часть команды от диалогового окна подтверждения</div>

98 <div>Hooks PreToolUse auto-allow больше не обходят ограничения инструментов во внутренних побочных задачах Claude Code, таких как резюме и компактирование</div>98 <div>Хуки PreToolUse с автоматическим разрешением больше не обходят ограничения инструментов во внутренних побочных задачах Claude Code, таких как создание сводок и сжатие контекста</div>

99 <div><a href="/docs/ru/ultraplan">Ultraplan</a> research preview удалён, включая команду <code>/ultraplan</code> и ключевое слово <code>ultraplan</code>; используйте режим plan или Claude Code в веб-версии вместо этого</div>99 <div>Research preview <a href="/docs/ru/ultraplan">Ultraplan</a> удалён, включая команду <code>/ultraplan</code> и ключевое слово <code>ultraplan</code>; вместо этого используйте режим планирования или Claude Code в веб-версии</div>

100 </div>100 </div>

101</div>101</div>

102 102 

Details

17 <span className="digest-feature-pill">Desktop</span>17 <span className="digest-feature-pill">Desktop</span>

18 </div>18 </div>

19 19 

20 <p className="digest-feature-lede">Когда вы достигаете лимита сеанса на вкладке Code в Claude Code Desktop, карточка лимита теперь предлагает флажок <strong>Автоматически продолжить при сбросе лимитов</strong>. Установите его, и приложение Desktop повторит прерванный ход после сброса. Карточка показывает время повтора. Карточка еженедельного лимита такой опции не предлагает.</p>20 <p className="digest-feature-lede">Когда вы достигаете лимита сессии на вкладке Code в Claude Code Desktop, карточка лимита теперь предлагает флажок <strong>Auto-continue when limits reset</strong>. Установите его, и приложение Desktop повторит прерванный ход после сброса. Карточка показывает время повторной попытки. Карточка недельного лимита такой опции не предлагает.</p>

21 21 

22 <Frame>22 <Frame>

23 <video autoPlay muted loop playsInline className="w-full" src="https://mintcdn.com/claude-code/2SnAdpL4dJ18nKb3/images/whats-new/desktop-auto-continue.mp4?fit=max&auto=format&n=2SnAdpL4dJ18nKb3&q=85&s=1937f489695feaea715e48ecfd7e62cd" data-path="images/whats-new/desktop-auto-continue.mp4" />23 <video autoPlay muted loop playsInline className="w-full" src="https://mintcdn.com/claude-code/2SnAdpL4dJ18nKb3/images/whats-new/desktop-auto-continue.mp4?fit=max&auto=format&n=2SnAdpL4dJ18nKb3&q=85&s=1937f489695feaea715e48ecfd7e62cd" data-path="images/whats-new/desktop-auto-continue.mp4" />

24 </Frame>24 </Frame>

25 25 

26 <p className="digest-feature-try">В следующий раз, когда появится карточка лимита сеанса, установите флажок <strong>Автоматически продолжить при сбросе лимитов</strong> и оставьте сеанс открытым. Карточка показывает <code>Auto-resuming at</code> с указанием времени сброса, и ход продолжится автоматически после сброса лимита.</p>26 <p className="digest-feature-try">В следующий раз, когда появится карточка лимита сессии, установите флажок <strong>Auto-continue when limits reset</strong> и оставьте сессию открытой. Карточка показывает <code>Auto-resuming at</code> с указанием времени сброса, и ход продолжится автоматически после сброса лимита.</p>

27 27 

28 <a className="digest-feature-link" href="/docs/ru/errors#youve-hit-your-session-limit">Что делать при достижении лимита использования</a>28 <a className="digest-feature-link" href="/docs/ru/errors#youve-hit-your-session-limit">Что делать при достижении лимита использования</a>

29</div>29</div>


34 <span className="digest-feature-pill">v2.1.232</span>34 <span className="digest-feature-pill">v2.1.232</span>

35 </div>35 </div>

36 36 

37 <p className="digest-feature-lede">Режим fork теперь включен по умолчанию в интерактивных сеансах. Claude может запросить тип подагента <code>fork</code>, который наследует полный разговор и кэш подсказок вместо начала с нуля, поэтому вам не нужно переобъяснять контекст для побочной задачи. Подагенты, которые Claude создает в интерактивных сеансах, кроме тех, которых создают товарищи по команде агентов, также работают в фоновом режиме по умолчанию.</p>37 <p className="digest-feature-lede">Режим fork теперь включен по умолчанию в интерактивных сессиях. Claude может запросить тип субагента <code>fork</code>, который наследует полный диалог и кэш промптов вместо начала с нуля, поэтому вам не нужно заново объяснять контекст для побочной задачи. Субагенты, которых Claude создает в интерактивных сессиях, кроме тех, которых создают участники команды агентов, также по умолчанию работают в фоновом режиме.</p>

38 38 

39 <p className="digest-feature-try">Запустите fork самостоятельно с задачей, которая требует всего, что вы обсуждали до сих пор:</p>39 <p className="digest-feature-try">Запустите fork самостоятельно с задачей, которой нужно всё, что вы обсуждали до сих пор:</p>

40 40 

41 ```text Claude Code theme={null}41 ```text Claude Code theme={null}

42 > /subtask draft unit tests for the parser changes so far42 > /subtask draft unit tests for the parser changes so far

43 ```43 ```

44 44 

45 <p className="digest-feature-try">Fork появляется на панели ниже вашей подсказки, и его результат поступает в ваш разговор после завершения. Чтобы отключить режим fork, установите <code>CLAUDE\_CODE\_FORK\_SUBAGENT=0</code>.</p>45 <p className="digest-feature-try">Fork появляется на панели под вашим промптом, и его результат поступает в ваш диалог после завершения. Чтобы отключить режим fork, установите <code>CLAUDE\_CODE\_FORK\_SUBAGENT=0</code>.</p>

46 46 

47 <a className="digest-feature-link" href="/docs/ru/sub-agents#turn-fork-mode-on-or-off">Включение или отключение режима fork</a>47 <a className="digest-feature-link" href="/docs/ru/sub-agents#turn-fork-mode-on-or-off">Включение или отключение режима fork</a>

48</div>48</div>


53 <span className="digest-feature-pill">v2.1.232</span>53 <span className="digest-feature-pill">v2.1.232</span>

54 </div>54 </div>

55 55 

56 <p className="digest-feature-lede">Маркетплейсы плагинов клонируют простые URL-адреса <code>gitlab.com</code>, включая вложенные подгруппы. На v2.1.233 или позже передайте URL запроса на слияние GitLab в <code>--worktree</code> для ветвления от него, и представление <code>claude agents</code> помечает сеансы, связанные с запросом на слияние, как <code>!N</code>. Claude Code также скрывает семейства токенов GitLab, такие как <code>glpat-</code> и <code>glrt-</code>, и защищает хранилище конфигурации CLI <code>glab</code> так же, как защищает <code>gh</code>.</p>56 <p className="digest-feature-lede">Маркетплейсы плагинов клонируют простые URL-адреса <code>gitlab.com</code>, включая вложенные подгруппы. В версии v2.1.233 или более поздней передайте URL запроса на слияние GitLab в `--worktree` для ветвления от него, а представление <code>claude agents</code> помечает сессии, связанные с запросом на слияние, как <code>!N</code>. Claude Code также скрывает семейства токенов GitLab, такие как <code>glpat-</code> и <code>glrt-</code>, и защищает хранилище конфигурации CLI <code>glab</code> так же, как защищает <code>gh</code>.</p>

57 57 

58 <p className="digest-feature-try">Запустите сеанс в worktree, ветвленном от запроса на слияние:</p>58 <p className="digest-feature-try">Запустите сессию в worktree, ответвлённом от запроса на слияние:</p>

59 59 

60 ```bash terminal theme={null}60 ```bash terminal theme={null}

61 claude --worktree https://gitlab.com/group/project/-/merge_requests/4261 claude --worktree https://gitlab.com/group/project/-/merge_requests/42

62 ```62 ```

63 63 

64 <p className="digest-feature-try">Когда <code>origin</code> находится на gitlab.com, Claude Code получает <code>merge-requests/42/head</code> и открывает сеанс на этой ветви в собственном worktree.</p>64 <p className="digest-feature-try">Когда <code>origin</code> находится на gitlab.com, Claude Code получает <code>merge-requests/42/head</code> и открывает сессию в этой ветке в собственном worktree.</p>

65 65 

66 <a className="digest-feature-link" href="/docs/ru/worktrees#branch-from-a-pull-request">Ветвление worktree от запроса на слияние или pull request</a>66 <a className="digest-feature-link" href="/docs/ru/worktrees#branch-from-a-pull-request">Ветвление worktree от pull request или запроса на слияние</a>

67</div>67</div>

68 68 

69<div className="digest-wins">69<div className="digest-wins">

70 <p className="digest-wins-title">Другие улучшения</p>70 <p className="digest-wins-title">Другие улучшения</p>

71 71 

72 <div className="digest-wins-grid">72 <div className="digest-wins-grid">

73 <div>Введите <code>@</code> в подсказку, чтобы <a href="/docs/ru/cross-session-messaging#message-another-session">упомянуть другой сеанс Claude</a> по имени, и Claude отправит ему сообщение напрямую с помощью <code>SendMessage</code>; простое имя, которое точно совпадает с одним активным сеансом, теперь доставляется без шага подтверждения</div>73 <div>Введите <code>@</code> в промпте, чтобы <a href="/docs/ru/cross-session-messaging#message-another-session">упомянуть другую сессию Claude</a> по имени, и Claude отправит ей сообщение напрямую с помощью <code>SendMessage</code>; простое имя, которое точно совпадает с одной активной сессией, теперь доставляется без шага подтверждения</div>

74 <div>Интерактивные сеансы на одной машине сохраняют <a href="/docs/ru/cross-session-messaging#see-which-sessions-claude-can-reach">уникальные имена</a>: если вы запустите или переименуете сеанс с именем, которое уже использует другой активный сеанс, Claude Code присвоит вашему сеансу вариант <code>name-word-word</code> и сообщит вам об этом</div>74 <div>Интерактивные сессии на одной машине сохраняют <a href="/docs/ru/cross-session-messaging#see-which-sessions-claude-can-reach">уникальные имена</a>: если вы запустите или переименуете сессию с именем, которое уже использует другая активная сессия, Claude Code присвоит вашей сессии вариант <code>name-word-word</code> и сообщит вам об этом</div>

75 <div>Маркетплейсы плагинов принимают <a href="/docs/ru/plugins/marketplace-reference#command-plugin-source">источники <code>command</code></a>: локальная команда выводит каталог плагина, который Claude Code повторно разрешает каждый сеанс и применяет без перезагрузки</div>75 <div>Маркетплейсы плагинов принимают <a href="/docs/ru/plugins/marketplace-reference#command-plugin-source">источники <code>command</code></a>: локальная команда выводит каталог плагина, который Claude Code заново разрешает в каждой сессии и применяет без перезапуска</div>

76 <div>На Linux и WSL установите <a href="/docs/ru/tools-reference#memory-limit-on-linux-and-wsl"><code>CLAUDE\_CODE\_TOOL\_MEMORY\_LIMIT</code></a> на размер, например <code>4G</code>, чтобы ограничить память, которую могут использовать команды инструментов Bash и PowerShell</div>76 <div>В Linux и WSL установите для <a href="/docs/ru/tools-reference#memory-limit-on-linux-and-wsl"><code>CLAUDE\_CODE\_TOOL\_MEMORY\_LIMIT</code></a> размер, например <code>4G</code>, чтобы ограничить оперативную память, которую могут использовать команды инструментов Bash и PowerShell</div>

77 <div>Инструменты отслеживания задач, такие как <code>TaskCreate</code>, <code>TaskUpdate</code> и <code>TodoWrite</code>, <a href="/docs/ru/tools-reference#task-tool-availability">больше не доступны на Opus 4.8, Sonnet 5, Fable 5, Mythos 5 и более поздних моделях в этих семействах</a>; установите <code>CLAUDE\_CODE\_ENABLE\_TODO\_TOOLS=1</code> для их повторного включения</div>77 <div>Инструменты отслеживания задач, такие как <code>TaskCreate</code>, <code>TaskUpdate</code> и <code>TodoWrite</code>, <a href="/docs/ru/tools-reference#task-tool-availability">больше не доступны на Opus 4.8, Sonnet 5, Fable 5, Mythos 5 и более поздних моделях этих семейств</a>; установите <code>CLAUDE\_CODE\_ENABLE\_TODO\_TOOLS=1</code>, чтобы снова включить их</div>

78 <div><a href="/docs/ru/code-review#review-a-diff-locally"><code>/code-review</code></a> при высоком, очень высоком и максимальном уровне усилий теперь работает в фоновом агенте, как и другие уровни</div>78 <div><a href="/docs/ru/code-review-local"><code>/code-review</code></a> при уровнях усилий high, xhigh и max теперь работает в фоновом агенте, как и на других уровнях</div>

79 <div><a href="/docs/ru/plugins/install#install-a-plugin"><code>/plugin install plugin\@marketplace</code></a> сначала обновляет маркетплейс, поэтому недавно опубликованные плагины устанавливаются без ручного обновления маркетплейса</div>79 <div><a href="/docs/ru/plugins/install#install-a-plugin"><code>/plugin install plugin\@marketplace</code></a> сначала обновляет маркетплейс, поэтому недавно опубликованные плагины устанавливаются без ручного обновления маркетплейса</div>

80 <div>Параметры принимают <a href="/docs/ru/settings-reference#marketplace-key-aliases"><code>additionalMarketplaces</code> и <code>allowedMarketplaces</code></a> как псевдонимы для <code>extraKnownMarketplaces</code> и <code>strictKnownMarketplaces</code></div>80 <div>Настройки принимают <a href="/docs/ru/settings-reference#marketplace-key-aliases"><code>additionalMarketplaces</code> и <code>allowedMarketplaces</code></a> как псевдонимы для <code>extraKnownMarketplaces</code> и <code>strictKnownMarketplaces</code></div>

81 <div>На более новых моделях Claude может <a href="/docs/ru/tools-reference#write-tool-behavior">перезаписать существующий файл с помощью инструмента Write</a> без его предварительного чтения в этом сеансе, что соответствует правилам инструмента Edit; более старые модели требуют чтение</div>81 <div>На более новых моделях Claude может <a href="/docs/ru/tools-reference#write-tool-behavior">перезаписать существующий файл с помощью инструмента Write</a> без его предварительного чтения в этой сессии, что соответствует правилам инструмента Edit; более старые модели требуют чтения</div>

82 <div>Расширение VS Code может <a href="/docs/ru/vs-code#organize-sessions-into-groups">организовать список сеансов в группы</a>: щелкните правой кнопкой мыши, чтобы создать, переименовать или удалить группу, и используйте Cmd/Ctrl- или Shift-click для одновременного перемещения нескольких сеансов</div>82 <div>Расширение VS Code может <a href="/docs/ru/vs-code#organize-sessions-into-groups">организовать список сессий в группы</a>: щелкните правой кнопкой мыши, чтобы создать, переименовать или удалить группу, и используйте Cmd/Ctrl- или Shift-click для одновременного перемещения нескольких сессий</div>

83 <div>Если ваша организация маршрутизирует Claude Code через <a href="/docs/ru/claude-apps-gateway-spend-limits">шлюз приложений Claude с лимитами расходов</a>, Claude Code показывает период лимита, время его сброса и сообщение оператора при достижении лимита</div>83 <div>Если ваша организация направляет Claude Code через <a href="/docs/ru/claude-apps-gateway-spend-limits">шлюз приложений Claude с лимитами расходов</a>, Claude Code показывает период лимита, время его сброса и сообщение оператора при достижении лимита</div>

84 </div>84 </div>

85</div>85</div>

86 86 

workflows.md +5 −5

Details

205 205 

206В `claude -p` и Agent SDK Claude Code никогда не показывает эту подсказку. Он запускает вызов инструмента Workflow через ту же [оценку разрешений](/docs/ru/agent-sdk/permissions#how-permissions-are-evaluated), что и остальная часть сессии, поэтому правила отказа, правила запроса и режим `dontAsk` применяются к запуску, как они применяются к каждому вызову инструмента. Чтобы позволить workflow начать в этих запусках, используйте один из этих:206В `claude -p` и Agent SDK Claude Code никогда не показывает эту подсказку. Он запускает вызов инструмента Workflow через ту же [оценку разрешений](/docs/ru/agent-sdk/permissions#how-permissions-are-evaluated), что и остальная часть сессии, поэтому правила отказа, правила запроса и режим `dontAsk` применяются к запуску, как они применяются к каждому вызову инструмента. Чтобы позволить workflow начать в этих запусках, используйте один из этих:

207 207 

208* **Правило разрешений**: `Workflow` в ваших правилах разрешения одобряет каждый workflow, и `Workflow(<name>)` одобряет один сохранённый workflow по имени.208* **Правило разрешений**: добавьте `Workflow` в ваши правила разрешения, чтобы одобрять каждый workflow, или `Workflow(<name>)`, чтобы одобрить один сохранённый workflow по имени.

209* **Режим автоматического разрешения**: [classifier](/docs/ru/permission-modes#eliminate-prompts-with-auto-mode) проверяет вызов и может его одобрить.209* **Авторежим**: работайте в [авторежиме](/docs/ru/permission-modes#eliminate-prompts-with-auto-mode), где классификатор проверяет вызов и может его одобрить.

210* **Режим обхода разрешений**: Claude Code одобряет вызов.210* **Режим обхода разрешений**: работайте в режиме обхода разрешений.

211* **Хук**: хук [`PreToolUse`](/docs/ru/hooks#pretooluse), который разрешает вызов, одобряет его.211* **Хук**: верните `"allow"` для вызова из хука [`PreToolUse`](/docs/ru/hooks#pretooluse). В [режиме планирования](/docs/ru/permission-modes#analyze-before-you-edit-with-plan-mode) workflow не запускается только на основании одобрения хука, поэтому там используйте вместо этого правило разрешений или подтверждение вашего хоста.

212* **Ваш хост**: [`--permission-prompt-tool`](/docs/ru/cli-reference#cli-flags) или, в случае Agent SDK, callback [`canUseTool`](/docs/ru/agent-sdk/permissions) одобряет его.212* **Ваш хост**: [`--permission-prompt-tool`](/docs/ru/cli-reference#cli-flags) или, в случае Agent SDK, callback [`canUseTool`](/docs/ru/agent-sdk/permissions) одобряет его.

213 213 

214В приложении Desktop карточка одобрения показывает имя workflow, список фаз и предупреждение об использовании токенов, с действиями **Once**, **Always** и **Deny**. Представление прогресса появляется в боковой панели Background tasks.214В приложении Desktop карточка одобрения показывает имя workflow, список фаз и предупреждение об использовании токенов, с действиями **Once**, **Always** и **Deny**. Представление прогресса появляется в боковой панели Background tasks.


505 505 

506Workflow создаёт множество агентов, поэтому один запуск может использовать значительно больше токенов, чем работа через ту же задачу в беседе. Запуски считаются в сторону использования вашего плана и ограничений скорости.506Workflow создаёт множество агентов, поэтому один запуск может использовать значительно больше токенов, чем работа через ту же задачу в беседе. Запуски считаются в сторону использования вашего плана и ограничений скорости.

507 507 

508Чтобы оценить расходы перед выполнением крупной задачи, сначала запустите workflow на небольшом срезе: один каталог вместо всего репозитория или узкий вопрос вместо широкого. Представление `/workflows` показывает использование токенов каждым агентом по мере выполнения запуска, и вы можете остановить запуск там в любое время, обычно без потери завершённой работы. [Возобновить после паузы](#resume-after-a-pause) охватывает то, что сохраняет остановленный запуск. [Ограничения агентов](#behavior-and-limits) среды выполнения ограничивают количество агентов, которых может создать один запуск, что ограничивает стоимость неконтролируемого скрипта. Чтобы сохранить запуски с меньшим количеством агентов, выберите рекомендацию по размеру `small` [size guideline](#set-a-size-guideline).508Чтобы оценить расходы перед выполнением крупной задачи, сначала запустите workflow на небольшом срезе: один каталог вместо всего репозитория или узкий вопрос вместо широкого. Представление `/workflows` показывает использование токенов каждым агентом по мере выполнения запуска, и вы можете остановить запуск там в любое время, обычно без потери завершённой работы. [Возобновить после паузы](#resume-after-a-pause) охватывает то, что сохраняет остановленный запуск. [Ограничения агентов](#behavior-and-limits) среды выполнения ограничивают количество агентов, которых может создать один запуск, что ограничивает стоимость неконтролируемого скрипта. Чтобы сохранить запуски с меньшим количеством агентов, выберите [рекомендацию по размеру](#set-a-size-guideline) `small`.

509 509 

510Claude Code также отмечает запуск, который растёт необычно быстро. Когда workflow планирует более 25 агентов, или его прогнозируемый общий объём токенов превышает 1,5 миллиона, его строка прогресса в панели задач ниже поля ввода показывает предупреждение `Large workflow`. Предупреждение указывает вам на [`/workflows`](#watch-the-run), где вы можете остановить запуск.510Claude Code также отмечает запуск, который растёт необычно быстро. Когда workflow планирует более 25 агентов, или его прогнозируемый общий объём токенов превышает 1,5 миллиона, его строка прогресса в панели задач ниже поля ввода показывает предупреждение `Large workflow`. Предупреждение указывает вам на [`/workflows`](#watch-the-run), где вы можете остановить запуск.

511 511