SpyBara
Go Premium

Documentation 2026-07-02 23:59 UTC to 2026-07-03 23:00 UTC

52 files changed +1,072 −332. View all changes and history on the product overview
2026
Sat 4 03:01 Fri 3 23:00 Thu 2 23:59 Wed 1 21:01

admin-setup.md +2 −0

Details

90| [Version floor](/ru/settings) | Предотвратить автоматическое обновление от установки ниже минимума на уровне организации | `minimumVersion` |90| [Version floor](/ru/settings) | Предотвратить автоматическое обновление от установки ниже минимума на уровне организации | `minimumVersion` |

91| [Required version range](/ru/settings) | Отказать в запуске полностью, когда запущенная версия находится вне одобренного организацией диапазона. Более строгий, чем `minimumVersion`, который только блокирует понижение версии | `requiredMinimumVersion`, `requiredMaximumVersion` |91| [Required version range](/ru/settings) | Отказать в запуске полностью, когда запущенная версия находится вне одобренного организацией диапазона. Более строгий, чем `minimumVersion`, который только блокирует понижение версии | `requiredMinimumVersion`, `requiredMaximumVersion` |

92 92 

93Организации, члены которых проходят аутентификацию через claude.ai или Anthropic API, также могут управлять моделями без развертывания параметров: [ограничения модели организации](/ru/model-config#organization-model-restrictions) отключают отдельные модели, [модель по умолчанию организации](/ru/model-config#organization-default-model) устанавливает, на какой модели начинаются новые сеансы, и [ограничения усилий организации](/ru/model-config#organization-effort-limits) ограничивают уровни усилий по ролям. Все три элемента управления требуют плана Claude Enterprise. Ограничения модели и ограничения усилий применяются на стороне сервера; модель по умолчанию — это отправная точка, которую пользователи могут изменить, если только организация не применяет ее принудительно. Принудительное применение доступно для ограниченного набора организаций; обратитесь к команде вашего аккаунта Anthropic о доступности. Ни один из этих элементов управления не достигает сеансов на Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry или [Claude Platform on AWS](/ru/claude-platform-on-aws); на этих поставщиках используйте `availableModels` выше для ограничений и ключ `model` в управляемых параметрах для значения по умолчанию.

94 

93Правила разрешений и песочница охватывают разные слои. Запрет WebFetch блокирует инструмент fetch Claude, но если Bash разрешен, `curl` и `wget` все еще могут достичь любого URL-адреса. Песочница закрывает этот пробел с разрешенным списком сетевых доменов, принудительно применяемым на уровне ОС.95Правила разрешений и песочница охватывают разные слои. Запрет WebFetch блокирует инструмент fetch Claude, но если Bash разрешен, `curl` и `wget` все еще могут достичь любого URL-адреса. Песочница закрывает этот пробел с разрешенным списком сетевых доменов, принудительно применяемым на уровне ОС.

94 96 

95Для модели угроз, которую защищают эти элементы управления, см. [Security](/ru/security).97Для модели угроз, которую защищают эти элементы управления, см. [Security](/ru/security).

advisor.md +4 −3

Details

85Советник должен быть по крайней мере такой же способной, как основная модель. Принятые советники для каждой основной модели:85Советник должен быть по крайней мере такой же способной, как основная модель. Принятые советники для каждой основной модели:

86 86 

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

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

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

90| Sonnet 4.6 | Fable, Opus, Sonnet | |90| Sonnet 4.6 | Fable, Opus, Sonnet | |

91| Sonnet 5 | Fable, Opus, Sonnet 5 | Советник Sonnet 4.6 отклоняется |91| Sonnet 5 | Fable, Opus, Sonnet 5 | Советник Sonnet 4.6 отклоняется |

92| Opus 4.6 или позже | Fable, Opus на версии основной модели или выше | Opus 4.7 в качестве основной с советником Opus 4.6 отклоняется. Основная модель Opus 4.6 также принимает советника Sonnet 5 |92| Opus 4.6 | Fable, Opus, Sonnet 5 | Sonnet 5 и Opus 4.6 ранжируются как одинаково способные, поэтому основная модель Opus 4.6 принимает советника Sonnet 5 |

93| Opus 4.7 или позже | Fable, Opus 4.7, Opus 4.8 | Opus 4.7 и Opus 4.8 ранжируются как одинаково способные, поэтому каждый принимает другого в качестве советника. Основная модель Opus 4.7 с советником Opus 4.6 или Sonnet 5 отклоняется |

93| Fable 5 ({/* min-version: 2.1.170 */}v2.1.170+) | Fable | Советник Opus или Sonnet отклоняется |94| Fable 5 ({/* min-version: 2.1.170 */}v2.1.170+) | Fable | Советник Opus или Sonnet отклоняется |

94 95 

95Fable 5 требует Claude Code v2.1.170 или более поздней версии и доступ к Fable 5, независимо от того, действует ли она в качестве основной модели или советника.96Fable 5 требует Claude Code v2.1.170 или более поздней версии и доступ к Fable 5, независимо от того, действует ли она в качестве основной модели или советника.


174/advisor off175/advisor off

175```176```

176 177 

177Чтобы полностью отключить инструмент advisor, включая команду `/advisor` и флаг `--advisor`, установите `CLAUDE_CODE_DISABLE_ADVISOR_TOOL=1`. См. [Environment variables](/ru/env-vars).178Чтобы полностью отключить инструмент advisor, установите `CLAUDE_CODE_DISABLE_ADVISOR_TOOL=1`. Команда `/advisor` становится недоступной и любой настроенный `advisorModel` игнорируется. Флаг `--advisor` принимается, но не имеет эффекта; существующие скрипты, которые его передают, продолжают работать без ошибок. См. [Environment variables](/ru/env-vars).

178 179 

179<h2 id="compare-with-related-features">180<h2 id="compare-with-related-features">

180 Сравнение со связанными функциями181 Сравнение со связанными функциями

Details

86<Accordion title="Пример: Проверить типы сообщений и обработать результаты">86<Accordion title="Пример: Проверить типы сообщений и обработать результаты">

87 <CodeGroup>87 <CodeGroup>

88 ```python Python theme={null}88 ```python Python theme={null}

89 import asyncio

89 from claude_agent_sdk import query, AssistantMessage, ResultMessage90 from claude_agent_sdk import query, AssistantMessage, ResultMessage

90 91 

92 

93 async def main():

94 try:

91 async for message in query(prompt="Summarize this project"):95 async for message in query(prompt="Summarize this project"):

92 if isinstance(message, AssistantMessage):96 if isinstance(message, AssistantMessage):

93 print(f"Turn completed: {len(message.content)} content blocks")97 print(f"Turn completed: {len(message.content)} content blocks")


96 print(message.result)100 print(message.result)

97 else:101 else:

98 print(f"Stopped: {message.subtype}")102 print(f"Stopped: {message.subtype}")

103 except Exception as error:

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

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

106 # already run; connection or process failures yield no result message.

107 print(f"Session ended with an error: {error}")

108 

109 

110 asyncio.run(main())

99 ```111 ```

100 112 

101 ```typescript TypeScript theme={null}113 ```typescript TypeScript theme={null}

102 import { query } from "@anthropic-ai/claude-agent-sdk";114 import { query } from "@anthropic-ai/claude-agent-sdk";

103 115 

116 try {

104 for await (const message of query({ prompt: "Summarize this project" })) {117 for await (const message of query({ prompt: "Summarize this project" })) {

105 if (message.type === "assistant") {118 if (message.type === "assistant") {

106 console.log(`Turn completed: ${message.message.content.length} content blocks`);119 console.log(`Turn completed: ${message.message.content.length} content blocks`);


113 }126 }

114 }127 }

115 }128 }

129 } catch (error) {

130 // A single-shot query() throws after yielding an error result. If the

131 // failure was an error result, the error subtype branches above have

132 // already run; connection or process failures yield no result message.

133 console.log(`Session ended with an error: ${error}`);

134 }

116 ```135 ```

117 </CodeGroup>136 </CodeGroup>

118</Accordion>137</Accordion>


321 340 

322Поле `result` (финальный текстовый выход) присутствует только в варианте `success`, поэтому всегда проверяйте подтип перед его чтением. Все подтипы результатов содержат `total_cost_usd`, `usage`, `num_turns` и `session_id`, поэтому вы можете отслеживать стоимость и возобновлять даже после ошибок. В Python `total_cost_usd` и `usage` типизированы как опциональные и могут быть `None` на некоторых путях ошибок, поэтому охраняйте перед форматированием. См. [Отслеживание стоимости и использования](/ru/agent-sdk/cost-tracking) для деталей по интерпретации полей `usage`.341Поле `result` (финальный текстовый выход) присутствует только в варианте `success`, поэтому всегда проверяйте подтип перед его чтением. Все подтипы результатов содержат `total_cost_usd`, `usage`, `num_turns` и `session_id`, поэтому вы можете отслеживать стоимость и возобновлять даже после ошибок. В Python `total_cost_usd` и `usage` типизированы как опциональные и могут быть `None` на некоторых путях ошибок, поэтому охраняйте перед форматированием. См. [Отслеживание стоимости и использования](/ru/agent-sdk/cost-tracking) для деталей по интерпретации полей `usage`.

323 342 

343<Note>

344 Когда запрос заканчивается на результате ошибки:

345 

346 * Одиночный вызов `query()` выдает финальное сообщение результата, затем вызывает ошибку, которая включает текст отказа, такой как `Reached maximum number of turns`. Вызов ошибки намеренный — оберните цикл в блок try, если вашему коду нужно продолжить работу после него. Базовый процесс Claude Code также завершается с ненулевым кодом.

347 * Сеанс потоковой передачи входных данных остается активным, и вы можете продолжать отправлять сообщения.

348</Note>

349 

324Результат также включает поле `stop_reason` (`string | null` в TypeScript, `str | None` в Python), указывающее, почему модель остановила генерацию на своем финальном ходе. Общие значения — `end_turn` (модель закончила нормально), `max_tokens` (достигнут лимит выходных токенов) и `refusal` (модель отклонила запрос). На подтипах результатов ошибок `stop_reason` содержит значение из последнего ответа помощника перед завершением цикла. Для обнаружения отклонений проверьте `stop_reason === "refusal"` (TypeScript) или `stop_reason == "refusal"` (Python). См. [`SDKResultMessage`](/ru/agent-sdk/typescript#sdkresultmessage) (TypeScript) или [`ResultMessage`](/ru/agent-sdk/python#resultmessage) (Python) для полного типа.350Результат также включает поле `stop_reason` (`string | null` в TypeScript, `str | None` в Python), указывающее, почему модель остановила генерацию на своем финальном ходе. Общие значения — `end_turn` (модель закончила нормально), `max_tokens` (достигнут лимит выходных токенов) и `refusal` (модель отклонила запрос). На подтипах результатов ошибок `stop_reason` содержит значение из последнего ответа помощника перед завершением цикла. Для обнаружения отклонений проверьте `stop_reason === "refusal"` (TypeScript) или `stop_reason == "refusal"` (Python). См. [`SDKResultMessage`](/ru/agent-sdk/typescript#sdkresultmessage) (TypeScript) или [`ResultMessage`](/ru/agent-sdk/python#resultmessage) (Python) для полного типа.

325 351 

326<h2 id="hooks">352<h2 id="hooks">


348 374 

349Этот пример объединяет ключевые концепции с этой страницы в одного агента, который исправляет неудачные тесты. Он конфигурирует агента с разрешенными инструментами (автоматически одобренными, поэтому агент работает автономно), настройками проекта и ограничениями безопасности на ходы и усилия рассуждения. По мере выполнения цикла он захватывает ID сессии для потенциального возобновления, обрабатывает финальный результат и выводит общую стоимость.375Этот пример объединяет ключевые концепции с этой страницы в одного агента, который исправляет неудачные тесты. Он конфигурирует агента с разрешенными инструментами (автоматически одобренными, поэтому агент работает автономно), настройками проекта и ограничениями безопасности на ходы и усилия рассуждения. По мере выполнения цикла он захватывает ID сессии для потенциального возобновления, обрабатывает финальный результат и выводит общую стоимость.

350 376 

377Поскольку один вызов `query()` вызывает исключение после выдачи результата ошибки, цикл обернут в блок try, чтобы скрипт корректно завершился при достижении лимита.

378 

351<CodeGroup>379<CodeGroup>

352 ```python Python theme={null}380 ```python Python theme={null}

353 import asyncio381 import asyncio


357 async def run_agent():385 async def run_agent():

358 session_id = None386 session_id = None

359 387 

388 try:

360 async for message in query(389 async for message in query(

361 prompt="Find and fix the bug causing test failures in the auth module",390 prompt="Find and fix the bug causing test failures in the auth module",

362 options=ClaudeAgentOptions(391 options=ClaudeAgentOptions(


389 print(f"Stopped: {message.subtype}")418 print(f"Stopped: {message.subtype}")

390 if message.total_cost_usd is not None:419 if message.total_cost_usd is not None:

391 print(f"Cost: ${message.total_cost_usd:.4f}")420 print(f"Cost: ${message.total_cost_usd:.4f}")

421 except Exception as error:

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

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

424 # already run; connection or process failures yield no result message.

425 print(f"Session ended with an error: {error}")

392 426 

393 427 

394 asyncio.run(run_agent())428 asyncio.run(run_agent())


399 433 

400 let sessionId: string | undefined;434 let sessionId: string | undefined;

401 435 

436 try {

402 for await (const message of query({437 for await (const message of query({

403 prompt: "Find and fix the bug causing test failures in the auth module",438 prompt: "Find and fix the bug causing test failures in the auth module",

404 options: {439 options: {


428 console.log(`Cost: $${message.total_cost_usd.toFixed(4)}`);463 console.log(`Cost: $${message.total_cost_usd.toFixed(4)}`);

429 }464 }

430 }465 }

466 } catch (error) {

467 // A single-shot query() throws after yielding an error result. If the

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

469 // already run; connection or process failures yield no result message.

470 console.log(`Session ended with an error: ${error}`);

471 }

431 ```472 ```

432</CodeGroup>473</CodeGroup>

433 474 

Details

63 ```typescript TypeScript theme={null}63 ```typescript TypeScript theme={null}

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

65 65 

66 try {

66 for await (const message of query({ prompt: "Summarize this project" })) {67 for await (const message of query({ prompt: "Summarize this project" })) {

67 if (message.type === "result") {68 if (message.type === "result") {

68 console.log(`Total cost: $${message.total_cost_usd}`);69 console.log(`Total cost: $${message.total_cost_usd}`);

69 }70 }

70 }71 }

72 } catch (error) {

73 // A single-shot query() throws after yielding an error result. If the

74 // failure was an error result, it still carried total_cost_usd and the

75 // branch above has already run; connection or process failures yield

76 // no result message.

77 console.error(`Session ended with an error: ${error}`);

78 }

71 ```79 ```

72 80 

73 ```python Python theme={null}81 ```python Python theme={null}


76 84 

77 85 

78 async def main():86 async def main():

87 try:

79 async for message in query(prompt="Summarize this project"):88 async for message in query(prompt="Summarize this project"):

80 if isinstance(message, ResultMessage):89 if isinstance(message, ResultMessage):

81 print(f"Total cost: ${message.total_cost_usd or 0}")90 print(f"Total cost: ${message.total_cost_usd or 0}")

91 except Exception as error:

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

93 # failure was an error result, it still carried total_cost_usd and the

94 # branch above has already run; connection or process failures yield

95 # no result message.

96 print(f"Session ended with an error: {error}")

82 97 

83 98 

84 asyncio.run(main())99 asyncio.run(main())


110let totalInputTokens = 0;125let totalInputTokens = 0;

111let totalOutputTokens = 0;126let totalOutputTokens = 0;

112 127 

113for await (const message of query({ prompt: "Summarize this project" })) {128try {

129 for await (const message of query({ prompt: "Summarize this project" })) {

114 if (message.type === "assistant") {130 if (message.type === "assistant") {

115 const msgId = message.message.id;131 const msgId = message.message.id;

116 132 


121 totalOutputTokens += message.message.usage.output_tokens;137 totalOutputTokens += message.message.usage.output_tokens;

122 }138 }

123 }139 }

140 }

141} catch (error) {

142 // A single-shot query() throws after yielding an error result, so the

143 // totals below still reflect the steps that ran before the failure.

144 console.error(`Session ended with an error: ${error}`);

124}145}

125 146 

126console.log(`Steps: ${seenIds.size}`);147console.log(`Steps: ${seenIds.size}`);


139```typescript theme={null}160```typescript theme={null}

140import { query } from "@anthropic-ai/claude-agent-sdk";161import { query } from "@anthropic-ai/claude-agent-sdk";

141 162 

142for await (const message of query({ prompt: "Summarize this project" })) {163try {

164 for await (const message of query({ prompt: "Summarize this project" })) {

143 if (message.type !== "result") continue;165 if (message.type !== "result") continue;

144 166 

145 for (const [modelName, usage] of Object.entries(message.modelUsage)) {167 for (const [modelName, usage] of Object.entries(message.modelUsage)) {


149 console.log(` Cache read: ${usage.cacheReadInputTokens}`);171 console.log(` Cache read: ${usage.cacheReadInputTokens}`);

150 console.log(` Cache creation: ${usage.cacheCreationInputTokens}`);172 console.log(` Cache creation: ${usage.cacheCreationInputTokens}`);

151 }173 }

174 }

175} catch (error) {

176 // A single-shot query() throws after yielding an error result. If the

177 // failure was an error result, the per-model breakdown above has already

178 // printed; connection or process failures yield no result message.

179 console.error(`Session ended with an error: ${error}`);

152}180}

153```181```

154 182 


173 ];201 ];

174 202 

175 for (const prompt of prompts) {203 for (const prompt of prompts) {

204 try {

176 for await (const message of query({ prompt })) {205 for await (const message of query({ prompt })) {

177 if (message.type === "result") {206 if (message.type === "result") {

178 totalSpend += message.total_cost_usd;207 totalSpend += message.total_cost_usd;

179 console.log(`This call: $${message.total_cost_usd}`);208 console.log(`This call: $${message.total_cost_usd}`);

180 }209 }

181 }210 }

211 } catch (error) {

212 // A single-shot query() throws after yielding an error result. If the

213 // failure was an error result, this call's cost was already counted;

214 // connection or process failures yield no result message. Continue

215 // with the next prompt.

216 console.error(`Call failed: ${error}`);

217 }

182 }218 }

183 219 

184 console.log(`Total spend: $${totalSpend.toFixed(4)}`);220 console.log(`Total spend: $${totalSpend.toFixed(4)}`);


199 ]235 ]

200 236 

201 for prompt in prompts:237 for prompt in prompts:

238 try:

202 async for message in query(prompt=prompt):239 async for message in query(prompt=prompt):

203 if isinstance(message, ResultMessage):240 if isinstance(message, ResultMessage):

204 cost = message.total_cost_usd or 0241 cost = message.total_cost_usd or 0

205 total_spend += cost242 total_spend += cost

206 print(f"This call: ${cost}")243 print(f"This call: ${cost}")

244 except Exception as error:

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

246 # the failure was an error result, this call's cost was already

247 # counted; connection or process failures yield no result message.

248 # Continue with the next prompt.

249 print(f"Call failed: {error}")

207 250 

208 print(f"Total spend: ${total_spend:.4f}")251 print(f"Total spend: ${total_spend:.4f}")

209 252 

Details

50 50 

51Чтобы использовать file checkpointing, включите его в ваших параметрах, захватите UUID checkpoint из потока ответов, затем вызовите `rewindFiles()` (TypeScript) или `rewind_files()` (Python) когда вам нужно восстановить.51Чтобы использовать file checkpointing, включите его в ваших параметрах, захватите UUID checkpoint из потока ответов, затем вызовите `rewindFiles()` (TypeScript) или `rewind_files()` (Python) когда вам нужно восстановить.

52 52 

53Следующий пример показывает полный процесс: включение checkpointing, захват UUID checkpoint и ID сеанса из потока ответов, затем возобновление сеанса позже для отмотки файлов. Каждый шаг подробно объясняется ниже.53Следующий пример показывает полный процесс: включение checkpointing, захват UUID checkpoint и ID сеанса из потока ответов, затем возобновление сеанса позже для отмотки файлов. Каждый шаг подробно объясняется ниже. Примеры в этом разделе используют приглашение "Refactor the authentication module". Запустите их в проекте, который содержит модуль аутентификации, или измените приглашение на имена файлов, которые существуют в вашем проекте, чтобы вы могли наблюдать изменения файлов и видеть, как отмотка восстанавливает их.

54 54 

55<CodeGroup>55<CodeGroup>

56 ```python Python theme={null}56 ```python Python theme={null}


197 session_id = None197 session_id = None

198 198 

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

200 # Update checkpoint on each user message (keeps the latest)200 # Capture the first user message UUID as the checkpoint

201 if isinstance(message, UserMessage) and message.uuid:201 if isinstance(message, UserMessage) and message.uuid and checkpoint_id is None:

202 checkpoint_id = message.uuid202 checkpoint_id = message.uuid

203 # Capture session ID from the result message203 # Capture session ID from the result message

204 if isinstance(message, ResultMessage):204 if isinstance(message, ResultMessage):


210 let sessionId: string | undefined;210 let sessionId: string | undefined;

211 211 

212 for await (const message of response) {212 for await (const message of response) {

213 // Update checkpoint on each user message (keeps the latest)213 // Capture the first user message UUID as the checkpoint

214 if (message.type === "user" && message.uuid) {214 if (message.type === "user" && message.uuid && !checkpointId) {

215 checkpointId = message.uuid;215 checkpointId = message.uuid;

216 }216 }

217 // Capture session ID from any message that has it217 // Capture session ID from any message that has it


250 ```250 ```

251 </CodeGroup>251 </CodeGroup>

252 252 

253 Если вы захватили ID сеанса и UUID checkpoint, вы также можете отмотать из CLI:253 Если вы захватили ID сеанса и UUID checkpoint, вы также можете отмотать из CLI. Эта команда требует исполняемого файла `claude`, который поставляется с [установкой Claude Code](/ru/setup) и не устанавливается пакетом SDK. SDK включает checkpointing для вас, но когда вы запускаете `claude -p` напрямую, вы должны установить переменную окружения `CLAUDE_CODE_ENABLE_SDK_FILE_CHECKPOINTING`:

254 254 

255 ```bash theme={null}255 ```bash theme={null}

256 claude -p --resume <session-id> --rewind-files <checkpoint-uuid>256 CLAUDE_CODE_ENABLE_SDK_FILE_CHECKPOINTING=true claude -p --resume <session-id> --rewind-files <checkpoint-uuid>

257 ```257 ```

258 

259 Флаг `--rewind-files` не отображается в выводе `claude --help`, но CLI принимает его, как показано.

258 </Step>260 </Step>

259</Steps>261</Steps>

260 262 


270 272 

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

272 274 

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

276 

273<CodeGroup>277<CodeGroup>

274 ```python Python theme={null}278 ```python Python theme={null}

275 import asyncio279 import asyncio


752 756 

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

754 758 

759<h3 id="file-rewinding-is-not-enabled-error">

760 Ошибка "File rewinding is not enabled"

761</h3>

762 

763Эта ошибка возникает, когда вы пытаетесь выполнить неинтерактивную отмотку без включённого checkpointing: запуск простой команды `claude -p` с `--rewind-files`, или запуск сеанса SDK, включая возобновленный, чьи параметры не включают checkpointing. SDK устанавливает переменную окружения `CLAUDE_CODE_ENABLE_SDK_FILE_CHECKPOINTING` внутренне только когда `enable_file_checkpointing` (Python) или `enableFileCheckpointing` (TypeScript) включены в сеансе, выполняющем отмотку; простой CLI никогда её не устанавливает.

764 

765**Решение**: Для простого CLI установите переменную окружения при запуске команды:

766 

767```bash theme={null}

768CLAUDE_CODE_ENABLE_SDK_FILE_CHECKPOINTING=true claude -p --resume <session-id> --rewind-files <checkpoint-uuid>

769```

770 

771Для SDK установите `enable_file_checkpointing=True` (Python) или `enableFileCheckpointing: true` (TypeScript) в возобновленном сеансе, как это делается в примерах на этой странице.

772 

755<h3 id="processtransport-is-not-ready-for-writing-error">773<h3 id="processtransport-is-not-ready-for-writing-error">

756 Ошибка "ProcessTransport is not ready for writing"774 Ошибка "ProcessTransport is not ready for writing"

757</h3>775</h3>

Details

28 </Step>28 </Step>

29 29 

30 <Step title="Правила ask">30 <Step title="Правила ask">

31 Проверьте правила `ask` из [settings.json](/ru/settings#permission-settings). Если правило ask совпадает, вызов передаётся вашему callback [`canUseTool`](/ru/agent-sdk/user-input) для подтверждения, даже в режиме `bypassPermissions`. В режиме `dontAsk` совпадающее правило ask отклоняется вместо этого, потому что этот режим никогда не запрашивает подтверждение.31 Проверьте правила `ask` из [settings.json](/ru/settings#permission-settings). Если правило ask совпадает, вызов передаётся вашему callback [`canUseTool`](/ru/agent-sdk/user-input) для подтверждения, даже в режиме `bypassPermissions`.

32 

33 Инструменты, которые требуют взаимодействия с пользователем, ведут себя так же: `AskUserQuestion` и MCP инструменты, сервер которых устанавливает [`_meta["anthropic/requiresUserInteraction"]`](/ru/mcp#require-approval-for-a-specific-tool), всегда передаются callback, даже когда совпадает правило allow. В режиме `dontAsk` оба случая отклоняются вместо этого, потому что этот режим никогда не запрашивает подтверждение. {/* min-version: 2.1.199 */}Аннотация MCP требует Claude Code v2.1.199 или более поздней версии.

32 </Step>34 </Step>

33 35 

34 <Step title="Режим разрешений">36 <Step title="Режим разрешений">


46 48 

47<img src="https://mintcdn.com/claude-code/jYgs7qigNjO1Badj/images/agent-sdk/permissions-flow.svg?fit=max&auto=format&n=jYgs7qigNjO1Badj&q=85&s=c771ad9085b1277d3708027a49c744bc" alt="Диаграмма потока оценки разрешений из шести шагов, соответствующая шагам выше: запрос инструмента проходит через hooks, правила deny, правила ask, режим разрешений, правила allow и canUseTool. Hooks, правила deny и canUseTool могут маршрутизировать вниз к Blocked; обход режима разрешений, правила allow и canUseTool могут маршрутизировать вверх к Execute; правила ask маршрутизируют к canUseTool." width="1180" height="260" data-path="images/agent-sdk/permissions-flow.svg" />49<img src="https://mintcdn.com/claude-code/jYgs7qigNjO1Badj/images/agent-sdk/permissions-flow.svg?fit=max&auto=format&n=jYgs7qigNjO1Badj&q=85&s=c771ad9085b1277d3708027a49c744bc" alt="Диаграмма потока оценки разрешений из шести шагов, соответствующая шагам выше: запрос инструмента проходит через hooks, правила deny, правила ask, режим разрешений, правила allow и canUseTool. Hooks, правила deny и canUseTool могут маршрутизировать вниз к Blocked; обход режима разрешений, правила allow и canUseTool могут маршрутизировать вверх к Execute; правила ask маршрутизируют к canUseTool." width="1180" height="260" data-path="images/agent-sdk/permissions-flow.svg" />

48 50 

51Начиная с версии v2.1.198, если вы передаёте callback `canUseTool`, который эта последовательность оценки никогда не может достичь, TypeScript SDK выдаёт предупреждение процесса Node.js один раз при построении запроса. Код предупреждения — `CLAUDE_SDK_CAN_USE_TOOL_SHADOWED`. Две конфигурации вызывают его:

52 

53* `permissionMode: 'bypassPermissions'`, который автоматически одобряет каждый вызов, достигающий шага режима разрешений

54* Каждая запись `allowedTools` с простым названием, такая как `"Read"`, которая автоматически одобряет весь этот инструмент перед консультацией callback

55 

56Записи со спецификатором, такие как `Bash(ls *)`, и режим `acceptEdits` не вызывают его, и правила allow из файлов настроек не видны для проверки.

57 

58Слушайте с помощью `process.on('warning', ...)` и сопоставьте код для логирования или подавления его. Чтобы контролировать каждый вызов инструмента независимо от режима и правил, используйте вместо этого [hook `PreToolUse`](/ru/agent-sdk/hooks).

59 

49На этой странице основное внимание уделяется **правилам allow и deny** и **режимам разрешений**. Для других шагов:60На этой странице основное внимание уделяется **правилам allow и deny** и **режимам разрешений**. Для других шагов:

50 61 

51* **Hooks:** запустите пользовательский код для разрешения, отклонения или изменения запросов инструментов. См. [Управление выполнением с помощью hooks](/ru/agent-sdk/hooks).62* **Hooks:** запустите пользовательский код для разрешения, отклонения или изменения запросов инструментов. См. [Управление выполнением с помощью hooks](/ru/agent-sdk/hooks).


67Правила allow принимают глобы имён инструментов только после буквального префикса `mcp__<server>__`. Сегмент сервера должен быть свободен от глобов, чтобы правило называло конкретный сервер, который вы настроили: `mcp__puppeteer__*` соответствует каждому инструменту с сервера `puppeteer`, и `mcp__github__get_*` соответствует его инструментам `get_`. Неякорированная запись, такая как `allowed_tools=["*"]` или `allowed_tools=["mcp__*"]`, игнорируется с предупреждением при запуске и не одобряет ничего автоматически.78Правила allow принимают глобы имён инструментов только после буквального префикса `mcp__<server>__`. Сегмент сервера должен быть свободен от глобов, чтобы правило называло конкретный сервер, который вы настроили: `mcp__puppeteer__*` соответствует каждому инструменту с сервера `puppeteer`, и `mcp__github__get_*` соответствует его инструментам `get_`. Неякорированная запись, такая как `allowed_tools=["*"]` или `allowed_tools=["mcp__*"]`, игнорируется с предупреждением при запуске и не одобряет ничего автоматически.

68 79 

69<Warning>80<Warning>

70 **Автоматически одобренные инструменты никогда не достигают `canUseTool`.** Вызов инструмента, одобренный на любом более раннем этапе, с помощью `acceptEdits` или `bypassPermissions`, или по правилу allow, пропускает ваш обратный вызов `canUseTool`, поэтому проверки разрешений, которые вы там поместили, молча обходятся для этого инструмента. Охват зависит от формы записи: простое имя, такое как `Read` или `mcp__github__get_issue`, автоматически одобряет каждый вызов этого инструмента, в то время как правило с областью действия, такое как `Bash(ls *)`, автоматически одобряет только совпадающие вызовы, и другие вызовы `Bash` всё ещё переходят к обратному вызову. Для проверок, которые должны выполняться при каждом вызове инструмента, используйте [`PreToolUse` hook](/ru/agent-sdk/hooks): hooks выполняются перед каждым другим шагом, и отказ hook применяется даже в режиме `bypassPermissions`.81 **Автоматически одобренные инструменты никогда не достигают `canUseTool`.** Вызов инструмента, одобренный на любом более раннем этапе, с помощью `acceptEdits` или `bypassPermissions`, или по правилу allow, пропускает ваш обратный вызов `canUseTool`, поэтому проверки разрешений, которые вы там поместили, молча обходятся для этого инструмента. Исключением являются инструменты, требующие взаимодействия с пользователем, `AskUserQuestion` и инструменты MCP, отмеченные с помощью [`_meta["anthropic/requiresUserInteraction"]`](/ru/mcp#require-approval-for-a-specific-tool), которые достигают обратного вызова даже при совпадении правила allow. Охват зависит от формы записи: простое имя, такое как `Read` или `mcp__github__get_issue`, автоматически одобряет каждый вызов этого инструмента, в то время как правило с областью действия, такое как `Bash(ls *)`, автоматически одобряет только совпадающие вызовы, и другие вызовы `Bash` всё ещё переходят к обратному вызову. Для проверок, которые должны выполняться при каждом вызове инструмента, используйте [`PreToolUse` hook](/ru/agent-sdk/hooks): hooks выполняются перед каждым другим шагом, и отказ hook применяется даже в режиме `bypassPermissions`.

71</Warning>82</Warning>

72 83 

73Для заблокированного агента объедините `allowedTools` с `permissionMode: "dontAsk"`. Указанные инструменты одобрены; всё остальное отклоняется полностью вместо запроса:84Для заблокированного агента объедините `allowedTools` с `permissionMode: "dontAsk"`. Указанные инструменты одобрены; всё остальное отклоняется полностью вместо запроса:

Details

958```958```

959 959 

960* `API_TIMEOUT_MS`: тайм-аут для каждого запроса на клиенте Anthropic в миллисекундах. По умолчанию `600000`. Применяется к основному циклу и всем подагентам.960* `API_TIMEOUT_MS`: тайм-аут для каждого запроса на клиенте Anthropic в миллисекундах. По умолчанию `600000`. Применяется к основному циклу и всем подагентам.

961* `CLAUDE_CODE_MAX_RETRIES`: максимальное количество повторных попыток API. По умолчанию `10`, ограничено `15`. Каждая повторная попытка получает свое собственное окно `API_TIMEOUT_MS`, поэтому наихудшее время стены примерно `API_TIMEOUT_MS × (CLAUDE_CODE_MAX_RETRIES + 1)` плюс отступ. Для автоматических запусков, которым нужно ждать через более длительные сбои, установите `CLAUDE_CODE_RETRY_WATCHDOG=1` для повторной попытки ошибок емкости бесконечно.961* `CLAUDE_CODE_MAX_RETRIES`: максимальное количество повторных попыток API. По умолчанию `10`, ограничено `15`. Каждая повторная попытка получает свое собственное окно `API_TIMEOUT_MS`, поэтому наихудшее время стены примерно `API_TIMEOUT_MS × (CLAUDE_CODE_MAX_RETRIES + 1)` плюс отступ. Для автоматических запусков, которым нужно ждать через более длительные сбои, установите `CLAUDE_CODE_RETRY_WATCHDOG=1`: он повторяет ошибки емкости бесконечно, и {/* min-version: 2.1.199 */}начиная с Claude Code v2.1.199 повышает значение по умолчанию для других переходных ошибок до `300` и удаляет ограничение на эту переменную.

962* `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS`: сторожевой таймер зависания для подагентов, запущенных с `run_in_background`. По умолчанию `600000`. Сбрасывается при каждом событии потока; при зависании он прерывает подагента, отмечает задачу как неудачную и выводит ошибку родителю с любым частичным результатом. Не применяется к синхронным подагентам.962* `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS`: сторожевой таймер зависания для подагентов, запущенных с `run_in_background`. По умолчанию `600000`. Сбрасывается при каждом событии потока; при зависании он прерывает подагента, отмечает задачу как неудачную и выводит ошибку родителю с любым частичным результатом. Не применяется к синхронным подагентам.

963* `CLAUDE_ENABLE_STREAM_WATCHDOG` с `CLAUDE_STREAM_IDLE_TIMEOUT_MS`: прерывает запрос, когда заголовки прибыли, но тело ответа перестает потоковать. Сторожевой таймер включен по умолчанию для всех поставщиков; установите `CLAUDE_ENABLE_STREAM_WATCHDOG=0` для отключения. `CLAUDE_STREAM_IDLE_TIMEOUT_MS` по умолчанию `300000` и зажимается до этого минимума. Прерванный запрос проходит через обычный путь повторной попытки.963* `CLAUDE_ENABLE_STREAM_WATCHDOG` с `CLAUDE_STREAM_IDLE_TIMEOUT_MS`: прерывает запрос, когда заголовки прибыли, но тело ответа перестает потоковать. Сторожевой таймер включен по умолчанию для всех поставщиков; установите `CLAUDE_ENABLE_STREAM_WATCHDOG=0` для отключения. `CLAUDE_STREAM_IDLE_TIMEOUT_MS` по умолчанию `300000` и зажимается до этого минимума. Прерванный запрос проходит через обычный путь повторной попытки.

964 964 

Details

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

8 8 

9Подагенты — это отдельные экземпляры агентов, которые ваш основной агент может создавать для обработки сосредоточенных подзадач.9Подагенты — это отдельные экземпляры агентов, которые ваш основной агент может создавать для обработки сосредоточенных подзадач.

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

11 11 

12В этом руководстве объясняется, как определять и использовать подагентов в SDK с помощью параметра `agents`.12В этом руководстве объясняется, как определять и использовать подагентов в SDK с помощью параметра `agents`.

13 13 


17 17 

18Вы можете создавать подагентов тремя способами:18Вы можете создавать подагентов тремя способами:

19 19 

20* **Программно**: используйте параметр `agents` в параметрах `query()` ([TypeScript](/ru/agent-sdk/typescript#agentdefinition), [Python](/ru/agent-sdk/python#agentdefinition))20* **Программно**: используйте параметр `agents` в параметрах `query()`. См. справочники [TypeScript](/ru/agent-sdk/typescript#agentdefinition) и [Python](/ru/agent-sdk/python#agentdefinition)

21* **На основе файловой системы**: определяйте агентов как файлы markdown в директориях `.claude/agents/` (см. [определение подагентов как файлов](/ru/sub-agents))21* **На основе файловой системы**: определяйте агентов как файлы markdown в директориях `.claude/agents/`. См. [определение подагентов как файлов](/ru/sub-agents)

22* **Встроенный универсальный**: Claude может вызывать встроенного подагента `general-purpose` в любое время через инструмент Agent без необходимости что-либо определять22* **Встроенный универсальный**: Claude может вызывать встроенного подагента `general-purpose` в любое время через инструмент Agent без необходимости что-либо определять

23 23 

24Это руководство сосредоточено на программном подходе, который рекомендуется для приложений SDK.24Это руководство сосредоточено на программном подходе, который рекомендуется для приложений SDK.

25 25 

26Когда вы определяете подагентов, Claude определяет, следует ли их вызывать, на основе поля `description` каждого подагента. Напишите четкие описания, которые объясняют, когда следует использовать подагента, и Claude автоматически делегирует соответствующие задачи. Вы также можете явно запросить подагента по имени в своем промпте (например, "Используйте агента code-reviewer для...").26Когда вы определяете подагентов, Claude определяет, следует ли их вызывать, на основе поля `description` каждого подагента. Напишите четкие описания, которые объясняют, когда следует использовать подагента, и Claude автоматически делегирует соответствующие задачи. Вы также можете явно запросить подагента по имени в своем промпте, например "Используйте агента code-reviewer для...".

27 27 

28<h2 id="benefits-of-using-subagents">28<h2 id="benefits-of-using-subagents">

29 Преимущества использования подагентов29 Преимущества использования подагентов


61 61 

62**Пример:** подагент `doc-reviewer` может иметь доступ только к инструментам Read и Grep, обеспечивая анализ, но никогда случайно не модифицируя файлы документации.62**Пример:** подагент `doc-reviewer` может иметь доступ только к инструментам Read и Grep, обеспечивая анализ, но никогда случайно не модифицируя файлы документации.

63 63 

64<h2 id="creating-subagents">64<h2 id="create-subagents">

65 Создание подагентов65 Создание подагентов

66</h2>66</h2>

67 67 


69 Программное определение (рекомендуется)69 Программное определение (рекомендуется)

70</h3>70</h3>

71 71 

72Определяйте подагентов непосредственно в коде, используя параметр `agents`. Этот пример создает двух подагентов: рецензента кода с доступом только для чтения и средство запуска тестов, которое может выполнять команды. Claude вызывает подагентов через инструмент `Agent`, поэтому включите `Agent` в `allowedTools` для автоматического одобрения вызовов подагентов без запроса разрешения.72Определяйте подагентов непосредственно в коде, используя параметр `agents`. Claude вызывает подагентов через инструмент `Agent`, поэтому включите `Agent` в `allowedTools` для автоматического одобрения вызовов подагентов без запроса разрешения.

73 73 

74Большинство примеров на этой странице выводят только окончательный результат. Чтобы подтвердить, что Claude делегировал работу подагенту, а не ответил напрямую, см. раздел [Обнаружение вызова подагента](#detecting-subagent-invocation).74Большинство примеров на этой странице выводят только окончательный результат. Чтобы подтвердить, что Claude делегировал работу подагенту, а не ответил напрямую, см. раздел [Обнаружение вызова подагента](#detect-subagent-invocation).

75 

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

75 77 

76<CodeGroup>78<CodeGroup>

77 ```python Python theme={null}79 ```python Python theme={null}


197 199 

198В Python SDK многословные имена полей, такие как `disallowedTools` и `mcpServers`, сохраняют написание camelCase для соответствия формату передачи, а не следуют соглашению Python snake\_case. Подробности см. в [справочнике `AgentDefinition`](/ru/agent-sdk/python#agentdefinition).200В Python SDK многословные имена полей, такие как `disallowedTools` и `mcpServers`, сохраняют написание camelCase для соответствия формату передачи, а не следуют соглашению Python snake\_case. Подробности см. в [справочнике `AgentDefinition`](/ru/agent-sdk/python#agentdefinition).

199 201 

202Два поведения подагентов изменились в Claude Code v2.1.198:

203 

204* Подагенты работают в фоновом режиме по умолчанию. Вызов инструмента Agent, который опускает входной параметр [`run_in_background`](/ru/agent-sdk/typescript), запускает фоновый подагент, и Claude устанавливает `run_in_background: false`, когда ему нужен результат перед продолжением. До версии v2.1.198 опускание `run_in_background` запускало подагента синхронно. Установите поле `background` в `true`, чтобы принудительно включить фоновое выполнение для конкретного агента независимо от того, что запрашивает Claude.

205* Подагент наследует конфигурацию расширенного мышления основной сессии. В более ранних версиях расширенное мышление отключено внутри подагентов независимо от параметра основной сессии.

206 

200<Note>207<Note>

201 {/* min-version: 2.1.172 */}Начиная с Claude Code v2.1.172, подагенты могут создавать своих собственных подагентов. Подагент на пять уровней ниже основного агента не может создавать дополнительных подагентов, независимо от того, работает ли он в переднем плане или в фоновом режиме. Чтобы предотвратить создание подагентом других подагентов, опустите `Agent` из его массива `tools` или добавьте его в `disallowedTools`. Полные правила глубины см. в разделе [вложенные подагенты](/ru/sub-agents#spawn-nested-subagents).208 {/* min-version: 2.1.172 */}Начиная с Claude Code v2.1.172, подагенты могут создавать своих собственных подагентов. Подагент на пять уровней ниже основного агента не может создавать дополнительных подагентов, независимо от того, работает ли он в переднем плане или в фоновом режиме. Чтобы предотвратить создание подагентом других подагентов, опустите `Agent` из его массива `tools` или добавьте его в `disallowedTools`. Полные правила глубины см. в разделе [вложенные подагенты](/ru/sub-agents#spawn-nested-subagents).

202</Note>209</Note>


227 Родитель получает финальное сообщение подагента дословно как результат инструмента Agent, но может суммировать его в своем собственном ответе. Чтобы сохранить выходные данные подагента дословно в ответе, обращенном к пользователю, включите инструкцию об этом в промпт или опцию `systemPrompt`, которую вы передаете основному вызову `query()`.234 Родитель получает финальное сообщение подагента дословно как результат инструмента Agent, но может суммировать его в своем собственном ответе. Чтобы сохранить выходные данные подагента дословно в ответе, обращенном к пользователю, включите инструкцию об этом в промпт или опцию `systemPrompt`, которую вы передаете основному вызову `query()`.

228</Note>235</Note>

229 236 

230<h2 id="invoking-subagents">237{/* min-version: 2.1.199 */}Начиная с Claude Code v2.1.199, ошибка API, которая завершает работу подагента раньше времени, такая как ограничение скорости, никогда не доставляется как его результат. Если подагент уже произвел выходные данные, инструмент Agent возвращает эти частичные выходные данные с примечанием о том, что подагент не завершил работу; в противном случае результат инструмента — это сообщение об ошибке, `Agent terminated early due to an API error`, за которым следует деталь ошибки. См. [API errors in subagents](/ru/sub-agents#api-errors-in-subagents) для поведения на переднем плане и в фоновом режиме.

238 

239<h2 id="invoke-subagents">

231 Вызов подагентов240 Вызов подагентов

232</h2>241</h2>

233 242 


329 ```338 ```

330</CodeGroup>339</CodeGroup>

331 340 

332<h2 id="detecting-subagent-invocation">341<h2 id="detect-subagent-invocation">

333 Обнаружение вызова подагента342 Обнаружение вызова подагента

334</h2>343</h2>

335 344 

336Подагенты вызываются через инструмент Agent. Чтобы обнаружить, когда вызывается подагент, проверьте блоки `tool_use`, где `name` — это `"Agent"`. Сообщения из контекста подагента включают поле `parent_tool_use_id`.345Claude вызывает подагентов через инструмент Agent. Чтобы обнаружить, когда вызывается подагент, проверьте блоки `tool_use`, где `name` — это `"Agent"`. Сообщения из контекста подагента включают поле `parent_tool_use_id`.

337 346 

338<Note>347<Note>

339 Имя инструмента было переименовано с `"Task"` на `"Agent"` в Claude Code v2.1.63. Текущие выпуски SDK выдают `"Agent"` в блоках `tool_use`, но все еще используют `"Task"` в списке инструментов `system:init` и в `result.permission_denials[].tool_name`. Проверка обоих значений в `block.name` обеспечивает совместимость между версиями SDK.348 Имя инструмента было переименовано с `"Task"` на `"Agent"` в Claude Code v2.1.63. Текущие выпуски SDK выдают `"Agent"` в блоках `tool_use`, но все еще используют `"Task"` в списке инструментов `system:init` и в `result.permission_denials[].tool_name`. Проверка обоих значений в `block.name` обеспечивает совместимость между версиями SDK.


422 ```431 ```

423</CodeGroup>432</CodeGroup>

424 433 

425<h2 id="resuming-subagents">434<h2 id="resume-subagents">

426 Возобновление подагентов435 Возобновление подагентов

427</h2>436</h2>

428 437 

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

430 439 

431Когда подагент завершается, результат инструмента Agent включает текстовый блок, содержащий `agentId: <id>`. Встроенные агенты [`Explore` и `Plan`](/ru/sub-agents#built-in-subagents) работают в один проход и не возвращают `agentId`, поэтому используйте пользовательского агента или `general-purpose`, когда вам нужно возобновить. Чтобы программно возобновить подагента:440Когда подагент завершается, результат инструмента Agent включает текстовый блок, содержащий `agentId: <id>`. Встроенные агенты [`Explore` и `Plan`](/ru/sub-agents#built-in-subagents) работают в один проход и не возвращают `agentId`, поэтому используйте пользовательского агента или `general-purpose`, когда вам нужно возобновить. Чтобы программно возобновить подагента:

432 441 


568 577 

569* **Компактирование основной беседы**: когда основная беседа компактируется, стенограммы подагентов не затрагиваются. Они хранятся в отдельных файлах.578* **Компактирование основной беседы**: когда основная беседа компактируется, стенограммы подагентов не затрагиваются. Они хранятся в отдельных файлах.

570* **Сохранение сессии**: стенограммы подагентов сохраняются в пределах их сессии. Вы можете возобновить подагента после перезагрузки Claude Code, возобновив ту же сессию.579* **Сохранение сессии**: стенограммы подагентов сохраняются в пределах их сессии. Вы можете возобновить подагента после перезагрузки Claude Code, возобновив ту же сессию.

571* **Автоматическая очистка**: стенограммы очищаются на основе параметра `cleanupPeriodDays` (по умолчанию: 30 дней).580* **Автоматическая очистка**: стенограммы очищаются на основе параметра `cleanupPeriodDays`, который по умолчанию составляет 30 дней.

572 581 

573<h2 id="tool-restrictions-1">582<h2 id="tool-restrictions-1">

574 Ограничения инструментов583 Ограничения инструментов


662 671 

663Если Claude выполняет задачи напрямую вместо делегирования вашему подагенту:672Если Claude выполняет задачи напрямую вместо делегирования вашему подагенту:

664 673 

6651. **Проверьте, что вызовы Agent одобрены**: включите `Agent` в `allowedTools` для автоматического одобрения вызовов подагента. Без этого вызовы Agent переходят к вашему обратному вызову `canUseTool` или в режиме `dontAsk` отклоняются674* **Проверьте, что вызовы Agent одобрены**: включите `Agent` в `allowedTools` для автоматического одобрения вызовов подагента. Без этого вызовы Agent переходят к вашему обратному вызову `canUseTool` или в режиме `dontAsk` отклоняются

6662. **Используйте явное указание**: упомяните подагента по имени в своем промпте (например, "Use the code-reviewer agent to...")675* **Используйте явное указание**: упомяните подагента по имени в своем промпте, например "Use the code-reviewer agent to..."

6673. **Напишите четкое описание**: объясните ровно, когда следует использовать подагента, чтобы Claude мог правильно сопоставить задачи676* **Напишите четкое описание**: объясните ровно, когда следует использовать подагента, чтобы Claude мог правильно сопоставить задачи

668 677 

669<h3 id="filesystem-based-agents-not-loading">678<h3 id="filesystem-based-agents-not-loading">

670 Агенты на основе файловой системы не загружаются679 Агенты на основе файловой системы не загружаются

671</h3>680</h3>

672 681 

673Агенты, определенные в `.claude/agents/`, загружаются только при запуске. Если вы создаете новый файл агента во время работы Claude Code, перезагрузите сессию, чтобы загрузить его.682Claude Code отслеживает `~/.claude/agents/` и `.claude/agents/` и подхватывает новый или отредактированный файл агента в течение нескольких секунд без необходимости перезагрузки. Если определение никогда не появляется, проработайте эти причины:

683 

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

685* **Неверный frontmatter или дублирующееся имя `name`**: проверьте YAML файла и то, использует ли существующий агент уже это имя `name`.

686* **`--disable-slash-commands`**: сессии, запущенные с этим флагом, не отслеживают эти директории и всегда требуют перезагрузки для загрузки новых файлов.

687* **Программный агент с тем же именем**: `agents`, переданные в `query()`, переопределяют агента файловой системы с тем же именем.

688 

689Для формата файла см. [как писать файлы подагентов](/ru/sub-agents#write-subagent-files).

674 690 

675<h3 id="windows-long-prompt-failures">691<h3 id="long-prompt-failures-on-windows">

676 Windows: сбои при длинных промптах692 Сбои при длинных промптах в Windows

677</h3>693</h3>

678 694 

679В Windows подагенты с очень длинными промптами могут не работать из-за ограничений длины командной строки (8191 символов). Держите промпты краткими или используйте агентов на основе файловой системы для сложных инструкций.695В Windows подагенты с очень длинными промптами могут не работать из-за ограничения длины командной строки в 8191 символов. Держите промпты краткими или используйте агентов на основе файловой системы для сложных инструкций.

680 696 

681<h2 id="related-documentation">697<h2 id="related-documentation">

682 Связанная документация698 Связанная документация

Details

9Отслеживание задач предоставляет структурированный способ управления задачами и отображения прогресса пользователям. Claude Agent SDK включает встроенную функциональность задач, которая помогает организовать сложные рабочие процессы и держать пользователей в курсе хода выполнения задач.9Отслеживание задач предоставляет структурированный способ управления задачами и отображения прогресса пользователям. Claude Agent SDK включает встроенную функциональность задач, которая помогает организовать сложные рабочие процессы и держать пользователей в курсе хода выполнения задач.

10 10 

11<Note>11<Note>

12 Начиная с TypeScript Agent SDK 0.3.142 и Claude Code v2.1.142, сеансы используют структурированные инструменты Task `TaskCreate`, `TaskUpdate`, `TaskGet` и `TaskList` вместо `TodoWrite`. Смотрите [Миграция на инструменты Task](#migrate-to-task-tools) для информации о том, как отслеживать изменения кода. Примеры на этой странице устанавливают `CLAUDE_CODE_ENABLE_TASKS=0` для продолжения отображения `TodoWrite` для сеансов, которые еще не перешли на новую версию.12 Начиная с TypeScript Agent SDK 0.3.142 и Claude Code v2.1.142, сеансы используют структурированные инструменты Task `TaskCreate`, `TaskUpdate`, `TaskGet` и `TaskList` вместо `TodoWrite`. Python SDK получает это изменение из Claude Code CLI, который он запускает, а не из версии пакета Python: переключение применяется после того, как этот CLI — копия, включенная в пакет pip, или та, на которую вы указываете с помощью `cli_path` — имеет версию v2.1.142 или позже. Смотрите [Миграция на инструменты Task](#migrate-to-task-tools) для информации о том, как отслеживать изменения кода. Примеры на этой странице устанавливают `CLAUDE_CODE_ENABLE_TASKS=0` для продолжения отображения `TodoWrite` для сеансов, которые еще не перешли на новую версию.

13</Note>13</Note>

14 14 

15<h3 id="todo-lifecycle">15<h3 id="todo-lifecycle">


27 Когда используются задачи27 Когда используются задачи

28</h3>28</h3>

29 29 

30SDK автоматически создает задачи для:30SDK создает задачи для большинства многошаговых работ, таких как:

31 31 

32* **Сложных многошаговых задач**, требующих 3 или более отдельных действий32* **Сложных многошаговых задач**, требующих 3 или более отдельных действий

33* **Списков задач, предоставленных пользователем**, когда упоминаются несколько элементов33* **Списков задач, предоставленных пользователем**, когда упоминаются несколько элементов

34* **Нетривиальных операций**, которые выигрывают от отслеживания прогресса34* **Нетривиальных операций**, которые выигрывают от отслеживания прогресса

35* **Явных запросов**, когда пользователи просят организовать задачи35* **Явных запросов**, когда пользователи просят организовать задачи

36 36 

37Это может пропустить задачи для очень коротких или одношаговых запросов.

38 

37<h2 id="examples">39<h2 id="examples">

38 Примеры40 Примеры

39</h2>41</h2>

40 42 

43Перед запуском этих примеров установите Claude Agent SDK, следуя [краткому руководству](/ru/agent-sdk/quickstart).

44 

45Каждый пример выполняется до завершения агентом и выдачи его финального сообщения результата. Если сеанс сначала достигает лимита ходов, то сообщение результата имеет подтип `error_max_turns`. Проверьте `subtype`, чтобы обнаружить это завершение.

46 

47Эти примеры используют однократные вызовы `query()`. После выдачи результата `error_max_turns`, `query()` выбрасывает ошибку, которая включает `Reached maximum number of turns`. Каждый пример оборачивает свой цикл в блок try для чистого выхода при возникновении этого события.

48 

49См. [Обработка результата](/ru/agent-sdk/agent-loop#handle-the-result) для получения информации о подтипах результатов.

50 

41<h3 id="monitoring-todo-changes">51<h3 id="monitoring-todo-changes">

42 Мониторинг изменений задач52 Мониторинг изменений задач

43</h3>53</h3>


46 ```typescript TypeScript theme={null}56 ```typescript TypeScript theme={null}

47 import { query } from "@anthropic-ai/claude-agent-sdk";57 import { query } from "@anthropic-ai/claude-agent-sdk";

48 58 

59 try {

49 for await (const message of query({60 for await (const message of query({

50 prompt: "Optimize my React app performance and track progress with todos",61 prompt: "Optimize my React app performance and track progress with todos",

51 // Re-enable TodoWrite, which this example monitors. Without it, the SDK uses62 // Re-enable TodoWrite, which this example monitors. Without it, the SDK uses


68 }79 }

69 }80 }

70 }81 }

82 } catch (error) {

83 // A single-shot query() throws after yielding an error result,

84 // such as when the maxTurns limit is hit.

85 console.log(`Session ended with an error: ${error}`);

86 }

71 ```87 ```

72 88 

73 ```python Python theme={null}89 ```python Python theme={null}

90 import asyncio

91 

74 from claude_agent_sdk import query, ClaudeAgentOptions, AssistantMessage, ToolUseBlock92 from claude_agent_sdk import query, ClaudeAgentOptions, AssistantMessage, ToolUseBlock

75 93 

94 

95 async def main():

96 try:

76 async for message in query(97 async for message in query(

77 prompt="Optimize my React app performance and track progress with todos",98 prompt="Optimize my React app performance and track progress with todos",

78 # Re-enable TodoWrite, which this example monitors. Without it, the SDK uses99 # Re-enable TodoWrite, which this example monitors. Without it, the SDK uses


95 else "❌"116 else "❌"

96 )117 )

97 print(f"{i + 1}. {status} {todo['content']}")118 print(f"{i + 1}. {status} {todo['content']}")

119 except Exception as error:

120 # A single-shot query() raises after yielding an error result,

121 # such as when the max_turns limit is hit.

122 print(f"Session ended with an error: {error}")

123 

124 

125 asyncio.run(main())

98 ```126 ```

99</CodeGroup>127</CodeGroup>

100 128 


128 }156 }

129 157 

130 async trackQuery(prompt: string) {158 async trackQuery(prompt: string) {

159 try {

131 for await (const message of query({160 for await (const message of query({

132 prompt,161 prompt,

133 // Re-enable TodoWrite, which this tracker watches for.162 // Re-enable TodoWrite, which this tracker watches for.


142 }171 }

143 }172 }

144 }173 }

174 } catch (error) {

175 // A single-shot query() throws after yielding an error result,

176 // such as when the maxTurns limit is hit.

177 console.log(`Session ended with an error: ${error}`);

178 }

145 }179 }

146 }180 }

147 181 


151 ```185 ```

152 186 

153 ```python Python theme={null}187 ```python Python theme={null}

188 import asyncio

189 

154 from claude_agent_sdk import query, ClaudeAgentOptions, AssistantMessage, ToolUseBlock190 from claude_agent_sdk import query, ClaudeAgentOptions, AssistantMessage, ToolUseBlock

155 from typing import List, Dict191 from typing import List, Dict

156 192 


186 print(f"{i + 1}. {icon} {text}")222 print(f"{i + 1}. {icon} {text}")

187 223 

188 async def track_query(self, prompt: str):224 async def track_query(self, prompt: str):

225 try:

189 async for message in query(226 async for message in query(

190 prompt=prompt,227 prompt=prompt,

191 # Re-enable TodoWrite, which this tracker watches for.228 # Re-enable TodoWrite, which this tracker watches for.


196 if isinstance(block, ToolUseBlock) and block.name == "TodoWrite":233 if isinstance(block, ToolUseBlock) and block.name == "TodoWrite":

197 self.todos = block.input["todos"]234 self.todos = block.input["todos"]

198 self.display_progress()235 self.display_progress()

236 except Exception as error:

237 # A single-shot query() raises after yielding an error result,

238 # such as when the max_turns limit is hit.

239 print(f"Session ended with an error: {error}")

199 240 

200 241 

201 # Usage242 # Usage

243 async def main():

202 tracker = TodoTracker()244 tracker = TodoTracker()

203 await tracker.track_query("Build a complete authentication system with todos")245 await tracker.track_query("Build a complete authentication system with todos")

246 

247 

248 asyncio.run(main())

204 ```249 ```

205</CodeGroup>250</CodeGroup>

206 251 


217| Форма элемента: `{ content, status, activeForm }` | Ввод `TaskCreate`: `{ subject, description, activeForm?, metadata? }`. Ввод `TaskUpdate`: `{ taskId, status?, subject?, description?, activeForm?, addBlocks?, addBlockedBy?, owner?, metadata? }`. `status` это `"pending"`, `"in_progress"` или `"completed"`; установите `status: "deleted"` для удаления |262| Форма элемента: `{ content, status, activeForm }` | Ввод `TaskCreate`: `{ subject, description, activeForm?, metadata? }`. Ввод `TaskUpdate`: `{ taskId, status?, subject?, description?, activeForm?, addBlocks?, addBlockedBy?, owner?, metadata? }`. `status` это `"pending"`, `"in_progress"` или `"completed"`; установите `status: "deleted"` для удаления |

218| Отобразить `block.input.todos` напрямую | Накопить элементы между вызовами или прочитать снимок из результата инструмента `TaskList` |263| Отобразить `block.input.todos` напрямую | Накопить элементы между вызовами или прочитать снимок из результата инструмента `TaskList` |

219 264 

220Назначенный ID задачи отсутствует во вводе `TaskCreate`. Он возвращается в соответствующем `tool_result` как `{ task: { id, subject } }`, поэтому захватите его из блока результата, чтобы индексировать вашу карту. Следующий пример показывает минимальное изменение цикла [Мониторинг изменений задач](#monitoring-todo-changes). Для отображения полного списка смотрите результат инструмента `TaskList` в потоке или накопите результаты `TaskCreate` и вводы `TaskUpdate` в карту.265Назначенный ID задачи отсутствует во вводе `TaskCreate`. Он возвращается в соответствующем `tool_result` как `{ task: { id, subject } }`, поэтому захватите его из блока результата, чтобы индексировать вашу карту. Следующий пример показывает минимальное изменение цикла [Мониторинг изменений задач](#monitoring-todo-changes). Он читает только вводы `tool_use` и пропускает захват ID из блоков `tool_result`. Для отображения полного списка смотрите результат инструмента `TaskList` в потоке или накопите результаты `TaskCreate` и вводы `TaskUpdate` в карту.

221 266 

222Потоковый ввод `tool_use` — это необработанная форма, которую выдала модель. Claude Code исправляет некоторые близкие, но неправильные имена ключей перед выполнением, сопоставляя `id` или `task_id` с `taskId` и `active_form` с `activeForm`, но это исправление не отражается в потоке. Читайте поля ввода `TaskUpdate` защитно, как это делают примеры ниже, а не предполагайте, что каноническое имя всегда присутствует.267Потоковый ввод `tool_use` — это необработанная форма, которую выдала модель. Claude Code исправляет некоторые близкие, но неправильные имена ключей перед выполнением, сопоставляя `id` или `task_id` с `taskId` и `active_form` с `activeForm`, но это исправление не отражается в потоке. Читайте поля ввода `TaskUpdate` защитно, как это делают примеры ниже, а не предполагайте, что каноническое имя всегда присутствует.

223 268 


225 ```typescript TypeScript theme={null}270 ```typescript TypeScript theme={null}

226 import { query } from "@anthropic-ai/claude-agent-sdk";271 import { query } from "@anthropic-ai/claude-agent-sdk";

227 272 

273 try {

228 for await (const message of query({274 for await (const message of query({

229 prompt: "Optimize my React app performance",275 prompt: "Optimize my React app performance and track progress with todos",

276 options: { maxTurns: 15 },

230 })) {277 })) {

231 if (message.type !== "assistant") continue;278 if (message.type !== "assistant") continue;

232 for (const block of message.message.content) {279 for (const block of message.message.content) {


246 }293 }

247 }294 }

248 }295 }

296 } catch (error) {

297 // A single-shot query() throws after yielding an error result.

298 console.log(`Session ended with an error: ${error}`);

299 }

249 ```300 ```

250 301 

251 ```python Python theme={null}302 ```python Python theme={null}

252 from claude_agent_sdk import query, AssistantMessage, ToolUseBlock303 import asyncio

253 304 

305 from claude_agent_sdk import query, ClaudeAgentOptions, AssistantMessage, ToolUseBlock

306 

307 async def main():

308 try:

254 async for message in query(309 async for message in query(

255 prompt="Optimize my React app performance",310 prompt="Optimize my React app performance and track progress with todos",

311 options=ClaudeAgentOptions(max_turns=15),

256 ):312 ):

257 if not isinstance(message, AssistantMessage):313 if not isinstance(message, AssistantMessage):

258 continue314 continue


269 )325 )

270 if task_id:326 if task_id:

271 print(f" {task_id} -> {block.input['status']}")327 print(f" {task_id} -> {block.input['status']}")

328 except Exception as error:

329 # A single-shot query() raises after yielding an error result.

330 print(f"Session ended with an error: {error}")

331 

332 

333 asyncio.run(main())

272 ```334 ```

273</CodeGroup>335</CodeGroup>

274 336 

Details

551```551```

552 552 

553* `API_TIMEOUT_MS`: timeout для каждого запроса на клиенте Anthropic, в миллисекундах. По умолчанию `600000`. Применяется к основному циклу и всем подагентам.553* `API_TIMEOUT_MS`: timeout для каждого запроса на клиенте Anthropic, в миллисекундах. По умолчанию `600000`. Применяется к основному циклу и всем подагентам.

554* `CLAUDE_CODE_MAX_RETRIES`: максимальное количество повторных попыток API. По умолчанию `10`, ограничено `15`. Каждая повторная попытка получает своё собственное окно `API_TIMEOUT_MS`, поэтому наихудший случай wall time примерно `API_TIMEOUT_MS × (CLAUDE_CODE_MAX_RETRIES + 1)` плюс backoff. Для автоматических запусков, которым нужно ждать через более длительные сбои, установите `CLAUDE_CODE_RETRY_WATCHDOG=1` для повторной попытки ошибок ёмкости бесконечно.554* `CLAUDE_CODE_MAX_RETRIES`: максимальное количество повторных попыток API. По умолчанию `10`, ограничено `15`. Каждая повторная попытка получает своё собственное окно `API_TIMEOUT_MS`, поэтому наихудший случай wall time примерно `API_TIMEOUT_MS × (CLAUDE_CODE_MAX_RETRIES + 1)` плюс backoff. Для автоматических запусков, которым нужно ждать через более длительные сбои, установите `CLAUDE_CODE_RETRY_WATCHDOG=1`: он повторяет ошибки ёмкости бесконечно, и {/* min-version: 2.1.199 */}начиная с Claude Code v2.1.199 повышает значение по умолчанию для других переходящих ошибок до `300` и удаляет ограничение на эту переменную.

555* `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS`: watchdog зависания для подагентов, запущенных с `run_in_background`. По умолчанию `600000`. Сбрасывается при каждом событии потока; при зависании прерывает подагента, отмечает задачу как неудачную и выводит ошибку родителю с любым частичным результатом. Не применяется к синхронным подагентам.555* `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS`: watchdog зависания для подагентов, запущенных с `run_in_background`. По умолчанию `600000`. Сбрасывается при каждом событии потока; при зависании прерывает подагента, отмечает задачу как неудачную и выводит ошибку родителю с любым частичным результатом. Не применяется к синхронным подагентам.

556* `CLAUDE_ENABLE_STREAM_WATCHDOG` с `CLAUDE_STREAM_IDLE_TIMEOUT_MS`: прерывает запрос, когда заголовки получены, но тело ответа перестаёт потоком передаваться. Watchdog включен по умолчанию для всех поставщиков; установите `CLAUDE_ENABLE_STREAM_WATCHDOG=0` для отключения. `CLAUDE_STREAM_IDLE_TIMEOUT_MS` по умолчанию `300000` и зажимается до этого минимума. Прерванный запрос проходит через обычный путь повторной попытки.556* `CLAUDE_ENABLE_STREAM_WATCHDOG` с `CLAUDE_STREAM_IDLE_TIMEOUT_MS`: прерывает запрос, когда заголовки получены, но тело ответа перестаёт потоком передаваться. Watchdog включен по умолчанию для всех поставщиков; установите `CLAUDE_ENABLE_STREAM_WATCHDOG=0` для отключения. `CLAUDE_STREAM_IDLE_TIMEOUT_MS` по умолчанию `300000` и зажимается до этого минимума. Прерванный запрос проходит через обычный путь повторной попытки.

557 557 


901 decisionReason?: string;901 decisionReason?: string;

902 toolUseID: string;902 toolUseID: string;

903 agentID?: string;903 agentID?: string;

904 requestId: string;

904 }905 }

905) => Promise<PermissionResult>;906) => Promise<PermissionResult | null>;

906```907```

907 908 

908| Опция | Тип | Описание |909| Опция | Тип | Описание |


913| `decisionReason` | `string` | Объясняет, почему был вызван этот запрос разрешения |914| `decisionReason` | `string` | Объясняет, почему был вызван этот запрос разрешения |

914| `toolUseID` | `string` | Уникальный идентификатор для этого конкретного вызова инструмента в сообщении ассистента |915| `toolUseID` | `string` | Уникальный идентификатор для этого конкретного вызова инструмента в сообщении ассистента |

915| `agentID` | `string` | Если работает в подагенте, ID подагента |916| `agentID` | `string` | Если работает в подагенте, ID подагента |

917| `requestId` | `string` | `request_id` обёртки `control_request`. `control_response`, которую ваше приложение отправляет вне SDK, такую как подписанный HTTP POST, должна повторить это значение, чтобы процесс Claude Code мог сопоставить ответ с запросом |

918 

919Обратный вызов обычно разрешает запрос, возвращая [`PermissionResult`](#permissionresult), который SDK записывает обратно через свой транспорт как `control_response`. Возвращайте `null` только когда ваше приложение уже отправило `control_response` для этого запроса через свой собственный канал, повторив `requestId`; SDK затем пропускает запись ответа в свой транспорт. Возврат `null` в любом другом случае оставляет вызов инструмента заблокированным бесконечно, потому что `control_response` никогда не отправляется и запросы разрешения не имеют timeout.

920 

921Опция `requestId` и возвращаемое значение `null` требуют Claude Code v2.1.199 или позже.

916 922 

917<h3 id="permissionresult">923<h3 id="permissionresult">

918 `PermissionResult`924 `PermissionResult`


2179};2185};

2180```2186```

2181 2187 

2182Останавливает выполняющуюся фоновую задачу или shell по ID.2188Останавливает выполняющуюся фоновую задачу или shell по ID. {/* min-version: 2.1.198 */}Начиная с v2.1.198, `task_id` также принимает товарища по команде agent-team или именованного фонового агента по ID агента или имени.

2183 2189 

2184<h3 id="notebookedit">2190<h3 id="notebookedit">

2185 NotebookEdit2191 NotebookEdit


3788| `ripgrep` | `{ command: string; args?: string[] }` | `undefined` | Конфигурация пользовательского бинарного файла ripgrep для окружений sandbox |3794| `ripgrep` | `{ command: string; args?: string[] }` | `undefined` | Конфигурация пользовательского бинарного файла ripgrep для окружений sandbox |

3789 3795 

3790<Note>3796<Note>

3791 Sandbox зависит от поддержки платформы и, на Linux, инструментов, таких как `bubblewrap` и `socat`. Когда `enabled` имеет значение `true` и sandbox не может запуститься, `query()` сообщает сообщение `result` с `subtype: "error_during_execution"` и причину в `errors`, затем останавливается. Следите за этим подтипом, а не ожидайте, что `query()` выбросит исключение перед выдачей сообщений.3797 Sandbox зависит от поддержки платформы и, на Linux, инструментов, таких как `bubblewrap` и `socat`. Когда `enabled` имеет значение `true` и sandbox не может запуститься, `query()` сообщает сообщение `result` с `subtype: "error_during_execution"` и причину в `errors`. Для одного вызова сообщения `query()` SDK выбрасывает после выдачи этого результата ошибки, поэтому оберните цикл в блок try для продолжения после него. Смотрите [Handle the result](/ru/agent-sdk/agent-loop#handle-the-result) для контракта ошибки.

3792 3798 

3793 Для выполнения без sandbox вместо этого установите `failIfUnavailable: false`.3799 Для выполнения без sandbox вместо этого установите `failIfUnavailable: false`.

3794</Note>3800</Note>


3800```typescript theme={null}3806```typescript theme={null}

3801import { query } from "@anthropic-ai/claude-agent-sdk";3807import { query } from "@anthropic-ai/claude-agent-sdk";

3802 3808 

3803for await (const message of query({3809try {

3810 for await (const message of query({

3804 prompt: "Build and test my project",3811 prompt: "Build and test my project",

3805 options: {3812 options: {

3806 sandbox: {3813 sandbox: {


3811 }3818 }

3812 }3819 }

3813 }3820 }

3814})) {3821 })) {

3815 if ("result" in message) console.log(message.result);3822 if ("result" in message) console.log(message.result);

3823 }

3824} catch (error) {

3825 // A single-shot query() throws after yielding an error result,

3826 // such as when the sandbox can't start (failIfUnavailable defaults to true).

3827 console.log(`Session ended with an error: ${error}`);

3816}3828}

3817```3829```

3818 3830 

agent-teams.md +12 −3

Details

89* **Enter**: открыть стенограмму выбранного товарища по команде и отправить ему сообщение напрямую89* **Enter**: открыть стенограмму выбранного товарища по команде и отправить ему сообщение напрямую

90* **Escape**: прервать текущий ход выбранного товарища по команде90* **Escape**: прервать текущий ход выбранного товарища по команде

91 91 

92{/* min-version: 2.1.181 */}Начиная с версии 2.1.181, строка неактивного товарища по команде скрывается через 30 секунд и снова появляется при его следующем ходе. Товарищ по команде продолжает работать и остается доступным, пока скрыт.92{/* min-version: 2.1.199 */}Начиная с версии 2.1.199, строка неактивного товарища по команде остается на панели, пока работает любой товарищ по команде или подагент, поэтому вы можете выбрать его для просмотра его стенограммы или отправить ему дополнительную работу. Когда каждый агент на панели неактивен, неактивные строки скрываются через 30 секунд и снова появляются при следующем ходе товарища по команде; товарищ по команде продолжает работать и остается доступным, пока скрыт. В версиях 2.1.181–2.1.198 неактивная строка скрывалась через 30 секунд после завершения собственного хода, даже если другие товарищи по команде все еще работали; неактивные строки не скрываются в версиях до 2.1.181.

93 

94Когда более трех товарищей по команде неактивны одновременно, строки, выходящие за пределы первых трех, сворачиваются в одну строку, которая подсчитывает свернутых товарищей по команде, например `2 idle agents` когда пять неактивны. Выберите его и нажмите Enter для развертывания свернутых строк, или нажмите Esc для их свертывания снова. Работающие товарищи по команде, неудачные товарищи по команде и товарищ по команде, который вы просматриваете, всегда сохраняют свои собственные строки.

93 95 

94Если вы хотите, чтобы каждый товарищ по команде находился в отдельной разделенной панели, см. [Выбор режима отображения](#choose-a-display-mode).96Если вы хотите, чтобы каждый товарищ по команде находился в отдельной разделенной панели, см. [Выбор режима отображения](#choose-a-display-mode).

95 97 


174* **Режим in-process**: используйте клавиши со стрелками вверх и вниз в панели агента для выбора товарища по команде, затем нажмите Enter для просмотра его сеанса и введите сообщение для отправки ему. Нажмите `x` на выбранном товарище по команде для его остановки. Нажмите Ctrl+T для переключения списка задач.176* **Режим in-process**: используйте клавиши со стрелками вверх и вниз в панели агента для выбора товарища по команде, затем нажмите Enter для просмотра его сеанса и введите сообщение для отправки ему. Нажмите `x` на выбранном товарище по команде для его остановки. Нажмите Ctrl+T для переключения списка задач.

175* **Режим split-pane**: щелкните в панель товарища по команде для прямого взаимодействия с его сеансом. Каждый товарищ по команде имеет полный вид своего собственного терминала.177* **Режим split-pane**: щелкните в панель товарища по команде для прямого взаимодействия с его сеансом. Каждый товарищ по команде имеет полный вид своего собственного терминала.

176 178 

179Пока вы просматриваете товарища по команде в режиме in-process, простой текст и [skills](/ru/skills) идут этому товарищу по команде, но встроенные команды все еще работают в сеансе лидера.

180 

181Модель товарища по команде и режим быстрого выполнения фиксируются при его порождении, поэтому `/model` и `/fast` изменяют только параметры лидера. {/* min-version: 2.1.199 */}Начиная с версии v2.1.199, ввод любой из этих команд при просмотре товарища по команде показывает уведомление о том, что изменение применяется к лидеру; более ранние версии применяли его к лидеру без указания. `/effort` все еще применяется к последующим ходам просматриваемого товарища по команде, потому что товарищи по команде следуют [уровню усилий](/ru/model-config#adjust-effort-level) лидера.

182 

177<h3 id="assign-and-claim-tasks">183<h3 id="assign-and-claim-tasks">

178 Назначение и взятие задач184 Назначение и взятие задач

179</h3>185</h3>


295**Как товарищи по команде делятся информацией:**301**Как товарищи по команде делятся информацией:**

296 302 

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

298* **Уведомления о неактивности**: когда товарищ по команде заканчивает и останавливается, он автоматически уведомляет лидера.304* **Уведомления о неактивности**: когда товарищ по команде заканчивает и останавливается, он автоматически уведомляет лидера. {/* min-version: 2.1.198 */}Начиная с версии 2.1.198, товарищ по команде, чей ход заканчивается на ошибке API, уведомляет лидера о том, что он не удался, и включает текст ошибки, вместо того чтобы казаться нормально завершившимся.

299* **Общий список задач**: все агенты могут видеть статус задачи и брать доступную работу.305* **Общий список задач**: все агенты могут видеть статус задачи и брать доступную работу.

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

301 307 


430Если товарищи по команде не появляются после того, как вы попросили Claude создать команду:436Если товарищи по команде не появляются после того, как вы попросили Claude создать команду:

431 437 

432* В режиме in-process товарищи по команде появляются на панели агента ниже поля ввода подсказки. Используйте клавиши со стрелками вверх и вниз для выбора одного, затем нажмите Enter для его просмотра.438* В режиме in-process товарищи по команде появляются на панели агента ниже поля ввода подсказки. Используйте клавиши со стрелками вверх и вниз для выбора одного, затем нажмите Enter для его просмотра.

433* Строка товарища по команде, которая исчезла после простоя, была скрыта, а не остановлена. Неактивные строки скрываются через 30 секунд и снова появляются при следующем ходе товарища по команде. Отправьте товарищу по команде сообщение по имени, чтобы вернуть его.439* Строка товарища по команде, которая исчезла после простоя, была скрыта, а не остановлена. Неактивные строки скрываются через 30 секунд после того, как вся панель переходит в режим ожидания, и снова появляются при следующем ходе товарища по команде. Когда более трех товарищей по команде неактивны, их избыточные строки сворачиваются в одну строку `N idle agents`, которую Enter разворачивает. Отправьте товарищу по команде сообщение по имени, чтобы вернуть скрытую строку.

434* Проверьте, что задача, которую вы дали Claude, была достаточно сложной, чтобы оправдать команду. Claude решает, порождать ли товарищей по команде, на основе задачи.440* Проверьте, что задача, которую вы дали Claude, была достаточно сложной, чтобы оправдать команду. Claude решает, порождать ли товарищей по команде, на основе задачи.

435* Если вы явно запросили разделенные панели, убедитесь, что tmux установлен и доступен в вашем PATH:441* Если вы явно запросили разделенные панели, убедитесь, что tmux установлен и доступен в вашем PATH:

436 ```bash theme={null}442 ```bash theme={null}


453* Дайте им дополнительные инструкции напрямую459* Дайте им дополнительные инструкции напрямую

454* Порождите товарища по команде-замену для продолжения работы460* Порождите товарища по команде-замену для продолжения работы

455 461 

462{/* min-version: 2.1.198 */}Начиная с версии 2.1.198, сообщение от лидера или другого товарища по команде пробуждает товарища по команде в режиме in-process, который ожидает повтора неудачного запроса API, поэтому он повторяет попытку немедленно вместо ожидания полной задержки повтора.

463 

456<h3 id="lead-shuts-down-before-work-is-done">464<h3 id="lead-shuts-down-before-work-is-done">

457 Лидер завершает работу до завершения работы465 Лидер завершает работу до завершения работы

458</h3>466</h3>


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

482* **Одна команда на сеанс**: сеанс имеет ровно одну команду, ограниченную этим сеансом. Вы не можете создавать дополнительные именованные команды или делиться командой между сеансами.490* **Одна команда на сеанс**: сеанс имеет ровно одну команду, ограниченную этим сеансом. Вы не можете создавать дополнительные именованные команды или делиться командой между сеансами.

483* **Нет вложенных команд**: товарищи по команде не могут порождать своих собственных товарищей по команде. Только лидер может управлять командой.491* **Нет вложенных команд**: товарищи по команде не могут порождать своих собственных товарищей по команде. Только лидер может управлять командой.

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

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

485* **Разрешения установлены при порождении**: все товарищи по команде начинают с режима разрешений лидера. Вы можете изменить отдельные режимы товарищей по команде после порождения, но вы не можете установить режимы для отдельных товарищей по команде во время порождения.494* **Разрешения установлены при порождении**: все товарищи по команде начинают с режима разрешений лидера. Вы можете изменить отдельные режимы товарищей по команде после порождения, но вы не можете установить режимы для отдельных товарищей по команде во время порождения.

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

agent-view.md +59 −10

Details

27* [Быстрый старт](#quick-start): дайте Claude задачу для работы в фоне, проверьте её и вмешайтесь, когда это необходимо27* [Быстрый старт](#quick-start): дайте Claude задачу для работы в фоне, проверьте её и вмешайтесь, когда это необходимо

28* [Мониторинг сеансов с помощью agent view](#monitor-sessions-with-agent-view), включая значки состояния, просмотр и ответы, подключение, организацию и сочетания клавиш28* [Мониторинг сеансов с помощью agent view](#monitor-sessions-with-agent-view), включая значки состояния, просмотр и ответы, подключение, организацию и сочетания клавиш

29* [Отправка новых агентов](#dispatch-new-agents) из agent view, из внутри сеанса или из вашей оболочки29* [Отправка новых агентов](#dispatch-new-agents) из agent view, из внутри сеанса или из вашей оболочки

30* [Управление сеансами из оболочки](#manage-sessions-from-the-shell)30* [Управление сеансами из оболочки](#manage-sessions-from-the-shell) с помощью `claude agents`, `claude attach` и связанных команд

31* [Как размещаются фоновые сеансы](#how-background-sessions-are-hosted) процессом супервизора31* [Как размещаются фоновые сеансы](#how-background-sessions-are-hosted) процессом супервизора

32 32 

33<h2 id="quick-start">33<h2 id="quick-start">


64 </Step>64 </Step>

65 65 

66 <Step title="Перенести существующий сеанс">66 <Step title="Перенести существующий сеанс">

67 Чтобы переместить сеанс, который у вас уже открыт, в agent view, запустите `/bg` внутри него или нажмите `←` на пустой подсказке, чтобы отправить его в фон и открыть agent view за один шаг. Сеанс продолжает работать и появляется как строка рядом с теми, которые вы отправили.67 Этот шаг требует запущенного сеанса. Если вы следовали предыдущим шагам, у вас нет открытого сеанса в этом терминале, поэтому откройте обычный сеанс `claude` в другом терминале и сначала отправьте ему сообщение. Чтобы переместить сеанс, который у вас уже открыт, в agent view, запустите `/bg` внутри него или нажмите `←` на пустой подсказке, чтобы отправить его в фон и открыть agent view за один шаг. Сеанс продолжает работать и появляется как строка рядом с теми, которые вы отправили.

68 </Step>68 </Step>

69</Steps>69</Steps>

70 70 


76 76 

77Запустите `claude agents` для открытия agent view. Он захватывает весь терминал и перечисляет каждый сеанс, сгруппированный по состоянию, с закреплёнными сеансами и теми, которые требуют вас в верхней части. Каждая строка показывает имя сеанса, текущую активность и как давно он в последний раз изменился.77Запустите `claude agents` для открытия agent view. Он захватывает весь терминал и перечисляет каждый сеанс, сгруппированный по состоянию, с закреплёнными сеансами и теми, которые требуют вас в верхней части. Каждая строка показывает имя сеанса, текущую активность и как давно он в последний раз изменился.

78 78 

79Имя окрашено цветом, установленным с помощью [`/color`](/ru/commands) в этом сеансе. {/* min-version: 2.1.199 */}Начиная с версии 2.1.199, цвет сохраняется, когда вы [отправляете сеанс в фон](#from-inside-a-session) с помощью `←` или `/background`.

80 

79По умолчанию список показывает каждый фоновый сеанс, который вы запустили, во всех ваших проектах. Сеанс, работающий в одном репозитории, и другой в другом worktree, оба появляются здесь, независимо от того, из какого каталога вы открыли agent view. Чтобы ограничить список одним проектом, передайте `--cwd`:81По умолчанию список показывает каждый фоновый сеанс, который вы запустили, во всех ваших проектах. Сеанс, работающий в одном репозитории, и другой в другом worktree, оба появляются здесь, независимо от того, из какого каталога вы открыли agent view. Чтобы ограничить список одним проектом, передайте `--cwd`:

80 82 

81```bash theme={null}83```bash theme={null}


91 ✽ clawd walk cycle Write assets/sprites/clawd-walk.png 3m93 ✽ clawd walk cycle Write assets/sprites/clawd-walk.png 3m

92 94 

93Ready for review95Ready for review

94 ∙ jump physics Opened PR with collision fix PR #2048 2h96 ∙ jump physics Opened PR with collision fix #2048 2h

95 97 

96Needs input98Needs input

97 ✻ power-up design needs input: double jump or wall climb? 1m99 ✻ power-up design needs input: double jump or wall climb? 1m


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

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

131 133 

132Метка `PR #N`, которая может появиться в правом краю строки, является [статусом pull request, который открыл сеанс](#pull-request-status), а не частью значка состояния. Когда сеанс открыл более одного pull request, метка показывает количество вместо этого, например `3 PRs`.134Метка `#N`, которая может появиться в правом краю строки, является [pull request, который открыл сеанс](#pull-request-status), а не частью значка состояния.

133 135 

134Заголовок вкладки терминала показывает количество ожидающих ввода, пока agent view открыт: `2 awaiting input · claude agents`, когда сеансы требуют ввода, или `claude agents`, когда они не требуют.136Заголовок вкладки терминала показывает количество ожидающих ввода, пока agent view открыт: `2 awaiting input · claude agents`, когда сеансы требуют ввода, или `claude agents`, когда они не требуют.

135 137 

138Начиная с версии 2.1.198, пока agent view открыт, Claude Code также отправляет уведомление через ваш настроенный [канал уведомлений терминала](/ru/terminal-config#get-a-terminal-bell-or-notification), когда локальный фоновый сеанс начинает требовать вашего ввода, завершается или не работает. Сеансы, которые работают по расписанию, такие как сеансы [`/loop`](/ru/scheduled-tasks), уведомляют только когда они требуют вашего ввода. Уведомления используют тот же параметр [`preferredNotifChannel`](/ru/settings#available-settings), что и остальная часть Claude Code, и запускают hook [`Notification`](/ru/hooks#notification) с типом `agent_needs_input` или `agent_completed`.

139 

136Фоновые сеансы не требуют открытого терминала для продолжения работы. Отдельный [процесс супервизора](#the-supervisor-process) их запускает, поэтому вы можете закрыть agent view, закрыть оболочку или запустить новый интерактивный сеанс, и ваша отправленная работа продолжает выполняться.140Фоновые сеансы не требуют открытого терминала для продолжения работы. Отдельный [процесс супервизора](#the-supervisor-process) их запускает, поэтому вы можете закрыть agent view, закрыть оболочку или запустить новый интерактивный сеанс, и ваша отправленная работа продолжает выполняться.

137 141 

138Состояние сеанса сохраняется на диск через автоматические обновления и перезапуски супервизора. Сеансы также сохраняются, когда ваша машина переходит в спящий режим. Их процессы возобновляются при пробуждении, и супервизор переподключается к ним вместо того, чтобы рассматривать временной разрыв как неактивность. Выключение всё ещё останавливает работающие сеансы; см. [Sessions show as failed after shutdown](#sessions-show-as-failed-after-shutdown) для того, как их восстановить.142Состояние сеанса сохраняется на диск через автоматические обновления и перезапуски супервизора. Сеансы также сохраняются, когда ваша машина переходит в спящий режим. Их процессы возобновляются при пробуждении, и супервизор переподключается к ним вместо того, чтобы рассматривать временной разрыв как неактивность. Выключение всё ещё останавливает работающие сеансы; см. [Sessions show as failed after shutdown](#sessions-show-as-failed-after-shutdown) для того, как их восстановить.


151 Статус pull request155 Статус pull request

152</h3>156</h3>

153 157 

154Когда сеанс открывает pull request, в правом краю строки появляется метка `PR #1234`, связанная с pull request в терминалах, поддерживающих гиперссылки. Метка сохраняется, когда вы отправляете дополнительное сообщение сеансу, поэтому pull request остаётся видимым, пока строка возвращается к живому прогрессу.158Когда сеанс открывает pull request, в правом краю строки появляется метка `#1234`, связанная с pull request в терминалах, поддерживающих гиперссылки. Метка сохраняется, когда вы отправляете дополнительное сообщение сеансу, поэтому pull request остаётся видимым, пока строка возвращается к живому прогрессу. Фоновые сеансы, которые изолировали свои изменения в worktree, открывают эти pull request сами; [How file edits are isolated](#how-file-edits-are-isolated) охватывает, когда это происходит и что сеанс никогда не делает без запроса.

155 159 

156Когда сеанс открыл более одного pull request, метка показывает количество вместо этого, например `3 PRs`, окрашенное по открытому pull request, который больше всего нуждается во внимании. Откройте [панель просмотра](#peek-and-reply), чтобы увидеть их все.160Когда сеанс открыл более одного pull request, метка показывает количество вместо этого, например `3 PRs`, окрашенное по открытому pull request, который больше всего нуждается во внимании. Откройте [панель просмотра](#peek-and-reply), чтобы увидеть их все.

157 161 


190 194 

191Подключённые сеансы всегда отображаются в [полноэкранном режиме](/ru/fullscreen), независимо от вашего параметра `tui`, потому что фоновый сеанс не имеет истории прокрутки терминала для добавления. Прокручивайте с помощью `PgUp`, `PgDn` или колеса мыши, и нажмите `Ctrl+O` для режима стенограммы. Встроенная прокрутка вашего терминала и режим копирования tmux показывают только текущий видимый область, как и при запуске любого полноэкранного приложения.195Подключённые сеансы всегда отображаются в [полноэкранном режиме](/ru/fullscreen), независимо от вашего параметра `tui`, потому что фоновый сеанс не имеет истории прокрутки терминала для добавления. Прокручивайте с помощью `PgUp`, `PgDn` или колеса мыши, и нажмите `Ctrl+O` для режима стенограммы. Встроенная прокрутка вашего терминала и режим копирования tmux показывают только текущий видимый область, как и при запуске любого полноэкранного приложения.

192 196 

193Нажмите `←` на пустой подсказке для отключения и возврата к agent view. Если диалог имеет фокус и не реагирует на `←`, нажмите `Ctrl+Z` для немедленного отключения.197Нажмите `←` на пустой подсказке или запустите `/exit`, чтобы отключиться и вернуться к agent view. Начиная с версии 2.1.198, это работает одинаково, открыли ли вы сеанс из agent view или с помощью `claude attach <id>` из вашей оболочки.

198 

199`Ctrl+Z` также отключает, но возвращается туда, где вы начали: к agent view, если вы подключились оттуда, или к вашей оболочке, если вы запустили `claude attach`. Используйте `Ctrl+Z`, когда диалог имеет фокус и не реагирует на `←`.

194 200 

195`Ctrl+C` сохраняет своё стандартное поведение прерывания при подключении: оно отменяет выполняемый ответ или команду `!` shell вместо отключения. Нажатие `Ctrl+C` дважды на пустой подсказке отключает, как и в любом сеансе.201`Ctrl+C` сохраняет своё стандартное поведение прерывания при подключении: оно отменяет выполняемый ответ или команду `!` shell вместо отключения. Нажатие `Ctrl+C` дважды на пустой подсказке отключает, как и в любом сеансе.

196 202 


289| `#<number>` или URL pull request | Если сеанс уже работает над этим PR, выберите его вместо отправки |295| `#<number>` или URL pull request | Если сеанс уже работает над этим PR, выберите его вместо отправки |

290| `Shift+Enter` | Отправка и немедленное подключение к новому сеансу |296| `Shift+Enter` | Отправка и немедленное подключение к новому сеансу |

291 297 

292Небольшой набор команд запускается в самом agent view вместо отправки: `/exit` и `/quit` закрывают agent view, `/logout` выходит из системы, и `/model` устанавливает [dispatch model](#set-the-model). Skills, ваши собственные команды и расширяющие подсказку встроенные команды, такие как `/init`, отправляются в новый фоновый сеанс как его первая подсказка. Другие встроенные команды показывают подсказку `attach to a session to run it` вместо этого.298Небольшой набор команд запускается в самом agent view вместо отправки:

299 

300* `/exit` и `/quit` закрывают agent view

301* `/logout` выходит из системы

302* `/model` устанавливает [dispatch model](#set-the-model)

303* {/* min-version: 2.1.198 */}Начиная с версии 2.1.198, `/login` открывает диалог входа, чтобы вы могли войти снова без подключения к сеансу

304 

305Skills, ваши собственные команды и расширяющие подсказку встроенные команды, такие как `/init`, отправляются в новый фоновый сеанс как его первая подсказка. Другие встроенные команды показывают подсказку `attach to a session to run it` вместо этого.

293 306 

294Упаковка повторяющейся задачи как [skill](/ru/skills) позволяет вам запускать один и тот же рабочий процесс из agent view многократно без переввода подсказки.307Упаковка повторяющейся задачи как [skill](/ru/skills) позволяет вам запускать один и тот же рабочий процесс из agent view многократно без переввода подсказки.

295 308 


313 326 

314Запустите `/background` или его псевдоним `/bg` для перемещения текущей беседы в фоновый сеанс. Передайте подсказку, такую как `/bg run the test suite and fix any failures`, для отправки одной дополнительной инструкции перед этим. Если Claude отвечает, когда вы запускаете `/bg`, ответ продолжается в фоновом сеансе.327Запустите `/background` или его псевдоним `/bg` для перемещения текущей беседы в фоновый сеанс. Передайте подсказку, такую как `/bg run the test suite and fix any failures`, для отправки одной дополнительной инструкции перед этим. Если Claude отвечает, когда вы запускаете `/bg`, ответ продолжается в фоновом сеансе.

315 328 

329Выход из интерактивного сеанса, который всё ещё имеет выполняемую фоновую работу, такую как subagents, фоновые команды shell, рабочие процессы или [monitors](/ru/tools-reference#monitor-tool), показывает диалог `Background work is running` вместо немедленного выхода. {/* min-version: 2.1.198 */}Начиная с версии 2.1.198, диалог предлагает `Move to background and exit` наряду с `Exit anyway` и `Stay`. Выбор этого варианта перемещает сеанс в фон так же, как это делает `/background`, затем возвращает вас в вашу оболочку, поэтому работа, которая может продолжаться, продолжает работать, и сеанс отображается в agent view. Этот вариант не показывается, когда agent view [отключен](#turn-off-agent-view).

330 

316Переведение в фон из интерактивного сеанса запускает свежий процесс, который возобновляется из сохранённой беседы, и выполняемая работа переходит в него: работающие фоновые команды shell, фоновые subagents, динамические рабочие процессы и запланированные задачи, которые вы создали с помощью [`/loop`](/ru/scheduled-tasks), переносятся в фоновый сеанс и продолжают работать там. Subagent переходит вместе со всем, что он запустил, поэтому он переносится только когда вся эта работа может перейти тоже, включая на Windows. Чтобы остановить выполняемую работу вместо её переноса, установите переменную окружения [`CLAUDE_DISABLE_ADOPT=1`](/ru/env-vars#variables); Claude Code затем просит вас подтвердить перед отправкой в фон.331Переведение в фон из интерактивного сеанса запускает свежий процесс, который возобновляется из сохранённой беседы, и выполняемая работа переходит в него: работающие фоновые команды shell, фоновые subagents, динамические рабочие процессы и запланированные задачи, которые вы создали с помощью [`/loop`](/ru/scheduled-tasks), переносятся в фоновый сеанс и продолжают работать там. Subagent переходит вместе со всем, что он запустил, поэтому он переносится только когда вся эта работа может перейти тоже, включая на Windows. Чтобы остановить выполняемую работу вместо её переноса, установите переменную окружения [`CLAUDE_DISABLE_ADOPT=1`](/ru/env-vars#variables); Claude Code затем просит вас подтвердить перед отправкой в фон.

317 332 

318Работа, которая не может перейти, такая как работающий [monitor](/ru/tools-reference#monitor-tool), останавливается. Фоновый subagent, который владеет монитором, останавливается вместе с ним. Когда какая-либо такая работа выполняется, Claude Code показывает диалог `Background this session?` так, чтобы вы могли подтвердить перед её остановкой.333Работа, которая не может перейти, такая как работающий [monitor](/ru/tools-reference#monitor-tool), останавливается. Фоновый subagent, который владеет монитором, останавливается вместе с ним. Когда какая-либо такая работа выполняется, Claude Code показывает диалог `Background this session?` так, чтобы вы могли подтвердить перед её остановкой.


342claude --bg "investigate the flaky SettingsChangeDetector test"357claude --bg "investigate the flaky SettingsChangeDetector test"

343```358```

344 359 

360Подсказка является позиционным аргументом, а не значением `-p`. {/* min-version: 2.1.198 */}Начиная с версии 2.1.198, объединение `--bg` с `-p` или `--print` отклоняется с ошибкой перед созданием любого сеанса, потому что `--print` никогда не запускает интерактивный сеанс, к которому подключается `claude agents`.

361 

345Чтобы запустить конкретного subagent как основного агента сеанса, объедините `--bg` с `--agent`:362Чтобы запустить конкретного subagent как основного агента сеанса, объедините `--bg` с `--agent`:

346 363 

347```bash theme={null}364```bash theme={null}


414 431 

415[Subagent](/ru/sub-agents), который запускает фоновый сеанс, наследует рабочий каталог сеанса, поэтому его правки файлов попадают в worktree сеанса, а не в вашу рабочую копию. Чтобы дать subagent его собственный отдельный worktree вместо этого, установите [`isolation: worktree`](/ru/sub-agents#supported-frontmatter-fields) в его frontmatter или передайте `isolation: "worktree"` при запуске его.432[Subagent](/ru/sub-agents), который запускает фоновый сеанс, наследует рабочий каталог сеанса, поэтому его правки файлов попадают в worktree сеанса, а не в вашу рабочую копию. Чтобы дать subagent его собственный отдельный worktree вместо этого, установите [`isolation: worktree`](/ru/sub-agents#supported-frontmatter-fields) в его frontmatter или передайте `isolation: "worktree"` при запуске его.

416 433 

434Начиная с версии 2.1.198, фоновый сеанс, который изолировал свои изменения кода в worktree, также фиксирует, отправляет свою собственную ветку и открывает черновик pull request без остановки для вопроса. Метка [`#N`](#pull-request-status) отображается на его строке, когда pull request открывается. Он никогда не отправляет на `main` или `master`, никогда не выполняет force-push или merge, и пропускает pull request, когда вы сказали ему не открывать один или репозиторий не имеет удалённого.

435 

436Сеанс, редактирующий checkout, который он не изолировал сам, всё ещё спрашивает перед фиксацией или переключением ветвей. Это применяется, когда изоляция установлена на `"none"`, когда перемещение worktree не удалось, или когда сеанс запустился внутри worktree, который уже существовал.

437 

417<h3 id="set-the-model">438<h3 id="set-the-model">

418 Установка модели439 Установка модели

419</h3>440</h3>


529 550 

530После завершения сеанса и его неподключённого состояния примерно час супервизор останавливает его процесс для освобождения ресурсов. Сеанс, который вы [закрепили](#organize-the-list) с помощью `Ctrl+T`, освобождается и сохраняет свой процесс работающим в режиме ожидания. Стенограмма и состояние остаются на диске в любом случае, и в следующий раз, когда вы подключитесь, посмотрите или ответите на остановленный сеанс, супервизор запускает свежий процесс с того места, где он остановился. Когда каждый сеанс завершён и ни один терминал не подключён, сам супервизор выходит и запускается снова в следующий раз, когда вам это потребуется.551После завершения сеанса и его неподключённого состояния примерно час супервизор останавливает его процесс для освобождения ресурсов. Сеанс, который вы [закрепили](#organize-the-list) с помощью `Ctrl+T`, освобождается и сохраняет свой процесс работающим в режиме ожидания. Стенограмма и состояние остаются на диске в любом случае, и в следующий раз, когда вы подключитесь, посмотрите или ответите на остановленный сеанс, супервизор запускает свежий процесс с того места, где он остановился. Когда каждый сеанс завершён и ни один терминал не подключён, сам супервизор выходит и запускается снова в следующий раз, когда вам это потребуется.

531 552 

532Фоновые команды shell и динамические рабочие процессы, которые запускает сеанс, продолжают работать, когда его процесс останавливается, перезапускается или обновляется, включая на Windows. Следующий процесс, запущенный для этого сеанса, подхватывает их, команда shell, которая завершилась в то время, сообщается как завершённая с её выводом, и рабочий процесс возобновляется с того места, где он остановился. Команды shell, запущенные subagent, и работающие [monitors](/ru/tools-reference#monitor-tool) по-прежнему останавливаются с процессом, и удаление сеанса останавливает всё, что он передал. Чтобы фоновые команды shell и рабочие процессы также останавливались с процессом, установите переменную окружения [`CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF`](/ru/env-vars#variables) на `1`.553Фоновая работа, которую сеанс сам запустил на верхнем уровне, передаётся, когда его процесс останавливается, перезапускается или обновляется, включая на Windows. Следующий процесс, запущенный для этого сеанса, подхватывает работу:

554 

555* Фоновая команда оболочки, которая завершилась в то время, сообщается как завершённая с её выводом

556* Динамический рабочий процесс возобновляется с того места, где он остановился

557* [Фоновый подагент](/ru/sub-agents#run-subagents-in-foreground-or-background) возобновляется из его собственной стенограммы

558 

559{/* min-version: 2.1.198 */}Начиная с версии 2.1.198 передача охватывает все три. До версии 2.1.198 она охватывала только команды оболочки и рабочие процессы, поэтому фоновый подагент останавливался с процессом и сообщался как неудачный при следующем пробуждении.

560 

561Работа, состояние которой существует только внутри самого процесса, останавливается вместе с ним вместо передачи. Это команды оболочки, которые запустил подагент, которые возобновлённый подагент может запустить снова, и работающие [мониторы](/ru/tools-reference#monitor-tool), поток событий которых не может быть перемещён в другой процесс.

562 

563Удаление сеанса останавливает всё, что он передал. Чтобы остановить всю фоновую работу сеанса с процессом вместо передачи, установите переменную окружения [`CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF`](/ru/env-vars#variables) на `1`.

533 564 

534Если перезапущенный сеанс возвращается, показывая только его исходную подсказку, потому что Claude Code неправильно прочитал его стенограмму как пустую, стенограмма разговора переименовывается с суффиксом `.orphaned-` вместо удаления, поэтому она остаётся на вашей машине.565Если перезапущенный сеанс возвращается, показывая только его исходную подсказку, потому что Claude Code неправильно прочитал его стенограмму как пустую, стенограмма разговора переименовывается с суффиксом `.orphaned-` вместо удаления, поэтому она остаётся на вашей машине.

535 566 


606 637 

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

608 639 

640<h3 id="a-session-fails-before-starting-with-a-possibly-low-memory-note">

641 Сеанс не запускается с примечанием `possibly low memory`

642</h3>

643 

644Начиная с версии 2.1.199, когда процесс фонового сеанса завершается до завершения запуска и хост имеет низкий объём памяти, статус строки называет выход и добавляет `possibly low memory — free some up and retry`. Более ранние версии показывали только причину выхода для этого сбоя.

645 

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

647 

648Освободите память на машине, затем подключитесь, посмотрите или ответьте на строку, и супервизор запустит свежий процесс для сеанса. Когда память остаётся низкой, супервизор также [останавливает неактивные сеансы](#the-supervisor-process) для освобождения ресурсов самостоятельно.

649 

609<h3 id="agent-view-says-the-background-service-did-not-respond">650<h3 id="agent-view-says-the-background-service-did-not-respond">

610 Agent view говорит, что фоновый сервис не ответил651 Agent view говорит, что фоновый сервис не ответил

611</h3>652</h3>


636 677 

637См. [справочник по ошибкам](/ru/errors#could-not-resolve-authentication-method) для полного списка причин и исправлений.678См. [справочник по ошибкам](/ru/errors#could-not-resolve-authentication-method) для полного списка причин и исправлений.

638 679 

639<h3 id="background-sessions-cannot-read-desktop-documents-or-downloads-on-macos">680<h3 id="background-sessions-can’t-read-desktop-documents-or-downloads-on-macos">

640 Фоновые сеансы не могут читать Desktop, Documents или Downloads на macOS681 Фоновые сеансы не могут читать Desktop, Documents или Downloads на macOS

641</h3>682</h3>

642 683 


644 685 

645При использовании встроенного установщика запись отображается как Claude Code и разрешение сохраняется при обновлениях. При других методах установки, таких как Homebrew или npm, запись показывает путь к двоичному файлу и может потребоваться предоставить разрешение снова после обновления.686При использовании встроенного установщика запись отображается как Claude Code и разрешение сохраняется при обновлениях. При других методах установки, таких как Homebrew или npm, запись показывает путь к двоичному файлу и может потребоваться предоставить разрешение снова после обновления.

646 687 

688<h3 id="background-sessions-can’t-reach-local-network-hosts-on-macos">

689 Фоновые сеансы не могут достичь хостов локальной сети на macOS

690</h3>

691 

692На macOS 15 и более поздних версиях система блокирует процесс от доступа к устройствам в вашей локальной сети, пока вы не предоставите разрешение Local Network. До версии 2.1.198 хост фонового сеанса никогда не запрашивал это разрешение, поэтому команды, нацеленные на адрес LAN, завершались с ошибкой `connect: no route to host`, даже если та же команда работала в переднем терминале. {/* min-version: 2.1.198 */}Начиная с версии 2.1.198, первая команда в фоновом сеансе, которая подключается к адресу локальной сети, запускает запрос разрешения macOS Local Network для Claude Code. Предоставьте его один раз, и эти команды будут достигать хостов LAN так же, как они это делают в переднем терминале.

693 

647<h3 id="a-session-is-slow-to-respond-after-attaching">694<h3 id="a-session-is-slow-to-respond-after-attaching">

648 Сеанс медленно реагирует после подключения695 Сеанс медленно реагирует после подключения

649</h3>696</h3>


683Agent view быстро развивался во время исследовательского предпросмотра. Если вы находитесь на более старой версии Claude Code, некоторое поведение на этой странице может отличаться; в частности, `claude agents` отклоняет флаги, которые он ещё не поддерживает, с ошибкой `unknown option`. Таблица ниже указывает, когда каждый флаг и поведение были добавлены.730Agent view быстро развивался во время исследовательского предпросмотра. Если вы находитесь на более старой версии Claude Code, некоторое поведение на этой странице может отличаться; в частности, `claude agents` отклоняет флаги, которые он ещё не поддерживает, с ошибкой `unknown option`. Таблица ниже указывает, когда каждый флаг и поведение были добавлены.

684 731 

685| Версия | Изменение |732| Версия | Изменение |

686| -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |733| -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

734| v2.1.199 | {/* min-version: 2.1.199 */}Фоновый сеанс, процесс которого завершается до завершения запуска на хосте с низкой памятью, показывает `possibly low memory — free some up and retry` в статусе его строки вместо только простой причины выхода. Отправка сеанса в фон с помощью `←` или `/background` переносит его `/color` в новую строку. |

735| v2.1.198 | {/* min-version: 2.1.198 */}Agent view отправляет уведомление через `preferredNotifChannel`, когда фоновому сеансу требуется ввод, он завершается или не удаётся, и запускает hook `Notification` с типом `agent_needs_input` или `agent_completed`. `←` и `/exit` внутри `claude attach <id>` возвращаются к agent view вместо выхода в shell; `Ctrl+Z` возвращается в shell. Фоновый сеанс, который изолировал свою работу в worktree, фиксирует, отправляет свою собственную изолированную ветвь, никогда не `main` или `master`, и открывает черновик pull request при завершении вместо предварительного запроса. `/login` запускается в agent view и открывает диалог входа. Диалог выхода `Background work is running` предлагает `Move to background and exit`. Передача выхода также охватывает фоновые подагенты, которые возобновляются из своей стенограммы при следующем пробуждении вместо того, чтобы быть отмеченными как неудачные. `claude --bg` в сочетании с `-p` или `--print` отклоняется с ошибкой. |

687| v2.1.196 | {/* min-version: 2.1.196 */}Одиночное нажатие `←` отправляет сеанс переднего плана в фон; более ранние версии требовали двух нажатий, с подсказкой в нижнем колонтитуле и подтверждением. `--dangerously-skip-permissions`, переданный в `claude agents`, показывает отказ от ответственности за обход вместо молчаливого отклонения. Интерактивные сеансы, которые вы никогда не называли, имеют стандартное имя, такое как `my-app-3f`, в списках сеансов и `claude agents --json`. Фоновые команды shell и динамические рабочие процессы выживают при остановке, перезапуске или обновлении процесса сеанса, включая на Windows; установите `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF=1`, чтобы отключить передачу. Стенограмма, неправильно прочитанная как пустая при перезапуске, переименовывается с суффиксом `.orphaned-` вместо удаления. |736| v2.1.196 | {/* min-version: 2.1.196 */}Одиночное нажатие `←` отправляет сеанс переднего плана в фон; более ранние версии требовали двух нажатий, с подсказкой в нижнем колонтитуле и подтверждением. `--dangerously-skip-permissions`, переданный в `claude agents`, показывает отказ от ответственности за обход вместо молчаливого отклонения. Интерактивные сеансы, которые вы никогда не называли, имеют стандартное имя, такое как `my-app-3f`, в списках сеансов и `claude agents --json`. Фоновые команды shell и динамические рабочие процессы выживают при остановке, перезапуске или обновлении процесса сеанса, включая на Windows; установите `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF=1`, чтобы отключить передачу. Стенограмма, неправильно прочитанная как пустая при перезапуске, переименовывается с суффиксом `.orphaned-` вместо удаления. |

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

689| v2.1.174 | {/* min-version: 2.1.174 */}Фоновые сеансы больше не наследуют переменные конечной точки шлюза, такие как `ANTHROPIC_BASE_URL`, из оболочки запуска супервизора; супервизор предоставляет свежий снимок учётных данных предварительно прогретым рабочим процессам, исправляя ошибки `Could not resolve authentication method`. |738| v2.1.174 | {/* min-version: 2.1.174 */}Фоновые сеансы больше не наследуют переменные конечной точки шлюза, такие как `ANTHROPIC_BASE_URL`, из оболочки запуска супервизора; супервизор предоставляет свежий снимок учётных данных предварительно прогретым рабочим процессам, исправляя ошибки `Could not resolve authentication method`. |

agents.md +1 −1

Details

53Команда для проверки выполняемой работы зависит от того, какой подход вы использовали:53Команда для проверки выполняемой работы зависит от того, какой подход вы использовали:

54 54 

55* Для фоновых сеансов `claude agents` открывает [agent view](/ru/agent-view): один экран, показывающий каждый сеанс, его состояние и какие из них нуждаются в вашем вводе.55* Для фоновых сеансов `claude agents` открывает [agent view](/ru/agent-view): один экран, показывающий каждый сеанс, его состояние и какие из них нуждаются в вашем вводе.

56* Для подагентов в текущем сеансе `/agents` открывает панель с вкладкой **Running**, в которой перечислены активные подагенты, и вкладкой **Library**, где вы [создаете и редактируете пользовательские подагенты](/ru/sub-agents#use-the-%2Fagents-command). Несмотря на похожее имя, это отделено от `claude agents`.56* Для подагентов в текущем сеансе именованные фоновые подагенты появляются в typeahead @-упоминания с их статусом. {/* min-version: 2.1.198 */}Начиная с версии 2.1.198, `/agents` больше не открывает панель; он выводит уведомление, указывающее на расположение файлов подагентов. Чтобы [создавать и редактировать пользовательские подагенты](/ru/sub-agents#configure-subagents), попросите Claude или отредактируйте файлы напрямую. Несмотря на похожее имя, `/agents` отделен от `claude agents`.

57* Для всего, что работает в фоновом режиме текущего сеанса, `/tasks` перечисляет каждый элемент и позволяет вам проверить, присоединиться или остановить его.57* Для всего, что работает в фоновом режиме текущего сеанса, `/tasks` перечисляет каждый элемент и позволяет вам проверить, присоединиться или остановить его.

58* Для динамических рабочих процессов `/workflows` перечисляет запущенные и завершенные запуски, фазу, в которой находится каждый из них, и сколько агентов завершило работу.58* Для динамических рабочих процессов `/workflows` перечисляет запущенные и завершенные запуски, фазу, в которой находится каждый из них, и сколько агентов завершило работу.

59 59 

Details

184 184 

185Эти два параметра имеют разные условия срабатывания:185Эти два параметра имеют разные условия срабатывания:

186 186 

187* **`awsAuthRefresh`**: запускается только когда Claude Code обнаруживает, что ваши учетные данные AWS истекли, либо локально на основе их временной метки, либо когда Bedrock возвращает ошибку учетных данных, затем повторяет попытку запроса с обновленными учетными данными.187* **`awsAuthRefresh`**: запускается только когда Claude Code обнаруживает, что ваши учетные данные AWS истекли, либо локально на основе их временной метки, либо когда API возвращает ошибку учетных данных, затем повторяет попытку запроса с обновленными учетными данными.

188* **`awsCredentialExport`**: запускается при запуске сеанса и при каждой перезагрузке учетных данных, даже когда учетные данные в цепочке поставщика учетных данных AWS по умолчанию все еще действительны. Используйте это, когда ваша учетная запись Bedrock требует учетные данные между учетными записями, которые отличаются от тех, которые разрешила бы цепочка поставщика по умолчанию.188* **`awsCredentialExport`**: запускается при запуске сеанса и при каждой перезагрузке учетных данных, даже когда учетные данные в цепочке поставщика учетных данных AWS по умолчанию все еще действительны. Используйте это, когда ваша учетная запись Bedrock требует учетные данные между учетными записями, которые отличаются от тех, которые разрешила бы цепочка поставщика по умолчанию.

189 189 

190<h5 id="example-configuration">190<h5 id="example-configuration">

Details

54 54 

55Для большинства организаций `autoMode.environment` — это единственное поле, которое вам нужно установить. Оно сообщает классификатору, какие репозитории, бакеты и домены являются доверенными: классификатор использует его для определения того, что означает "внешний", поэтому любой пункт назначения, не указанный в списке, является потенциальной целью утечки данных.55Для большинства организаций `autoMode.environment` — это единственное поле, которое вам нужно установить. Оно сообщает классификатору, какие репозитории, бакеты и домены являются доверенными: классификатор использует его для определения того, что означает "внешний", поэтому любой пункт назначения, не указанный в списке, является потенциальной целью утечки данных.

56 56 

57Начиная с Claude Code v2.1.195, `claude auto-mode defaults` выводит два вида записей окружения.57Начиная с Claude Code v2.1.198, `claude auto-mode defaults` выводит три вида записей окружения. Версии до v2.1.195 выводят только первые пять слотов доверия.

58 58 

59* **Слоты контекста**: описывают вашу организацию, стек и позицию безопасности, чтобы классификатор читал другие правила в вашем контексте. В отличие от двух других видов, слоты контекста не имеют собственных правил, которые их нацеливают. Каждый по умолчанию имеет значение `None configured` или консервативное предположение, указанное рядом с ним:

60 * **Organization**

61 * **Primary use of Claude Code**: по умолчанию разработка программного обеспечения

62 * **Cloud provider(s)**

63 * **Repository visibility**: репозиторий считается приватным, если его удаленный хост и имя не указывают иное

64 * **Internal sharing / snippet hosting**: публичные сервисы paste и gist рассматриваются как находящиеся вне границы доверия до тех пор, пока вы их не назовете

65 * **Org-specific CLIs**

66 * **Secrets management**

67 * **Default / protected branches**: `main` и `master` рассматриваются как защищенные до тех пор, пока вы не назовете другие

68 * **CI/CD deploy targets**

69 * **Network posture**

70 * **Protected deployment namespaces / environments**: возвращается к эвристике Sensitive remote targets до тех пор, пока вы их не назовете

71 * **Data retention / declassification**

59* **Слоты доверия**: называют то, что классификатор рассматривает как находящееся внутри вашей границы. Слоты — это Trusted repo, Source control, Trusted internal domains, Trusted cloud buckets, Key internal services и Internal package registry. Записи repo и source-control по умолчанию указывают на рабочий репозиторий и его настроенные удаленные репозитории. Все остальные слоты доверия по умолчанию имеют значение `None configured`, поэтому ничего больше не доверяется до тех пор, пока вы это не добавите.72* **Слоты доверия**: называют то, что классификатор рассматривает как находящееся внутри вашей границы. Слоты — это Trusted repo, Source control, Trusted internal domains, Trusted cloud buckets, Key internal services и Internal package registry. Записи repo и source-control по умолчанию указывают на рабочий репозиторий и его настроенные удаленные репозитории. Все остальные слоты доверия по умолчанию имеют значение `None configured`, поэтому ничего больше не доверяется до тех пор, пока вы это не добавите.

60* **Слоты чувствительности**: называют то, что защитные правила рассматривают как высокий риск. Слоты — это PII / regulated-data locations, Sensitive remote targets и Protected IaC scopes. Каждый по умолчанию использует широкую эвристику, например рассматривая любой хост или пространство имен, чье имя содержит `prod` или `production`, как чувствительную удаленную цель, поэтому защитные правила активны до того, как вы что-либо настроите. Указание конкретных целей в слоте чувствительности заставляет эти правила применяться к названным целям вместо эвристики.73* **Слоты чувствительности**: называют то, что защитные правила рассматривают как высокий риск. Слоты — это Sensitive data locations & audiences, Sensitive remote targets и Protected IaC scopes. Каждый по умолчанию использует широкую эвристику, например рассматривая любой хост или пространство имен, чье имя содержит `prod` или `production`, как чувствительную удаленную цель, поэтому защитные правила активны до того, как вы что-либо настроите. Указание конкретных целей в слоте чувствительности заставляет эти правила применяться к названным целям вместо эвристики.

61 

62Версии до v2.1.195 выводят только первые пять слотов доверия.

63 74 

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

65 76 


87* **Доверенные внутренние домены**: имена хостов для API, панелей управления и сервисов внутри вашей сети, например `*.internal.example.com`98* **Доверенные внутренние домены**: имена хостов для API, панелей управления и сервисов внутри вашей сети, например `*.internal.example.com`

88* **Ключевые внутренние сервисы**: CI, реестры артефактов, внутренние индексы пакетов, инструменты для инцидентов99* **Ключевые внутренние сервисы**: CI, реестры артефактов, внутренние индексы пакетов, инструменты для инцидентов

89* **Внутренний реестр пакетов**: приватный npm, PyPI или другой реестр, через который должны проходить установки, поэтому установки, которые обходят его для публичного реестра, блокируются100* **Внутренний реестр пакетов**: приватный npm, PyPI или другой реестр, через который должны проходить установки, поэтому установки, которые обходят его для публичного реестра, блокируются

90* **PII / regulated-data locations**: бакеты, базы данных или пути, которые содержат личные или регулируемые данные, поэтому классификатор защищает эти местоположения вместо того, чтобы угадывать из содержимого101* **Sensitive data locations & audiences**: бакеты, базы данных или пути, которые содержат личные данные, конфиденциальные бизнес-данные, учетные данные, регулируемые данные или аналогичный чувствительный материал, и аудитории, с которыми данные в каждом местоположении могут быть общими, поэтому классификатор защищает эти местоположения вместо того, чтобы угадывать из содержимого. {/* min-version: 2.1.195 */}{/* max-version: 2.1.197 */}Claude Code v2.1.195 через v2.1.197 называют эту запись PII / regulated-data locations и охватывают только местоположения, которые содержат личные или регулируемые данные, без измерения аудитории

91* **Sensitive remote targets**: пространства имен, хосты или контейнеры, которые считаются production, поэтому удаленные оболочки и port-forwards в них требуют вашего явного одобрения102* **Sensitive remote targets**: пространства имен, хосты или контейнеры, которые считаются production, поэтому удаленные оболочки и port-forwards в них требуют вашего явного одобрения

92* **Protected IaC scopes**: ресурсы инфраструктуры, чьи apply или destroy всегда должны требовать от вас назвать изменение103* **Protected IaC scopes**: ресурсы инфраструктуры, чьи apply или destroy всегда должны требовать от вас назвать изменение

93* **Дополнительный контекст**: ограничения регулируемой отрасли, многопользовательская инфраструктура или требования соответствия, которые влияют на то, что классификатор должен рассматривать как рискованное104* **Дополнительный контекст**: ограничения регулируемой отрасли, многопользовательская инфраструктура или требования соответствия, которые влияют на то, что классификатор должен рассматривать как рискованное

94 105 

95Записи Internal package registry, PII / regulated-data locations, Sensitive remote targets и Protected IaC scopes требуют Claude Code v2.1.195 или позже. Более ранние версии по-прежнему читают их как простой контекст, но не имеют встроенных правил, которые их нацеливают.106Записи Internal package registry, Sensitive data locations & audiences, Sensitive remote targets и Protected IaC scopes требуют Claude Code v2.1.195 или позже. Более ранние версии по-прежнему читают их как простой контекст, но не имеют встроенных правил, которые их нацеливают.

96 107 

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

98 109 

chrome.md +15 −2

Details

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt2> 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.3> Use this file to discover all available pages before exploring further.

4 4 

5# Использование Claude Code с Chrome (бета)5# Использование Claude Code с Chrome

6 6 

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

8 8 


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

12 12 

13<Note>13<Note>

14 Интеграция с Chrome находится в бета-версии и в настоящее время работает с Google Chrome и Microsoft Edge. Она еще не поддерживается на Brave, Arc или других браузерах на основе Chromium. WSL (Windows Subsystem for Linux) также не поддерживается.14 Интеграция с Chrome работает с Google Chrome и Microsoft Edge. Она еще не поддерживается на Brave, Arc или других браузерах на основе Chromium. Она также не поддерживается в Windows Subsystem for Linux (WSL).

15</Note>15</Note>

16 16 

17<h2 id="capabilities">17<h2 id="capabilities">


90 90 

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

92 92 

93<h3 id="browser-tools-in-plan-mode">

94 Инструменты браузера в режиме плана

95</h3>

96 

97В [режиме плана](/ru/permission-modes#analyze-before-you-edit-with-plan-mode) вызовы инструментов браузера, которые только читают страницу или состояние браузера, выполняются без запроса разрешения, а вызовы, которые изменяют состояние, запрашивают одобрение.

98 

99* **Вызовы только для чтения**: `read_page`, `get_page_text`, `find`, чтение сообщений консоли или сетевых запросов и создание снимка экрана

100* **Вызовы, изменяющие состояние**: клики, ввод текста, навигация, управление вкладками и окнами, а также запись GIF

101 

102Начиная с версии 2.1.199, вызов, который в остальном предназначен только для чтения, но устанавливает флаг входа, изменяющий состояние, такой как `createIfEmpty` на `tabs_context_mcp`, `clear` на средствах чтения консоли и сети или `save_to_disk` на снимке экрана, также запрашивает одобрение. Вызов `browser_batch` выполняется без запроса только в том случае, если каждое действие внутри него предназначено только для чтения.

103 

93<h2 id="example-workflows">104<h2 id="example-workflows">

94 Примеры рабочих процессов105 Примеры рабочих процессов

95</h2>106</h2>


208 219 

209При первом включении интеграции с Chrome, Claude Code устанавливает файл конфигурации хоста собственного обмена сообщениями. Chrome читает этот файл при запуске, поэтому если расширение не обнаружено при первой попытке, перезагрузите Chrome, чтобы подобрать новую конфигурацию.220При первом включении интеграции с Chrome, Claude Code устанавливает файл конфигурации хоста собственного обмена сообщениями. Chrome читает этот файл при запуске, поэтому если расширение не обнаружено при первой попытке, перезагрузите Chrome, чтобы подобрать новую конфигурацию.

210 221 

222Начиная с версии 2.1.199, Claude Code открывает вкладку браузера с предложением подключить расширение только при первой установке. Последующие сеансы, которые переписывают файл конфигурации, например после переключения сборок Claude Code или каталогов конфигурации, не открывают его повторно.

223 

211Если соединение по-прежнему не удаётся, убедитесь, что файл конфигурации хоста существует в:224Если соединение по-прежнему не удаётся, убедитесь, что файл конфигурации хоста существует в:

212 225 

213Для Chrome:226Для Chrome:

Details

4 4 

5# Конфигурация Claude apps gateway5# Конфигурация Claude apps gateway

6 6 

7> Справочник по каждому параметру gateway.yaml: listener и TLS, OIDC, session, хранилище Postgres, upstreams Bedrock/Agent Platform/Foundry, маршрутизация моделей, управляемые политики и телеметрия.7> Справочник по каждому параметру gateway.yaml: listener и TLS, OIDC, session, хранилище Postgres, upstreams Bedrock/Claude Platform на AWS/Agent Platform/Foundry, маршрутизация моделей, управляемые политики и телеметрия.

8 8 

9Развёртывание Claude apps gateway настраивается одним файлом YAML, обычно `gateway.yaml`. Файл определяет всё, что делает gateway: где он слушает, как разработчики входят в систему, куда идёт вывод, и какие политики и телеметрия применяются. Эта страница — справочник по каждому параметру в этом файле. Чтобы написать свой первый файл, начните с [quickstart](/ru/claude-apps-gateway#quickstart), который создаёт минимальную рабочую конфигурацию и запускает её; когда у вас будет конфигурация, которой вы довольны, [руководство по развёртыванию](/ru/claude-apps-gateway-deploy) охватывает контейнеризацию и размещение на Kubernetes, Cloud Run или вашей собственной платформе.9Развёртывание Claude apps gateway настраивается одним файлом YAML, обычно `gateway.yaml`. Файл определяет всё, что делает gateway: где он слушает, как разработчики входят в систему, куда идёт вывод, и какие политики и телеметрия применяются. Эта страница — справочник по каждому параметру в этом файле.

10 

11Чтобы написать свой первый файл, начните с [quickstart](/ru/claude-apps-gateway#quickstart), который создаёт минимальную рабочую конфигурацию и запускает её. Когда у вас будет конфигурация, которой вы довольны, [руководство по развёртыванию](/ru/claude-apps-gateway-deploy) охватывает контейнеризацию и размещение на Kubernetes, Cloud Run или вашей собственной платформе.

10 12 

11Gateway читает файл один раз при запуске с помощью `claude gateway --config /path/to/gateway.yaml`. Каждый параметр проверяется по схеме при загрузке, поэтому неправильная конфигурация не запускается с ошибкой на уровне поля, а не при первом использовании.13Gateway читает файл один раз при запуске с помощью `claude gateway --config /path/to/gateway.yaml`. Каждый параметр проверяется по схеме при загрузке, поэтому неправильная конфигурация не запускается с ошибкой на уровне поля, а не при первом использовании.

12 14 


24* [`oidc`](#oidc): ваш поставщик идентификации (IdP), включая издателя, клиента, сопоставление утверждений и кто может входить26* [`oidc`](#oidc): ваш поставщик идентификации (IdP), включая издателя, клиента, сопоставление утверждений и кто может входить

25* [`session`](#session): токены-носители, которые выпускает gateway, с секретом и временем жизни27* [`session`](#session): токены-носители, которые выпускает gateway, с секретом и временем жизни

26* [`store`](#store): PostgreSQL для грантов устройств и счётчиков ограничения скорости28* [`store`](#store): PostgreSQL для грантов устройств и счётчиков ограничения скорости

27* [`upstreams`](#upstreams): куда идёт вывод, будь то Anthropic, Bedrock, Agent Platform или Foundry29* [`upstreams`](#upstreams): куда идёт вывод, будь то Anthropic, Bedrock, Claude Platform на AWS, Agent Platform или Foundry

28 30 

29**Опциональные разделы:**31**Опциональные разделы:**

30 32 


68 `oidc`70 `oidc`

69</h3>71</h3>

70 72 

71OpenID Connect (OIDC) — это протокол SSO, который gateway использует с вашим поставщиком идентификации; см. [Настройка поставщика идентификации](/ru/claude-apps-gateway-deploy#identity-provider-setup) для того, что нужно зарегистрировать на стороне IdP. Блок `oidc` подключает gateway к вашему поставщику идентификации и решает, кто может входить. Он называет издателя и клиента OAuth, сопоставляет утверждения, которые несут электронную почту и группы, и ограничивает вход по домену электронной почты или группе.73Блок `oidc` подключает gateway к вашему поставщику идентификации и решает, кто может входить. Он называет издателя и клиента OAuth, сопоставляет утверждения, которые несут электронную почту и группы, и ограничивает вход по домену электронной почты или группе.

74 

75OpenID Connect (OIDC) — это протокол SSO, который gateway использует с вашим поставщиком идентификации; см. [Настройка поставщика идентификации](/ru/claude-apps-gateway-deploy#identity-provider-setup) для того, что нужно зарегистрировать на стороне IdP.

72 76 

73| Поле | Обязательно | Описание |77| Поле | Обязательно | Описание |

74| ------------------------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |78| ------------------------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |


121 `upstreams`125 `upstreams`

122</h3>126</h3>

123 127 

124`upstreams` — это упорядоченный список. Gateway пересылает вывод на первый upstream, который разрешает запрошенную модель. На `5xx`, `429` или timeout он переходит на следующий; другие `4xx` не переходят, потому что эти ошибки относятся к запросу, а не к upstream. Несколько upstream одного поставщика должны установить отличный `name:`.128`upstreams` — это упорядоченный список. Gateway пересылает вывод на первый upstream, который разрешает запрошенную модель. На `5xx`, `429`, `401`, `403`, `404` или timeout он переходит на следующий; другие `4xx` не переходят, потому что эти ошибки относятся к запросу, а не к upstream. `401` или `403` означает, что собственные учётные данные gateway не прошли проверку на этом upstream, а `404` означает, что этот upstream не служит запрошенной модели, поэтому более поздний upstream в списке всё ещё может.

129 

130Переход при `404` требует gateway v2.1.198 или позже. Более ранние выпуски возвращали первый `404` клиенту даже когда более поздний upstream в списке служил модели.

125 131 

126Клиенты Bedrock, Agent Platform и Foundry создаются один раз при запуске, и их SDK обновляют учётные данные внутри, поэтому ротация облачных учётных данных не требует перезагрузки. Статические ключи API Anthropic и носители читаются при запуске; см. [Anthropic API](#anthropic-api).132Несколько upstream одного поставщика должны установить отличный `name:`.

133 

134Клиенты Bedrock, Claude Platform on AWS, Agent Platform и Foundry создаются один раз при запуске, и их SDK обновляют учётные данные внутри, поэтому ротация облачных учётных данных не требует перезагрузки. Статические ключи API Anthropic и носители читаются при запуске; см. [Anthropic API](#anthropic-api).

127 135 

128<h4 id="anthropic-api">136<h4 id="anthropic-api">

129 Anthropic API137 Anthropic API


193| Где-либо ещё | Передайте учётные данные через переменные env `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY` и `AWS_SESSION_TOKEN`, или установите их явно в `auth:` с расширением `${VAR}` |201| Где-либо ещё | Передайте учётные данные через переменные env `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY` и `AWS_SESSION_TOKEN`, или установите их явно в `auth:` с расширением `${VAR}` |

194| Регион | `region:` — это регион конечной точки API. Профили вывода между регионами маршрутизируют по географии (США, ЕС, APAC) независимо от того, какой вы выберете. Для регионов, не входящих в США, или ARN с выделенной пропускной способностью добавьте блок [`models:`](#models) с правильными ID для каждого upstream. |202| Регион | `region:` — это регион конечной точки API. Профили вывода между регионами маршрутизируют по географии (США, ЕС, APAC) независимо от того, какой вы выберете. Для регионов, не входящих в США, или ARN с выделенной пропускной способностью добавьте блок [`models:`](#models) с правильными ID для каждого upstream. |

195 203 

204<h4 id="claude-platform-on-aws">

205 Claude Platform on AWS

206</h4>

207 

208Claude Platform on AWS служит первоклассный Anthropic API на инфраструктуре AWS в `aws-external-anthropic.<region>.api.aws`. Он использует первоклассные ID моделей, соблюдает заголовки `anthropic-beta` в том виде, в котором они отправлены, и служит `count_tokens`, поэтому никакой перевод, специфичный для Bedrock, не применяется. Поставщик `anthropicAws` требует Claude Code v2.1.198 или позже; более ранние выпуски gateway отклоняют его при загрузке.

209 

210Для развёртывания на стороне клиента той же платформы см. [Claude Code на Claude Platform on AWS](/ru/claude-platform-on-aws). Upstream на стороне gateway:

211 

212```yaml theme={null}

213upstreams:

214 - provider: anthropicAws

215 region: us-east-1

216 workspace_id: wrkspc_...

217 auth:

218 api_key: ${ANTHROPIC_AWS_API_KEY} # отправляется как x-api-key

219 # ИЛИ SigV4 через цепочку учётных данных AWS по умолчанию:

220 # auth: {}

221 # ИЛИ явные учётные данные SigV4:

222 # auth:

223 # aws_access_key_id: ${AWS_ACCESS_KEY_ID}

224 # aws_secret_access_key: ${AWS_SECRET_ACCESS_KEY}

225 # Переопределите полученную конечную точку:

226 # base_url: https://aws-external-anthropic.us-east-1.api.aws

227```

228 

229Платформа работает в отдельной учётной записи AWS от Amazon Bedrock и подписывает запросы SigV4 для собственного имени сервиса, `aws-external-anthropic`, поэтому роль IAM, ограниченная Bedrock, не авторизует её. Ключ API в `auth.api_key` имеет приоритет, когда также установлены учётные данные SigV4. Пустой блок `auth` использует цепочку учётных данных AWS SDK по умолчанию, ту же цепочку, которую использует upstream [Amazon Bedrock](#amazon-bedrock).

230 

231| Поле | Обязательно | Описание |

232| ------------------------------------------------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------ |

233| `region` | Да | Регион AWS, строчные буквы, цифры и дефисы. Gateway получает конечную точку из него как `https://aws-external-anthropic.<region>.api.aws`. |

234| `workspace_id` | Да | Отправляется как заголовок на каждый запрос; платформа требует это |

235| `auth.api_key` | Нет | Ключ API для платформы, отправляется как `x-api-key`. Не токен-носитель: два режима аутентификации — это ключ API или SigV4. |

236| `auth.aws_access_key_id` / `auth.aws_secret_access_key` | Нет | Явные учётные данные SigV4. Установка одного без другого не удаётся при загрузке. `auth.aws_session_token` принимается рядом с ними. |

237| `base_url` | Нет | Переопределите полученную конечную точку |

238 

239Поскольку платформа разрешает первоклассные ID моделей, встроенный каталог маршрутизирует на неё без блока [`models:`](#models). Когда вы курируете список `models:`, ключируйте запись `anthropicAws:` с первоклассным ID.

240 

196<h4 id="google-cloud-agent-platform">241<h4 id="google-cloud-agent-platform">

197 Google Cloud Agent Platform242 Google Cloud Agent Platform

198</h4>243</h4>


255 300 

256Один и тот же поставщик может появляться более одного раза с отличным `name:`. Это охватывает разные регионы, разные учётные записи через разные цепочки учётных данных, выделенную пропускную способность в сравнении с по требованию и кросс-провайдерный fallback.301Один и тот же поставщик может появляться более одного раза с отличным `name:`. Это охватывает разные регионы, разные учётные записи через разные цепочки учётных данных, выделенную пропускную способность в сравнении с по требованию и кросс-провайдерный fallback.

257 302 

258Gateway пробует upstream по порядку. `5xx`, `429`, timeout и отсутствие конечной точки (`501`) переходят; другие `4xx` не переходят. `429` — это пропускная способность для каждого upstream, поэтому истощение выделенной пропускной способности (PT) переходит на по требованию. Upstream, который не может разрешить запрошенную модель, пропускается без сетевого раундтрипа.303Gateway пробует upstream по порядку. `5xx`, `429`, `401`, `403`, `404`, timeout и отсутствие конечной точки (`501`) переходят; другие `4xx` не переходят.

304 

305`429` — это пропускная способность для каждого upstream, поэтому истощение выделенной пропускной способности (PT) переходит на по требованию. `404` — это доступность модели для каждого upstream, поэтому upstream, который не включил модель, не блокирует более поздний upstream, который её служит. Upstream, который не может разрешить запрошенную модель, пропускается без сетевого раундтрипа.

259 306 

260Этот пример маршрутизирует выделенное выделение пропускной способности Bedrock в первую очередь, переполнение на по требованию и вторую учётную запись, и переходит на Anthropic API в последнюю очередь:307Этот пример маршрутизирует выделенное выделение пропускной способности Bedrock в первую очередь, переполнение на по требованию и вторую учётную запись, и переходит на Anthropic API в последнюю очередь:

261 308 


513* `sandbox.network.allowManagedDomainsOnly` и `sandbox.filesystem.allowManagedReadPathsOnly`: когда заблокированы, соответствующие списки разрешений объединяются между источниками560* `sandbox.network.allowManagedDomainsOnly` и `sandbox.filesystem.allowManagedReadPathsOnly`: когда заблокированы, соответствующие списки разрешений объединяются между источниками

514* [`allowAllClaudeAiMcps`](/ru/settings#available-settings): переопределение разрешения только для списка разрешений MCP claude.ai561* [`allowAllClaudeAiMcps`](/ru/settings#available-settings): переопределение разрешения только для списка разрешений MCP claude.ai

515* `sandbox.bwrapPath` и `sandbox.socatPath`: пути файловой системы к вспомогательным двоичным файлам [sandbox](/ru/sandboxing)562* `sandbox.bwrapPath` и `sandbox.socatPath`: пути файловой системы к вспомогательным двоичным файлам [sandbox](/ru/sandboxing)

563* [`forceRemoteSettingsRefresh`](/ru/server-managed-settings): блокирует запуск до тех пор, пока удалённые управляемые параметры не будут свежо получены, поэтому политика MDM или файла, которая её устанавливает, соблюдается даже когда кэшированный удалённый payload, в котором отсутствует ключ, является источником с наивысшим приоритетом

516 564 

517Каждый другой ключ, включая `allowManagedPermissionRulesOnly` и `disableBypassPermissionsMode`, поступает только из источника с наивысшим приоритетом. См. [Приоритет параметров](/ru/settings#settings-precedence) для того же правила на странице параметров.565Каждый другой ключ, включая `allowManagedPermissionRulesOnly` и `disableBypassPermissionsMode`, поступает только из источника с наивысшим приоритетом. См. [Приоритет параметров](/ru/settings#settings-precedence) для того же правила на странице параметров.

518 566 


580| `limits` | `max_request_bytes` | 32 MiB | Максимальный входящий размер тела запроса; запросы большего размера получают `413` перед буферизацией тела. Повысьте для больших запросов файлов или изображений. |628| `limits` | `max_request_bytes` | 32 MiB | Максимальный входящий размер тела запроса; запросы большего размера получают `413` перед буферизацией тела. Повысьте для больших запросов файлов или изображений. |

581| `limits` | `max_request_header_bytes` | не установлено | Когда установлено, заголовки большего размера возвращают `431` |629| `limits` | `max_request_header_bytes` | не установлено | Когда установлено, заголовки большего размера возвращают `431` |

582| `limits` | `max_url_length` | не установлено | Когда установлено, слишком длинный URL возвращает `414` |630| `limits` | `max_url_length` | не установлено | Когда установлено, слишком длинный URL возвращает `414` |

583| `timeouts` | `upstream_ttfb_ms` | 120000 | Максимальное ожидание заголовков ответа upstream (время до первого байта). Тело ответа затем потоком без ограничения по стене часов. Применяется к прямому пути upstream Anthropic; Bedrock, Agent Platform и Foundry ограничены собственным timeout SDK поставщика. |631| `timeouts` | `upstream_ttfb_ms` | 120000 | Максимальное ожидание заголовков ответа upstream (время до первого байта). Тело ответа затем потоком без ограничения по стене часов. Применяется к прямому пути upstream Anthropic; каждый другой поставщик ограничен собственным timeout SDK поставщика. |

584| `rate_limits` | `device_authorization.max` / `.window_seconds` | 30 / 600 | Ограничение скорости по IP на неаутентифицированной конечной точке авторизации устройства. Повысьте для большой организации за общим исходящим IP или NAT. Эти ограничения применяются только к потоку входа грантов устройств, а не к выводу `/v1/messages`. См. [Сопротивление перебору пользовательского кода](/ru/claude-apps-gateway-deploy#user-code-brute-force-resistance). |632| `rate_limits` | `device_authorization.max` / `.window_seconds` | 30 / 600 | Ограничение скорости по IP на неаутентифицированной конечной точке авторизации устройства. Повысьте для большой организации за общим исходящим IP или NAT. Эти ограничения применяются только к потоку входа грантов устройств, а не к выводу `/v1/messages`. См. [Сопротивление перебору пользовательского кода](/ru/claude-apps-gateway-deploy#user-code-brute-force-resistance). |

585| `rate_limits` | `device_verify.max` / `.window_seconds` | 10 / 600 | Ограничение скорости по IP на отправки `user_code` в `/device` |633| `rate_limits` | `device_verify.max` / `.window_seconds` | 10 / 600 | Ограничение скорости по IP на отправки `user_code` в `/device` |

586 634 


662 # region: us-east-1710 # region: us-east-1

663 # auth: {}711 # auth: {}

664 712 

713 # - provider: anthropicAws

714 # region: us-east-1

715 # workspace_id: wrkspc_...

716 # auth:

717 # api_key: ${ANTHROPIC_AWS_API_KEY}

718 

665 # - provider: vertex719 # - provider: vertex

666 # region: us-east5720 # region: us-east5

667 # project_id: example-prod721 # project_id: example-prod


678 upstream_model:732 upstream_model:

679 anthropic: claude-opus-4-8733 anthropic: claude-opus-4-8

680 # bedrock: us.anthropic.claude-opus-4-8734 # bedrock: us.anthropic.claude-opus-4-8

735 # anthropicAws: claude-opus-4-8

681 # vertex: claude-opus-4-8736 # vertex: claude-opus-4-8

682 # foundry: <your-opus-deployment-name>737 # foundry: <your-opus-deployment-name>

683 - id: claude-sonnet-4-6738 - id: claude-sonnet-4-6

Details

97<Note>97<Note>

98 **Workload identity**98 **Workload identity**

99 99 

100 Предпочитайте workload identity платформы вместо статических ключей: IRSA на EKS для Bedrock, Workload Identity на GKE для Agent Platform и workload identity на AKS для Foundry. Установите `auth: {}` в блоке upstream или `use_azure_ad: true` для Foundry, и шлюз подхватывает идентификацию pod через цепь учетных данных по умолчанию этого поставщика. Для кросс-облачного сопряжения, такого как upstream Bedrock на GKE, установите явные учетные данные в блоке `auth` upstream вместо этого. [Справочник `upstreams`](/ru/claude-apps-gateway-config#upstreams) имеет детали настройки для каждой платформы.100 Предпочитайте workload identity платформы вместо статических ключей: IRSA на EKS для Bedrock и для Claude Platform на AWS, Workload Identity на GKE для Agent Platform и workload identity на AKS для Foundry. Установите `auth: {}` в блоке upstream или `use_azure_ad: true` для Foundry, и шлюз подхватывает идентификацию pod через цепь учетных данных по умолчанию этого поставщика. Для кросс-облачного сопряжения, такого как upstream Bedrock на GKE, установите явные учетные данные в блоке `auth` upstream вместо этого. [Справочник `upstreams`](/ru/claude-apps-gateway-config#upstreams) имеет детали настройки для каждой платформы.

101</Note>101</Note>

102 102 

103<h3 id="cloud-run">103<h3 id="cloud-run">

Details

723Телепортирование проверяет эти требования перед возобновлением сессии. Если какое-либо требование не выполнено, вы увидите ошибку или будете приглашены разрешить проблему.723Телепортирование проверяет эти требования перед возобновлением сессии. Если какое-либо требование не выполнено, вы увидите ошибку или будете приглашены разрешить проблему.

724 724 

725| Требование | Детали |725| Требование | Детали |

726| ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |726| ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

727| Чистое состояние git | Ваш рабочий каталог должен не иметь незафиксированных изменений. Телепортирование предложит вам спрятать изменения, если необходимо. |727| Чистое состояние git | Ваш рабочий каталог должен не иметь незафиксированных изменений. Телепортирование предложит вам спрятать изменения, если необходимо. |

728| Правильный репозиторий | Вы должны запустить `--teleport` из проверки того же репозитория, не форка. |728| Правильный репозиторий | Вы должны запустить `--teleport` из проверки того же репозитория, не форка. {/* min-version: 2.1.199 */}Начиная с версии v2.1.199, Claude Code принимает проверку даже когда он не может разобрать удалённый сервер в имя хоста, такое как псевдоним SSH хоста, как `git@work:owner/repo.git` или переписанная форма `insteadOf`. Он показывает подтверждающий запрос сначала, и только когда владелец удалённого сервера и имя репозитория совпадают с репозиторием сессии. |

729| Доступность ветки | Ветка из облачной сессии должна быть отправлена на удалённый сервер. Телепортирование автоматически получает и проверяет её. |729| Доступность ветки | Ветка из облачной сессии должна быть отправлена на удалённый сервер. Телепортирование автоматически получает и проверяет её. |

730| Один и тот же аккаунт | Вы должны быть аутентифицированы на том же аккаунте claude.ai, который использовался в облачной сессии. |730| Один и тот же аккаунт | Вы должны быть аутентифицированы на том же аккаунте claude.ai, который использовался в облачной сессии. |

731 731 

Details

230 230 

231Для CI и автоматизации дайте средству выполнения роль IAM с разрешением на вызов сервиса Anthropic и установите `AWS_REGION`. Цепочка учетных данных автоматически подхватывает роль.231Для CI и автоматизации дайте средству выполнения роль IAM с разрешением на вызов сервиса Anthropic и установите `AWS_REGION`. Цепочка учетных данных автоматически подхватывает роль.

232 232 

233Если ваши учетные данные SSO истекают во время сеанса, настройте [`awsAuthRefresh`](/ru/amazon-bedrock#advanced-credential-configuration), чтобы Claude Code повторно запустил вашу команду входа и повторил попытку вместо сбоя. Добавьте команду в ваш `settings.json`:233Если ваши учетные данные SSO истекают во время сеанса, настройте [`awsAuthRefresh`](/ru/amazon-bedrock#advanced-credential-configuration), чтобы Claude Code повторно запустил вашу команду входа и повторил попытку вместо сбоя. Автоматическое обновление на Claude Platform on AWS требует Claude Code v2.1.198 или более поздней версии; более ранние версии останавливаются с подсказкой запустить `/login`, что не может обновить учетные данные AWS. Добавьте команду в ваш `settings.json`:

234 234 

235```json theme={null}235```json theme={null}

236{236{

Details

47 47 

48Если вы неправильно введете подкоманду, Claude Code предложит ближайшее совпадение и выйдет без запуска сеанса. Например, `claude udpate` выводит `Did you mean claude update?`.48Если вы неправильно введете подкоманду, Claude Code предложит ближайшее совпадение и выйдет без запуска сеанса. Например, `claude udpate` выводит `Did you mean claude update?`.

49 49 

50{/* min-version: 2.1.199 */}Начиная с версии v2.1.199, `claude --dangerously-skip-permissions daemon <subcommand>` запускает подкоманду `daemon`. В более ранних версиях `daemon <subcommand>` рассматривалась как приглашение для нового интерактивного сеанса, поэтому подкоманда никогда не запускалась, когда флаг шел первым, что является распространенной настройкой, когда `claude` имеет псевдоним, включающий флаг. Только ведущий `--dangerously-skip-permissions` или `--allow-dangerously-skip-permissions` маршрутизирует к `daemon` таким образом; любой другой ведущий флаг по-прежнему запускает интерактивный сеанс.

51 

50<h2 id="cli-flags">52<h2 id="cli-flags">

51 Флаги CLI53 Флаги CLI

52</h2>54</h2>


66| `--ax-screen-reader` | {/* min-version: 2.1.181 */}Отрендерить вывод, удобный для программ чтения с экрана: плоский текст без декоративных границ или анимаций. Принудительно использует классический рендерер, поэтому параметр [`tui`](/ru/settings#available-settings) не имеет эффекта для сеанса. Имеет приоритет над [`CLAUDE_AX_SCREEN_READER`](/ru/env-vars) и параметром [`axScreenReader`](/ru/settings#available-settings). Требует Claude Code v2.1.181 или позже | `claude --ax-screen-reader` |68| `--ax-screen-reader` | {/* min-version: 2.1.181 */}Отрендерить вывод, удобный для программ чтения с экрана: плоский текст без декоративных границ или анимаций. Принудительно использует классический рендерер, поэтому параметр [`tui`](/ru/settings#available-settings) не имеет эффекта для сеанса. Имеет приоритет над [`CLAUDE_AX_SCREEN_READER`](/ru/env-vars) и параметром [`axScreenReader`](/ru/settings#available-settings). Требует Claude Code v2.1.181 или позже | `claude --ax-screen-reader` |

67| `--bare` | Минимальный режим: пропустить автоматическое обнаружение hooks, skills, plugins, MCP серверов, автоматической памяти и CLAUDE.md, чтобы скриптовые вызовы начинались быстрее. Claude имеет доступ к инструментам Bash, чтения файлов и редактирования файлов. Устанавливает [`CLAUDE_CODE_SIMPLE`](/ru/env-vars). См. [bare mode](/ru/headless#start-faster-with-bare-mode) | `claude --bare -p "query"` |69| `--bare` | Минимальный режим: пропустить автоматическое обнаружение hooks, skills, plugins, MCP серверов, автоматической памяти и CLAUDE.md, чтобы скриптовые вызовы начинались быстрее. Claude имеет доступ к инструментам Bash, чтения файлов и редактирования файлов. Устанавливает [`CLAUDE_CODE_SIMPLE`](/ru/env-vars). См. [bare mode](/ru/headless#start-faster-with-bare-mode) | `claude --bare -p "query"` |

68| `--betas` | Заголовки бета-версии для включения в запросы API (только для пользователей API-ключей) | `claude --betas interleaved-thinking` |70| `--betas` | Заголовки бета-версии для включения в запросы API (только для пользователей API-ключей) | `claude --betas interleaved-thinking` |

69| `--bg`, `--background` | Запустить сеанс как [фоновый агент](/ru/agent-view) и вернуться немедленно. Выводит ID сеанса и команды управления. Комбинируйте с `--exec` для запуска команды shell как фонового задания вместо сеанса Claude, или с `--agent` для запуска конкретного subagent | `claude --bg "investigate the flaky test"` |71| `--bg`, `--background` | Запустить сеанс как [фоновый агент](/ru/agent-view) и вернуться немедленно. Выводит ID сеанса и команды управления. Комбинируйте с `--exec` для запуска команды shell как фонового задания вместо сеанса Claude, или с `--agent` для запуска конкретного subagent. {/* min-version: 2.1.198 */}Не может быть скомбинирован с `-p`/`--print`; см. [справочник ошибок](/ru/errors#command-line-errors) | `claude --bg "investigate the flaky test"` |

70| `--channels` | (Исследовательский предпросмотр) MCP серверы, чьи уведомления [channel](/ru/channels) Claude должен слушать в этом сеансе. Разделенный пробелом список записей `plugin:<name>@<marketplace>`. Требует аутентификацию Claude.ai | `claude --channels plugin:my-notifier@my-marketplace` |72| `--channels` | (Исследовательский предпросмотр) MCP серверы, чьи уведомления [channel](/ru/channels) Claude должен слушать в этом сеансе. Разделенный пробелом список записей `plugin:<name>@<marketplace>`. Требует аутентификацию Claude.ai | `claude --channels plugin:my-notifier@my-marketplace` |

71| `--chrome` | Включить [интеграцию браузера Chrome](/ru/chrome) для веб-автоматизации и тестирования | `claude --chrome` |73| `--chrome` | Включить [интеграцию браузера Chrome](/ru/chrome) для веб-автоматизации и тестирования | `claude --chrome` |

72| `--continue`, `-c` | Загрузить самую последнюю беседу в текущем каталоге. Включает сеансы, которые добавили этот каталог с помощью `/add-dir` | `claude --continue` |74| `--continue`, `-c` | Загрузить самую последнюю беседу в текущем каталоге. Включает сеансы, которые добавили этот каталог с помощью `/add-dir` | `claude --continue` |


100| `--no-session-persistence` | Отключить сохранение сеанса, чтобы сеансы не сохранялись на диск и не могли быть возобновлены. Только режим печати. Переменная окружения [`CLAUDE_CODE_SKIP_PROMPT_HISTORY`](/ru/env-vars) делает то же самое в любом режиме | `claude -p --no-session-persistence "query"` |102| `--no-session-persistence` | Отключить сохранение сеанса, чтобы сеансы не сохранялись на диск и не могли быть возобновлены. Только режим печати. Переменная окружения [`CLAUDE_CODE_SKIP_PROMPT_HISTORY`](/ru/env-vars) делает то же самое в любом режиме | `claude -p --no-session-persistence "query"` |

101| `--output-format` | Указать формат вывода для режима печати (опции: `text`, `json`, `stream-json`) | `claude -p "query" --output-format json` |103| `--output-format` | Указать формат вывода для режима печати (опции: `text`, `json`, `stream-json`) | `claude -p "query" --output-format json` |

102| `--permission-mode` | Начать в указанном [режиме разрешения](/ru/permission-modes). Принимает `default`, `acceptEdits`, `plan`, `auto`, `dontAsk` или `bypassPermissions`. Переопределяет `defaultMode` из файлов параметров | `claude --permission-mode plan` |104| `--permission-mode` | Начать в указанном [режиме разрешения](/ru/permission-modes). Принимает `default`, `acceptEdits`, `plan`, `auto`, `dontAsk` или `bypassPermissions`. Переопределяет `defaultMode` из файлов параметров | `claude --permission-mode plan` |

103| `--permission-prompt-tool` | Указать инструмент MCP для обработки запросов разрешения в неинтерактивном режиме | `claude -p --permission-prompt-tool mcp_auth_tool "query"` |105| `--permission-prompt-tool` | Указать инструмент MCP для обработки запросов разрешения в неинтерактивном режиме. {/* min-version: 2.1.199 */}Начиная с v2.1.199, инструмент приглашения не может одобрить инструмент MCP, отмеченный как [требующий взаимодействия пользователя](/ru/mcp#require-approval-for-a-specific-tool): результат `allow` для одного преобразуется в отрицание | `claude -p --permission-prompt-tool mcp_auth_tool "query"` |

104| `--plugin-dir` | Загрузить plugin из каталога или архива `.zip` только для этого сеанса. Каждый флаг принимает один путь. Повторите флаг для нескольких plugins: `--plugin-dir A --plugin-dir B.zip` | `claude --plugin-dir ./my-plugin` |106| `--plugin-dir` | Загрузить plugin из каталога или архива `.zip` только для этого сеанса. Каждый флаг принимает один путь. Повторите флаг для нескольких plugins: `--plugin-dir A --plugin-dir B.zip` | `claude --plugin-dir ./my-plugin` |

105| `--plugin-url` | Получить plugin архив `.zip` из URL только для этого сеанса. Повторите флаг для нескольких plugins или передайте разделенные пробелом URL в одном значении в кавычках | `claude --plugin-url https://example.com/plugin.zip` |107| `--plugin-url` | Получить plugin архив `.zip` из URL только для этого сеанса. Повторите флаг для нескольких plugins или передайте разделенные пробелом URL в одном значении в кавычках | `claude --plugin-url https://example.com/plugin.zip` |

106| `--print`, `-p` | Вывести ответ без интерактивного режима (см. [документацию Agent SDK](/ru/agent-sdk/overview) для деталей программного использования) | `claude -p "query"` |108| `--print`, `-p` | Вывести ответ без интерактивного режима (см. [документацию Agent SDK](/ru/agent-sdk/overview) для деталей программного использования) | `claude -p "query"` |

commands.md +9 −8

Details

10 10 

11Введите `/` для просмотра всех доступных вам команд или введите `/` с последующими буквами для фильтрации.11Введите `/` для просмотра всех доступных вам команд или введите `/` с последующими буквами для фильтрации.

12 12 

13Команда распознается только в начале вашего сообщения. Текст, который следует за названием команды, передается ей в качестве аргументов.13Команда распознается только в начале вашего сообщения. Текст, который следует за названием команды, передается ей в качестве аргументов. {/* min-version: 2.1.199 */}Начиная с версии 2.1.199, [skills](/ru/skills#pass-arguments-to-skills) являются исключением: вызов skill, за которым следуют другие skills, такие как `/skill-a /skill-b do XYZ`, загружает каждый skill, указанный в начале, и передает завершающий текст каждому в качестве аргументов. Можно объединить до шести skills.

14 14 

15<h2 id="commands-across-a-typical-workflow">15<h2 id="commands-across-a-typical-workflow">

16 Команды в типичном рабочем процессе16 Команды в типичном рабочем процессе


18 18 

19Большинство команд полезны в определенной точке сеанса, от настройки проекта до отправки изменения.19Большинство команд полезны в определенной точке сеанса, от настройки проекта до отправки изменения.

20 20 

21**Первый сеанс в репозитории.** Запустите `/init` для создания стартового `CLAUDE.md`, затем `/memory` для его уточнения. Используйте `/mcp` и `/agents` для настройки любых серверов или subagents, которые нужны проекту, и `/permissions` для установки правил одобрения, которые вы хотите.21**Первый сеанс в репозитории.** Запустите `/init` для создания стартового `CLAUDE.md`, затем `/memory` для его уточнения. Используйте `/mcp` для настройки любых серверов, которые нужны проекту, попросите Claude создать любых [subagents](/ru/sub-agents), которые вам нужны, и запустите `/permissions` для установки правил одобрения.

22 22 

23**Во время задачи.** `/plan` переключает в режим плана перед крупным изменением. `/model` и `/effort` регулируют, сколько рассуждений вы тратите. Когда беседа становится длинной, `/context` показывает, куда идет окно, и `/compact` сжимает его; используйте `/btw` для быстрого замечания, которое не должно раздувать историю.23**Во время задачи.** `/plan` переключает в режим плана перед крупным изменением. `/model` и `/effort` регулируют, какую модель вы используете и сколько рассуждений она применяет. Когда беседа становится длинной, `/context` показывает, что заполняет окно, и `/compact` сжимает его для освобождения места. Используйте `/btw` для быстрого замечания, которое не должно добавляться в историю беседы.

24 24 

25**Параллельное выполнение работы.** `/agents` открывает менеджер для [subagents](/ru/sub-agents), которым Claude может делегировать побочные задачи, и `/tasks` выводит список того, что выполняется в фоне текущего сеанса. `/background` отделяет весь сеанс, чтобы он продолжал работать как [фоновый агент](/ru/agent-view), и освобождает ваш терминал. Для крупного изменения, охватывающего всю кодовую базу, `/batch` разбивает его на независимые единицы и запускает каждую в своем собственном [worktree](/ru/worktrees). Смотрите [Запуск агентов параллельно](/ru/agents), чтобы понять, как эти подходы связаны между собой.25**Параллельное выполнение работы.** Claude делегирует побочные задачи [subagents](/ru/sub-agents), и `/tasks` выводит список того, что выполняется в фоне текущего сеанса. `/background` отделяет весь сеанс, чтобы он продолжал работать как [фоновый агент](/ru/agent-view), и освобождает ваш терминал. Для крупного изменения, охватывающего всю кодовую базу, `/batch` разбивает его на независимые единицы и запускает каждую в своем собственном [worktree](/ru/worktrees). Смотрите [Запуск агентов параллельно](/ru/agents), чтобы понять, как эти подходы связаны между собой.

26 26 

27**Перед отправкой.** `/diff` показывает, что изменилось, `/code-review` проверяет diff на наличие ошибок корректности и очистки и может применить результаты с помощью `--fix`, `/review` запускает ту же проверку только для чтения на GitHub pull request, а `/security-review` дает более глубокий проход только для чтения. `/code-review ultra` запускает многоагентный обзор в облаке.27**Перед отправкой.** `/diff` показывает, что изменилось, `/code-review` проверяет diff на наличие ошибок корректности и очистки и может применить результаты с помощью `--fix`, `/review` запускает ту же проверку только для чтения на GitHub pull request, а `/security-review` дает более глубокий проход только для чтения. `/code-review ultra` запускает многоагентный обзор в облаке.

28 28 


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

52| `/add-dir <path>` | Добавить рабочий каталог для доступа к файлам во время текущего сеанса. Большинство конфигурации `.claude/` [не обнаруживается](/ru/permissions#additional-directories-grant-file-access-not-configuration) из добавленного каталога. Вы можете позже возобновить сеанс из добавленного каталога с помощью `--continue` или `--resume` |52| `/add-dir <path>` | Добавить рабочий каталог для доступа к файлам во время текущего сеанса. Большинство конфигурации `.claude/` [не обнаруживается](/ru/permissions#additional-directories-grant-file-access-not-configuration) из добавленного каталога. Вы можете позже возобновить сеанс из добавленного каталога с помощью `--continue` или `--resume` |

53| `/advisor [model\|off]` | {/* min-version: 2.1.98 */}Включить или отключить [инструмент advisor](/ru/advisor), который консультирует вторую модель для получения рекомендаций в ключевые моменты во время задачи. Принимает `opus`, `sonnet`, `fable` ({/* min-version: 2.1.170 */}v2.1.170+) или полный ID модели. Без аргумента открывает выбор. Требует Claude Code v2.1.98 или позже |53| `/advisor [model\|off]` | {/* min-version: 2.1.98 */}Включить или отключить [инструмент advisor](/ru/advisor), который консультирует вторую модель для получения рекомендаций в ключевые моменты во время задачи. Принимает `opus`, `sonnet`, `fable` ({/* min-version: 2.1.170 */}v2.1.170+) или полный ID модели. Без аргумента открывает выбор. Требует Claude Code v2.1.98 или позже |

54| `/agents` | Управлять конфигурациями [agent](/ru/sub-agents) |54| `/agents` | {/* min-version: 2.1.198 */}Начиная с v2.1.198, запуск `/agents` выводит напоминание попросить Claude создать или управлять [подагентами](/ru/sub-agents) или отредактировать `.claude/agents/` или `~/.claude/agents/` напрямую. {/* max-version: 2.1.197 */}На v2.1.197 и более ранних версиях открывает интерактивный интерфейс для создания и управления конфигурациями подагентов |

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

56| `/background [prompt]` | Отсоединить текущий сеанс для запуска в качестве [фонового агента](/ru/agent-view) и освободить этот терминал. Передайте подсказку для отправки еще одной инструкции перед отсоединением. Отслеживайте сеанс с помощью `claude agents`. Псевдоним: `/bg` |56| `/background [prompt]` | Отсоединить текущий сеанс для запуска в качестве [фонового агента](/ru/agent-view) и освободить этот терминал. Передайте подсказку для отправки еще одной инструкции перед отсоединением. Отслеживайте сеанс с помощью `claude agents`. Псевдоним: `/bg` |

57| `/batch <instruction>` | **[Skill](/ru/skills#bundled-skills).** Организовать крупномасштабные изменения в кодовой базе параллельно. Исследует кодовую базу, разбивает работу на 5-30 независимых единиц и представляет план. После одобрения запускает одного [фонового subagent](/ru/sub-agents#run-subagents-in-foreground-or-background) на единицу в изолированном [git worktree](/ru/worktrees). Каждый subagent реализует свою единицу, запускает тесты и открывает pull request. Требует git репозиторий. Пример: `/batch migrate src/ from Solid to React` |57| `/batch <instruction>` | **[Skill](/ru/skills#bundled-skills).** Организовать крупномасштабные изменения в кодовой базе параллельно. Исследует кодовую базу, разбивает работу на 5-30 независимых единиц и представляет план. После одобрения запускает одного [фонового subagent](/ru/sub-agents#run-subagents-in-foreground-or-background) на единицу в изолированном [git worktree](/ru/worktrees). Каждый subagent реализует свою единицу, запускает тесты и открывает pull request. Требует git репозиторий. Пример: `/batch migrate src/ from Solid to React` |


68| `/context [all]` | Визуализировать текущее использование контекста в виде цветной сетки. Показывает предложения по оптимизации для инструментов, требующих много контекста, утечек памяти и предупреждений о емкости. В [полноэкранном режиме](/ru/fullscreen) разбивка по элементам свернута, чтобы сетка оставалась видимой. Передайте `all` для развертывания |68| `/context [all]` | Визуализировать текущее использование контекста в виде цветной сетки. Показывает предложения по оптимизации для инструментов, требующих много контекста, утечек памяти и предупреждений о емкости. В [полноэкранном режиме](/ru/fullscreen) разбивка по элементам свернута, чтобы сетка оставалась видимой. Передайте `all` для развертывания |

69| `/copy [N]` | Скопировать последний ответ ассистента в буфер обмена. Передайте число `N` для копирования N-го последнего ответа: `/copy 2` копирует второй с конца. Когда присутствуют блоки кода, показывает интерактивный выбор для выбора отдельных блоков или полного ответа. Нажмите `w` в выборщике для записи выделения в файл вместо буфера обмена, что полезно при работе через SSH |69| `/copy [N]` | Скопировать последний ответ ассистента в буфер обмена. Передайте число `N` для копирования N-го последнего ответа: `/copy 2` копирует второй с конца. Когда присутствуют блоки кода, показывает интерактивный выбор для выбора отдельных блоков или полного ответа. Нажмите `w` в выборщике для записи выделения в файл вместо буфера обмена, что полезно при работе через SSH |

70| `/cost` | Псевдоним для `/usage` |70| `/cost` | Псевдоним для `/usage` |

71| `/dataviz [request]` | **[Skill](/ru/skills#bundled-skills).** Рекомендации по дизайну для диаграмм, графиков и панелей управления. Claude выбирает форму диаграммы для данных, назначает цвет по роли, проверяет палитру на безопасность для дальтоников и контрастность с помощью встроенного скрипта и применяет правила отметок, взаимодействия и доступности. Использует нейтральную по отношению к бренду палитру-заполнитель, которую вы заменяете своей собственной. {/* min-version: 2.1.198 */}Требует Claude Code v2.1.198 или позже |

71| `/debug [description]` | **[Skill](/ru/skills#bundled-skills).** Включить отладочное логирование для текущего сеанса и устранить проблемы путем чтения журнала отладки сеанса. Отладочное логирование отключено по умолчанию, если вы не запустили с `claude --debug`, поэтому запуск `/debug` в середине сеанса начинает захватывать логи с этого момента. Опционально опишите проблему, чтобы сосредоточить анализ |72| `/debug [description]` | **[Skill](/ru/skills#bundled-skills).** Включить отладочное логирование для текущего сеанса и устранить проблемы путем чтения журнала отладки сеанса. Отладочное логирование отключено по умолчанию, если вы не запустили с `claude --debug`, поэтому запуск `/debug` в середине сеанса начинает захватывать логи с этого момента. Опционально опишите проблему, чтобы сосредоточить анализ |

72| `/deep-research <question>` | **[Workflow](/ru/workflows#bundled-workflows).** Распределить веб-поиски по вопросу, получить и перекрестно проверить источники и синтезировать цитируемый отчет |73| `/deep-research <question>` | **[Workflow](/ru/workflows#bundled-workflows).** Распределить веб-поиски по вопросу, получить и перекрестно проверить источники и синтезировать цитируемый отчет |

73| `/design-login` | Авторизовать доступ к системе дизайна для `/design-sync` с вашей учетной записью claude.ai |74| `/design-login` | Авторизовать доступ к системе дизайна для `/design-sync` с вашей учетной записью claude.ai |

74| `/design-sync [hint]` | **[Skill](/ru/skills#bundled-skills).** Преобразовать систему дизайна React вашего репозитория и загрузить ее в [Claude Design](https://claude.ai/design), чтобы создаваемые ею дизайны использовали ваши реальные компоненты. Опционально назовите систему дизайна, например `/design-sync Acme DS`. Первоначальная синхронизация проверяет каждый компонент и может занять несколько часов на большом репозитории. Доступно на Anthropic API; на Amazon Bedrock, платформе Google Cloud Agent Platform и Microsoft Foundry базовый инструмент не может достичь claude.ai, поэтому команда недоступна |75| `/design-sync [hint]` | **[Skill](/ru/skills#bundled-skills).** Преобразовать систему дизайна React вашего репозитория и загрузить ее в [Claude Design](https://claude.ai/design), чтобы создаваемые ею дизайны использовали ваши реальные компоненты. Опционально назовите систему дизайна, например `/design-sync Acme DS`. Первоначальная синхронизация проверяет каждый компонент и может занять несколько часов на большом репозитории. Доступно на Anthropic API; на Amazon Bedrock, платформе Google Cloud Agent Platform и Microsoft Foundry базовый инструмент не может достичь claude.ai, поэтому команда недоступна |

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

76| `/diff` | Открыть интерактивное средство просмотра различий, показывающее незафиксированные изменения и различия для каждого хода. Используйте стрелки влево/вправо для переключения между текущим git diff и отдельными ходами Claude, а вверх/вниз для просмотра файлов |77| `/diff` | Открыть интерактивное средство просмотра различий, показывающее незафиксированные изменения и различия для каждого хода. Используйте стрелки влево/вправо для переключения между текущим git diff и отдельными ходами Claude, а вверх/вниз для просмотра файлов. {/* min-version: 2.1.198 */}Начиная с v2.1.198, открытое средство просмотра также автоматически обновляется при изменении состояния git репозитория вне сеанса, например при переключении ветви или коммите в другом терминале |

77| `/doctor` | Диагностировать и проверить вашу установку и параметры Claude Code. Результаты отображаются со значками статуса. Нажмите `f`, чтобы Claude исправил любые сообщаемые проблемы |78| `/doctor` | Диагностировать и проверить вашу установку и параметры Claude Code. Результаты отображаются со значками статуса. Нажмите `f`, чтобы Claude исправил любые сообщаемые проблемы |

78| `/effort [level\|auto]` | Установить [уровень усилий](/ru/model-config#adjust-effort-level) модели. Принимает `low`, `medium`, `high`, `xhigh`, `max` или `ultracode`; доступные уровни зависят от модели, и `max` и `ultracode` применяются только к сеансу. `ultracode` — это параметр Claude Code, который объединяет `xhigh` reasoning с автоматической [workflow](/ru/workflows#let-claude-decide-with-ultracode) оркестрацией. `auto` сбрасывает значение по умолчанию модели. Без аргумента открывает интерактивный ползунок; используйте стрелки влево и вправо для выбора уровня и `Enter` для применения. Вступает в силу немедленно без ожидания завершения текущего ответа |79| `/effort [level\|auto]` | Установить [уровень усилий](/ru/model-config#adjust-effort-level) модели. Принимает `low`, `medium`, `high`, `xhigh`, `max` или `ultracode`; доступные уровни зависят от модели, и `max` и `ultracode` применяются только к сеансу. `ultracode` — это параметр Claude Code, который объединяет `xhigh` reasoning с автоматической [workflow](/ru/workflows#let-claude-decide-with-ultracode) оркестрацией. `auto` сбрасывает значение по умолчанию модели. Без аргумента открывает интерактивный ползунок; используйте стрелки влево и вправо для выбора уровня и `Enter` для применения. Вступает в силу немедленно без ожидания завершения текущего ответа |

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


81| `/fast [on\|off]` | Переключить [быстрый режим](/ru/fast-mode) включен или выключен |82| `/fast [on\|off]` | Переключить [быстрый режим](/ru/fast-mode) включен или выключен |

82| `/feedback [report]` | Отправить отзыв, сообщить об ошибке или поделиться вашей беседой. Псевдонимы: `/bug`, `/share` |83| `/feedback [report]` | Отправить отзыв, сообщить об ошибке или поделиться вашей беседой. Псевдонимы: `/bug`, `/share` |

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

84| `/focus` | Переключить представление фокуса, которое показывает только ваше последнее приглашение, однострочную сводку вызова инструмента с редактированием diffstats и финальный ответ. Выбор сохраняется между сеансами; установите [`viewMode`](/ru/settings#available-settings) в параметрах для переопределения. Доступно только в [полноэкранном рендеринге](/ru/fullscreen) |85| `/focus` | Переключить представление фокуса, которое показывает только ваше последнее приглашение, однострочную сводку вызова инструмента с редактированием diffstats и финальный ответ. {/* min-version: 2.1.198 */}Начиная с v2.1.198, сводка вызова инструмента также подсчитывает запущенные в ходе подагенты и сворачивает завершенные уведомления фоновых задач в один счет. Выбор сохраняется между сеансами; установите [`viewMode`](/ru/settings#available-settings) в параметрах для переопределения. Доступно только в [полноэкранном рендеринге](/ru/fullscreen) |

85| `/fork <directive>` | {/* min-version: 2.1.161 */}Запустить [разветвленного subagent](/ru/sub-agents#fork-the-current-conversation): фонового subagent, который наследует полную беседу и работает над директивой, пока вы продолжаете. Его результат возвращается в вашу беседу, когда он завершится. Чтобы переключиться в копию беседы самостоятельно, используйте `/branch`. До v2.1.161, `/fork` является псевдонимом для `/branch` |86| `/fork <directive>` | {/* min-version: 2.1.161 */}Запустить [разветвленного subagent](/ru/sub-agents#fork-the-current-conversation): фонового subagent, который наследует полную беседу и работает над директивой, пока вы продолжаете. Его результат возвращается в вашу беседу, когда он завершится. Чтобы переключиться в копию беседы самостоятельно, используйте `/branch`. До v2.1.161, `/fork` является псевдонимом для `/branch` |

86| `/goal [condition\|clear]` | Установить [цель](/ru/goal): Claude продолжает работать между ходами до выполнения условия. Без аргумента показывает текущую или последнюю достигнутую цель. `clear`, `stop`, `off`, `reset`, `none` или `cancel` удаляет активную цель раньше |87| `/goal [condition\|clear]` | Установить [цель](/ru/goal): Claude продолжает работать между ходами до выполнения условия. Без аргумента показывает текущую или последнюю достигнутую цель. `clear`, `stop`, `off`, `reset`, `none` или `cancel` удаляет активную цель раньше |

87| `/heapdump` | Записать снимок кучи JavaScript и разбивку памяти в `~/Desktop`, или в домашний каталог на Linux без папки Desktop, для диагностики высокого использования памяти. См. [устранение неполадок](/ru/troubleshooting#high-cpu-or-memory-usage) |88| `/heapdump` | Записать снимок кучи JavaScript и разбивку памяти в `~/Desktop`, или в домашний каталог на Linux без папки Desktop, для диагностики высокого использования памяти. См. [устранение неполадок](/ru/troubleshooting#high-cpu-or-memory-usage) |


127| `/setup-bedrock` | Настроить аутентификацию [Amazon Bedrock](/ru/amazon-bedrock), регион и привязки моделей через интерактивный мастер. Видна только когда установлено `CLAUDE_CODE_USE_BEDROCK=1`. Пользователи Bedrock в первый раз также могут получить доступ к этому мастеру с экрана входа |128| `/setup-bedrock` | Настроить аутентификацию [Amazon Bedrock](/ru/amazon-bedrock), регион и привязки моделей через интерактивный мастер. Видна только когда установлено `CLAUDE_CODE_USE_BEDROCK=1`. Пользователи Bedrock в первый раз также могут получить доступ к этому мастеру с экрана входа |

128| `/setup-vertex` | Настроить аутентификацию [Google Vertex AI](/ru/google-vertex-ai), проект, регион и привязки моделей через интерактивный мастер. Видна только когда установлено `CLAUDE_CODE_USE_VERTEX=1`. Пользователи Vertex AI в первый раз также могут получить доступ к этому мастеру с экрана входа |129| `/setup-vertex` | Настроить аутентификацию [Google Vertex AI](/ru/google-vertex-ai), проект, регион и привязки моделей через интерактивный мастер. Видна только когда установлено `CLAUDE_CODE_USE_VERTEX=1`. Пользователи Vertex AI в первый раз также могут получить доступ к этому мастеру с экрана входа |

129| `/simplify [target]` | {/* min-version: 2.1.154 */}**[Skill](/ru/skills#bundled-skills).** Просмотреть измененный код на предмет возможностей очистки и применить исправления. Четыре агента просмотра [agents](/ru/sub-agents) работают параллельно, охватывая переиспользование существующих помощников, упрощение, эффективность и находится ли изменение на правильном уровне абстракции. Начиная с v2.1.154, просмотр не ищет ошибки корректности. Используйте `/code-review` для поиска ошибок. В более ранних версиях `/simplify` эквивалентен `/code-review --fix`. Передайте путь или ссылку PR для просмотра конкретной цели |130| `/simplify [target]` | {/* min-version: 2.1.154 */}**[Skill](/ru/skills#bundled-skills).** Просмотреть измененный код на предмет возможностей очистки и применить исправления. Четыре агента просмотра [agents](/ru/sub-agents) работают параллельно, охватывая переиспользование существующих помощников, упрощение, эффективность и находится ли изменение на правильном уровне абстракции. Начиная с v2.1.154, просмотр не ищет ошибки корректности. Используйте `/code-review` для поиска ошибок. В более ранних версиях `/simplify` эквивалентен `/code-review --fix`. Передайте путь или ссылку PR для просмотра конкретной цели |

130| `/skills` | Список доступных [skills](/ru/skills). Нажмите `t` для сортировки по количеству токенов. Нажмите `Space` для [скрытия skill от Claude или меню `/`](/ru/skills#override-skill-visibility-from-settings), затем `Enter` для сохранения |131| `/skills` | Список доступных [skills](/ru/skills). {/* min-version: 2.1.121 */}Начиная с v2.1.121, введите для фильтрации списка по имени. Нажмите `t` для сортировки по количеству токенов. Нажмите `Space` для [скрытия skill от Claude или меню `/`](/ru/skills#override-skill-visibility-from-settings), затем `Enter` для сохранения |

131| `/stats` | Псевдоним для `/usage`. Открывается на вкладке Stats |132| `/stats` | Псевдоним для `/usage`. Открывается на вкладке Stats |

132| `/status` | Открыть интерфейс Параметры (вкладка Статус), показывающий версию, модель, учетную запись и подключение. Работает во время ответа Claude без ожидания завершения текущего ответа |133| `/status` | Открыть интерфейс Параметры (вкладка Статус), показывающий версию, модель, учетную запись и подключение. Работает во время ответа Claude без ожидания завершения текущего ответа |

133| `/statusline` | Настроить [строку статуса](/ru/statusline) Claude Code. Опишите, что вы хотите, или запустите без аргументов для автоматической настройки из приглашения вашей оболочки |134| `/statusline` | Настроить [строку статуса](/ru/statusline) Claude Code. Опишите, что вы хотите, или запустите без аргументов для автоматической настройки из приглашения вашей оболочки |

Details

1587 Что сохраняется при компактировании1587 Что сохраняется при компактировании

1588</h2>1588</h2>

1589 1589 

1590Когда длительный сеанс компактируется, Claude Code суммирует историю разговора, чтобы она поместилась в контекстное окно. Что происходит с вашими инструкциями, зависит от того, как они были загружены:1590Когда длительный сеанс компактируется, Claude Code суммирует историю разговора, чтобы она поместилась в контекстное окно. {/* min-version: 2.1.198 */}Начиная с версии 2.1.198, запрос суммирования наследует конфигурацию [extended thinking](/ru/model-config#extended-thinking) вашего сеанса, поэтому он рассуждает с включённым thinking, когда в вашем сеансе он включён, и остаётся отключённым в противном случае. Thinking влияет только на то, как создаётся сводка; параметры вашего сеанса остаются неизменными после этого. Что происходит с вашими инструкциями, зависит от того, как они были загружены:

1591 1591 

1592| Механизм | После компактирования |1592| Механизм | После компактирования |

1593| :------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------- |1593| :------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------- |

costs.md +3 −3

Details

107* **Очищайте между задачами**: Используйте `/clear` для начала с чистого листа при переходе на несвязанную работу. Устаревший контекст тратит токены на каждое последующее сообщение. Используйте `/rename` перед очисткой, чтобы вы могли легко найти сессию позже, затем `/resume` для возврата к ней.107* **Очищайте между задачами**: Используйте `/clear` для начала с чистого листа при переходе на несвязанную работу. Устаревший контекст тратит токены на каждое последующее сообщение. Используйте `/rename` перед очисткой, чтобы вы могли легко найти сессию позже, затем `/resume` для возврата к ней.

108* **Добавляйте пользовательские инструкции компактирования**: `/compact Focus on code samples and API usage` говорит Claude, что сохранять во время суммирования.108* **Добавляйте пользовательские инструкции компактирования**: `/compact Focus on code samples and API usage` говорит Claude, что сохранять во время суммирования.

109 109 

110Вы также можете настроить поведение компактирования в вашем CLAUDE.md:110Вы также можете настроить поведение компактирования в вашем CLAUDE.md файле в корне вашего проекта:

111 111 

112```markdown theme={null}112```markdown theme={null}

113# Compact instructions113# Compact instructions


170 </Tab>170 </Tab>

171 171 

172 <Tab title="filter-test-output.sh">172 <Tab title="filter-test-output.sh">

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

174 174 

175 ```bash theme={null}175 ```bash theme={null}

176 #!/bin/bash176 #!/bin/bash


198 Отрегулируйте расширенное мышление198 Отрегулируйте расширенное мышление

199</h3>199</h3>

200 200 

201Расширенное мышление включено по умолчанию, потому что оно значительно улучшает производительность на сложных задачах планирования и рассуждения. Токены мышления выставляются как выходные токены, и бюджет по умолчанию может быть десятки тысяч токенов на запрос в зависимости от модели. Для более простых задач, где глубокое рассуждение не требуется, вы можете снизить затраты, понизив [уровень усилий](/ru/model-config#adjust-effort-level) с помощью `/effort` или в `/model`, отключив мышление в `/config`, или, на моделях с [фиксированным бюджетом мышления](/ru/model-config#adaptive-reasoning-and-fixed-thinking-budgets), понизив бюджет с помощью `MAX_THINKING_TOKENS=8000`. Модели адаптивного рассуждения игнорируют ненулевые бюджеты, поэтому используйте вместо этого уровни усилий. Отключение мышления недоступно на Fable 5, которая всегда использует расширенное мышление.201Расширенное мышление включено по умолчанию, потому что оно значительно улучшает производительность на сложных задачах планирования и рассуждения. Токены мышления выставляются как выходные токены, и бюджет по умолчанию может быть десятки тысяч токенов на запрос в зависимости от модели. Для более простых задач, где глубокое рассуждение не требуется, вы можете снизить затраты, понизив [уровень усилий](/ru/model-config#adjust-effort-level) с помощью `/effort` или в `/model`, отключив мышление в `/config`, или, на моделях с [фиксированным бюджетом мышления](/ru/model-config#adaptive-reasoning-and-fixed-thinking-budgets), понизив бюджет путём установки переменной окружения `MAX_THINKING_TOKENS` [environment variable](/ru/env-vars), например `MAX_THINKING_TOKENS=8000`. Модели адаптивного рассуждения игнорируют ненулевые бюджеты, поэтому используйте вместо этого уровни усилий. Отключение мышления недоступно на Fable 5, которая всегда использует расширенное мышление.

202 202 

203<h3 id="delegate-verbose-operations-to-subagents">203<h3 id="delegate-verbose-operations-to-subagents">

204 Делегируйте многословные операции subagents204 Делегируйте многословные операции subagents

Details

14 Посмотрите, что загрузилось в контекст14 Посмотрите, что загрузилось в контекст

15</h2>15</h2>

16 16 

17Команда `/context` показывает всё, что занимает контекстное окно для текущей сессии, разбитое по категориям: системный prompt, файлы памяти, skills, MCP tools и сообщения беседы. Запустите её в первую очередь, чтобы подтвердить, присутствуют ли ваши `CLAUDE.md`, правила или описания skills вообще.17Команда `/context` показывает всё, что занимает контекстное окно для текущей сессии, разбитое по категориям: системный prompt, файлы памяти, skills, пользовательские subagents с указанием источника, из которого каждый загружен, MCP tools и сообщения беседы. Запустите её в первую очередь, чтобы подтвердить, присутствуют ли ваши `CLAUDE.md`, правила или описания skills вообще.

18 18 

19Для деталей по конкретной категории используйте специализированную команду:19Для деталей по конкретной категории используйте специализированную команду:

20 20 


22| :--------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |22| :--------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

23| `/memory` | Какие файлы `CLAUDE.md` и rules загрузились, плюс записи auto-memory |23| `/memory` | Какие файлы `CLAUDE.md` и rules загрузились, плюс записи auto-memory |

24| `/skills` | Доступные skills из проекта, пользователя и источников плагинов |24| `/skills` | Доступные skills из проекта, пользователя и источников плагинов |

25| `/agents` | Настроенные subagents и их параметры |

26| `/hooks` | Активные конфигурации hooks |25| `/hooks` | Активные конфигурации hooks |

27| `/mcp` | Подключённые MCP серверы и их статус |26| `/mcp` | Подключённые MCP серверы и их статус |

28| `/permissions` | Разрешённые и запрещённые правила, которые в настоящее время действуют |27| `/permissions` | Разрешённые и запрещённые правила, которые в настоящее время действуют |

desktop.md +1 −1

Details

829* **Linux (бета)**: Computer Use ещё недоступна в приложении desktop Linux. См. [Claude Desktop на Linux](/ru/desktop-linux).829* **Linux (бета)**: Computer Use ещё недоступна в приложении desktop Linux. См. [Claude Desktop на Linux](/ru/desktop-linux).

830* **Встроенные предложения кода**: Desktop не предоставляет предложения в стиле автодополнения. Это работает через разговорные подсказки и явные изменения кода.830* **Встроенные предложения кода**: Desktop не предоставляет предложения в стиле автодополнения. Это работает через разговорные подсказки и явные изменения кода.

831* **Команды агентов**: параллельные сеансы Claude Code, которые обмениваются сообщениями друг с другом, доступны в [CLI](/ru/agent-teams), а не в Desktop. Для многоагентной работы внутри одного сеанса используйте [динамические рабочие процессы](/ru/workflows), которые работают в Desktop.831* **Команды агентов**: параллельные сеансы Claude Code, которые обмениваются сообщениями друг с другом, доступны в [CLI](/ru/agent-teams), а не в Desktop. Для многоагентной работы внутри одного сеанса используйте [динамические рабочие процессы](/ru/workflows), которые работают в Desktop.

832* **Команды диалога терминала**: встроенные команды, которые открывают интерактивную панель в терминале, такие как `/permissions`, `/config`, `/agents` и `/doctor`, недоступны на вкладке Code и отвечают сообщением `isn't available in this environment`. Отредактируйте [файлы параметров](/ru/settings) напрямую, чтобы управлять правилами разрешений и конфигурацией, или запустите команду из автономного CLI.832* **Команды диалога терминала**: встроенные команды, которые открывают интерактивную панель в терминале, такие как `/permissions`, `/config` и `/doctor`, недоступны на вкладке Code и отвечают сообщением `isn't available in this environment`. Отредактируйте [файлы параметров](/ru/settings) напрямую, чтобы управлять правилами разрешений и конфигурацией, или запустите команду из автономного CLI.

833 833 

834<h2 id="troubleshooting">834<h2 id="troubleshooting">

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

env-vars.md +8 −4

Details

145| `BASH_MAX_TIMEOUT_MS` | Максимальный тайм-аут, который модель может установить для долгоживущих команд bash (по умолчанию: 600000, или 10 минут) |145| `BASH_MAX_TIMEOUT_MS` | Максимальный тайм-аут, который модель может установить для долгоживущих команд bash (по умолчанию: 600000, или 10 минут) |

146| `CCR_FORCE_BUNDLE` | Установите на `1`, чтобы принудительно [`claude --remote`](/ru/claude-code-on-the-web#send-local-repositories-without-github) объединить и загрузить ваш локальный репозиторий, даже когда доступ GitHub доступен |146| `CCR_FORCE_BUNDLE` | Установите на `1`, чтобы принудительно [`claude --remote`](/ru/claude-code-on-the-web#send-local-repositories-without-github) объединить и загрузить ваш локальный репозиторий, даже когда доступ GitHub доступен |

147| `CLAUDECODE` | Установите на `1` в подпроцессах, которые порождает Claude Code (инструмент Bash и PowerShell, сессии tmux, команды [hook](/ru/hooks), команды [строки состояния](/ru/statusline), подпроцессы [MCP server](/ru/mcp) stdio). IDE extensions также устанавливают это в их встроенных терминалах. Используйте для обнаружения, когда скрипт выполняется внутри подпроцесса, порождённого Claude Code. Чтобы проверить, был ли текущий процесс порождён непосредственно вызовом инструмента или hook, а не внутри stdio MCP server, который запустил Claude Code, используйте вместо этого `CLAUDE_CODE_CHILD_SESSION` |147| `CLAUDECODE` | Установите на `1` в подпроцессах, которые порождает Claude Code (инструмент Bash и PowerShell, сессии tmux, команды [hook](/ru/hooks), команды [строки состояния](/ru/statusline), подпроцессы [MCP server](/ru/mcp) stdio). IDE extensions также устанавливают это в их встроенных терминалах. Используйте для обнаружения, когда скрипт выполняется внутри подпроцесса, порождённого Claude Code. Чтобы проверить, был ли текущий процесс порождён непосредственно вызовом инструмента или hook, а не внутри stdio MCP server, который запустил Claude Code, используйте вместо этого `CLAUDE_CODE_CHILD_SESSION` |

148| `CLAUDE_AFK_COUNTDOWN_MS` | {/* min-version: 2.1.198 */}Сколько миллисекунд перед автоматическим продолжением появляется обратный отсчёт на экране в диалоговом окне `AskUserQuestion` без ответа. По умолчанию `20000` (20 секунд). См. `CLAUDE_AFK_TIMEOUT_MS`. Требуется Claude Code v2.1.198 или более поздняя версия |

149| `CLAUDE_AFK_TIMEOUT_MS` | {/* min-version: 2.1.198 */}Сколько миллисекунд времени неактивности перед диалоговым окном [`AskUserQuestion`](/ru/tools-reference) без ответа автоматически продолжается без вас. По умолчанию `60000` (60 секунд). Чтобы сохранить вопросы открытыми, пока вас нет, установите большое значение, такое как `86400000` (24 часа). Установка `0` не отключает тайм-аут; она закрывает диалоговое окно немедленно. Требуется Claude Code v2.1.198 или более поздняя версия |

148| `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS` | Установите на `1`, чтобы отключить все встроенные типы [subagent](/ru/sub-agents), такие как Explore и Plan. Применяется только в неинтерактивном режиме (флаг `-p`). Полезно для пользователей SDK, которые хотят чистый лист |150| `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS` | Установите на `1`, чтобы отключить все встроенные типы [subagent](/ru/sub-agents), такие как Explore и Plan. Применяется только в неинтерактивном режиме (флаг `-p`). Полезно для пользователей SDK, которые хотят чистый лист |

149| `CLAUDE_AGENT_SDK_MCP_NO_PREFIX` | Установите на `1`, чтобы пропустить префикс `mcp__<server>__` на именах инструментов из MCP серверов, созданных SDK. Инструменты используют свои исходные имена. Только для использования SDK |151| `CLAUDE_AGENT_SDK_MCP_NO_PREFIX` | Установите на `1`, чтобы пропустить префикс `mcp__<server>__` на именах инструментов из MCP серверов, созданных SDK. Инструменты используют свои исходные имена. Только для использования SDK |

150| `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS` | Тайм-аут зависания в миллисекундах для фоновых subagents. По умолчанию `600000` (10 минут). Таймер сбрасывается при каждом событии потоковой передачи прогресса; если прогресс не поступает в течение окна, subagent прерывается и задача отмечается как неудачная, выводя любой частичный результат родителю |152| `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS` | Тайм-аут зависания в миллисекундах для фоновых subagents. По умолчанию `600000` (10 минут). Таймер сбрасывается при каждом событии потоковой передачи прогресса; если прогресс не поступает в течение окна, subagent прерывается и задача отмечается как неудачная, выводя любой частичный результат родителю |


162| `CLAUDE_CODE_ATTRIBUTION_HEADER` | Установите на `0`, чтобы опустить блок атрибуции (версия клиента и отпечаток приглашения) с начала системного приглашения. Отключение его улучшает коэффициент попадания кэша приглашений при маршрутизации через [шлюз LLM](/ru/llm-gateway). Кэширование Anthropic API не затронуто |164| `CLAUDE_CODE_ATTRIBUTION_HEADER` | Установите на `0`, чтобы опустить блок атрибуции (версия клиента и отпечаток приглашения) с начала системного приглашения. Отключение его улучшает коэффициент попадания кэша приглашений при маршрутизации через [шлюз LLM](/ru/llm-gateway). Кэширование Anthropic API не затронуто |

163| `CLAUDE_CODE_AUTO_COMPACT_WINDOW` | Установите ёмкость контекста в токенах, используемую для расчётов auto-compaction. По умолчанию используется контекстное окно модели: 200K для стандартных моделей или 1M для моделей с [расширенным контекстом](/ru/model-config#extended-context), кроме Sonnet 5, который имеет свой [порог по умолчанию](/ru/model-config#sonnet-5-context-window). Используйте меньшее значение, такое как `500000`, на модели 1M, чтобы рассматривать окно как 500K для целей сжатия. Значение ограничено фактическим контекстным окном модели. `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` применяется как процент от этого значения. Установка этой переменной отделяет порог сжатия от `used_percentage` в строке состояния, который всегда использует полное контекстное окно модели |165| `CLAUDE_CODE_AUTO_COMPACT_WINDOW` | Установите ёмкость контекста в токенах, используемую для расчётов auto-compaction. По умолчанию используется контекстное окно модели: 200K для стандартных моделей или 1M для моделей с [расширенным контекстом](/ru/model-config#extended-context), кроме Sonnet 5, который имеет свой [порог по умолчанию](/ru/model-config#sonnet-5-context-window). Используйте меньшее значение, такое как `500000`, на модели 1M, чтобы рассматривать окно как 500K для целей сжатия. Значение ограничено фактическим контекстным окном модели. `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` применяется как процент от этого значения. Установка этой переменной отделяет порог сжатия от `used_percentage` в строке состояния, который всегда использует полное контекстное окно модели |

164| `CLAUDE_CODE_AUTO_CONNECT_IDE` | Переопределить автоматическое [подключение IDE](/ru/vs-code). По умолчанию Claude Code подключается автоматически при запуске внутри встроенного терминала поддерживаемой IDE. Установите на `false`, чтобы предотвратить это. Установите на `true`, чтобы принудительно попытаться подключиться, когда автоматическое обнаружение не удаётся, например, когда tmux скрывает родительский терминал. Имеет приоритет над параметром [`autoConnectIde`](/ru/settings#global-config-settings) глобальной конфигурации |166| `CLAUDE_CODE_AUTO_CONNECT_IDE` | Переопределить автоматическое [подключение IDE](/ru/vs-code). По умолчанию Claude Code подключается автоматически при запуске внутри встроенного терминала поддерживаемой IDE. Установите на `false`, чтобы предотвратить это. Установите на `true`, чтобы принудительно попытаться подключиться, когда автоматическое обнаружение не удаётся, например, когда tmux скрывает родительский терминал. Имеет приоритет над параметром [`autoConnectIde`](/ru/settings#global-config-settings) глобальной конфигурации |

167| `CLAUDE_CODE_BRIDGE_SESSION_ID` | {/* min-version: 2.1.199 */}Установите автоматически в подпроцессах инструмента Bash и [команды hook](/ru/hooks) во время активного соединения [Remote Control](/ru/remote-control), и удалено при завершении соединения. Значение — это ID сессии в форме `session_`, тот же идентификатор, который появляется в URL сессии `claude.ai/code`, поэтому скрипт может ссылаться обратно на сессию, которая его запустила. Требуется Claude Code v2.1.199 или более поздняя версия. В [облачных сессиях](/ru/claude-code-on-the-web) прочитайте вместо этого `CLAUDE_CODE_REMOTE_SESSION_ID` |

165| `CLAUDE_CODE_CERT_STORE` | Разделённый запятыми список источников сертификатов CA для TLS соединений. `bundled` — это набор Mozilla CA, поставляемый с Claude Code. `system` — это хранилище доверия операционной системы, доступное только для чтения на средах выполнения с `tls.getCACertificates`: собственный бинарный файл или Node 22.15 или более поздняя версия для установок npm. См. [Хранилище сертификатов CA](/ru/network-config#ca-certificate-store). По умолчанию `bundled,system` |168| `CLAUDE_CODE_CERT_STORE` | Разделённый запятыми список источников сертификатов CA для TLS соединений. `bundled` — это набор Mozilla CA, поставляемый с Claude Code. `system` — это хранилище доверия операционной системы, доступное только для чтения на средах выполнения с `tls.getCACertificates`: собственный бинарный файл или Node 22.15 или более поздняя версия для установок npm. См. [Хранилище сертификатов CA](/ru/network-config#ca-certificate-store). По умолчанию `bundled,system` |

166| `CLAUDE_CODE_CHILD_SESSION` | {/* min-version: 2.1.172 */}Установите на `1` в подпроцессах, которые Claude Code порождает через инструменты Bash, PowerShell и Monitor, команды [hook](/ru/hooks) и команды [строки состояния](/ru/statusline). Не установлено для подпроцессов stdio [MCP server](/ru/mcp), которые долгоживущие и пережидают сессию, которая их порождала. В отличие от `CLAUDECODE`, это устанавливается только путём собственного порождения Claude Code, а не IDE extensions, поэтому надёжно различает вложенную сессию от верхнего уровня `claude`, запущенного в встроенном терминале IDE. Вложенный интерактивный `claude` TUI, запущенный таким образом, автоматически исключается из `--resume`, `--continue`, истории стрелок вверх и списка `claude agents`. Сессии `claude -p` без интерактивности по-прежнему сохраняются. Установите `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE=1`, чтобы переопределить это исключение. Требуется Claude Code v2.1.172 или более поздняя версия |169| `CLAUDE_CODE_CHILD_SESSION` | {/* min-version: 2.1.172 */}Установите на `1` в подпроцессах, которые Claude Code порождает через инструменты Bash, PowerShell и Monitor, команды [hook](/ru/hooks) и команды [строки состояния](/ru/statusline). Не установлено для подпроцессов stdio [MCP server](/ru/mcp), которые долгоживущие и пережидают сессию, которая их порождала. В отличие от `CLAUDECODE`, это устанавливается только путём собственного порождения Claude Code, а не IDE extensions, поэтому надёжно различает вложенную сессию от верхнего уровня `claude`, запущенного в встроенном терминале IDE. Вложенный интерактивный `claude` TUI, запущенный таким образом, автоматически исключается из `--resume`, `--continue`, истории стрелок вверх и списка `claude agents`. Сессии `claude -p` без интерактивности по-прежнему сохраняются. Установите `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE=1`, чтобы переопределить это исключение. Требуется Claude Code v2.1.172 или более поздняя версия |

167| `CLAUDE_CODE_CLIENT_CERT` | Путь к файлу сертификата клиента для аутентификации mTLS |170| `CLAUDE_CODE_CLIENT_CERT` | Путь к файлу сертификата клиента для аутентификации mTLS |


172| `CLAUDE_CODE_DEBUG_LOG_LEVEL` | Минимальный уровень логирования, записываемый в файл журнала отладки. Значения: `verbose`, `debug` (по умолчанию), `info`, `warn`, `error`. Установите на `verbose`, чтобы включить высокообъёмную диагностику, такую как полный вывод команды строки состояния, или повысьте до `error`, чтобы снизить шум |175| `CLAUDE_CODE_DEBUG_LOG_LEVEL` | Минимальный уровень логирования, записываемый в файл журнала отладки. Значения: `verbose`, `debug` (по умолчанию), `info`, `warn`, `error`. Установите на `verbose`, чтобы включить высокообъёмную диагностику, такую как полный вывод команды строки состояния, или повысьте до `error`, чтобы снизить шум |

173| `CLAUDE_CODE_DISABLE_1M_CONTEXT` | Установите на `1`, чтобы отключить поддержку [контекстного окна 1M](/ru/model-config#extended-context). При установке варианты модели 1M недоступны в средстве выбора модели, и сессии [Sonnet 5](/ru/model-config#sonnet-5-context-window) рассматриваются как имеющие окно 200K. Полезно для корпоративных сред с требованиями соответствия |176| `CLAUDE_CODE_DISABLE_1M_CONTEXT` | Установите на `1`, чтобы отключить поддержку [контекстного окна 1M](/ru/model-config#extended-context). При установке варианты модели 1M недоступны в средстве выбора модели, и сессии [Sonnet 5](/ru/model-config#sonnet-5-context-window) рассматриваются как имеющие окно 200K. Полезно для корпоративных сред с требованиями соответствия |

174| `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` | Установите на `1`, чтобы отключить [адаптивное рассуждение](/ru/model-config#adjust-effort-level) на Opus 4.6 и Sonnet 4.6 и вернуться к фиксированному бюджету мышления, контролируемому `MAX_THINKING_TOKENS`. {/* min-version: 2.1.111 */}Начиная с v2.1.111, не влияет на Fable 5, Sonnet 5 или на Opus 4.7 и более поздние версии, которые всегда используют адаптивное рассуждение |177| `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` | Установите на `1`, чтобы отключить [адаптивное рассуждение](/ru/model-config#adjust-effort-level) на Opus 4.6 и Sonnet 4.6 и вернуться к фиксированному бюджету мышления, контролируемому `MAX_THINKING_TOKENS`. {/* min-version: 2.1.111 */}Начиная с v2.1.111, не влияет на Fable 5, Sonnet 5 или на Opus 4.7 и более поздние версии, которые всегда используют адаптивное рассуждение |

175| `CLAUDE_CODE_DISABLE_ADVISOR_TOOL` | {/* min-version: 2.1.98 */}Установите на `1`, чтобы отключить [инструмент advisor](/ru/advisor). Команда `/advisor` и флаг `--advisor` становятся недоступными и любой настроенный `advisorModel` игнорируется. Требуется Claude Code v2.1.98 или более поздняя версия |178| `CLAUDE_CODE_DISABLE_ADVISOR_TOOL` | {/* min-version: 2.1.98 */}Установите на `1`, чтобы отключить [инструмент advisor](/ru/advisor). Команда `/advisor` становится недоступной, любой настроенный `advisorModel` игнорируется, и флаг `--advisor` принимается, но не имеет эффекта, поэтому существующие скрипты, которые его передают, продолжают работать без ошибок. Требуется Claude Code v2.1.98 или более поздняя версия |

176| `CLAUDE_CODE_DISABLE_AGENT_VIEW` | Установите на `1`, чтобы отключить [фоновых агентов и представление агентов](/ru/agent-view): `claude agents`, `--bg`, `/background` и супервизор по требованию. Эквивалент параметра [`disableAgentView`](/ru/settings#available-settings) |179| `CLAUDE_CODE_DISABLE_AGENT_VIEW` | Установите на `1`, чтобы отключить [фоновых агентов и представление агентов](/ru/agent-view): `claude agents`, `--bg`, `/background` и супервизор по требованию. Эквивалент параметра [`disableAgentView`](/ru/settings#available-settings) |

177| `CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN` | Установите на `1`, чтобы отключить [полноэкранный режим](/ru/fullscreen) и использовать классический рендерер основного экрана. Разговор остаётся в собственной прокрутке вашего терминала, поэтому `Cmd+f` и режим копирования tmux работают как обычно. Имеет приоритет над `CLAUDE_CODE_NO_FLICKER` и параметром [`tui`](/ru/settings#available-settings). Вы также можете переключаться с помощью `/tui default`. Не применяется к фоновым сессиям, открытым из [представления агента](/ru/agent-view), которые всегда используют полноэкранный режим |180| `CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN` | Установите на `1`, чтобы отключить [полноэкранный режим](/ru/fullscreen) и использовать классический рендерер основного экрана. Разговор остаётся в собственной прокрутке вашего терминала, поэтому `Cmd+f` и режим копирования tmux работают как обычно. Имеет приоритет над `CLAUDE_CODE_NO_FLICKER` и параметром [`tui`](/ru/settings#available-settings). Вы также можете переключаться с помощью `/tui default`. Не применяется к фоновым сессиям, открытым из [представления агента](/ru/agent-view), которые всегда используют полноэкранный режим |

178| `CLAUDE_CODE_DISABLE_ARTIFACT` | Установите на `1`, чтобы отключить инструмент [Artifact](/ru/artifacts), который публикует вывод сессии как приватную веб-страницу на claude.ai. Эквивалент параметра [`disableArtifact`](/ru/settings#available-settings) |181| `CLAUDE_CODE_DISABLE_ARTIFACT` | Установите на `1`, чтобы отключить инструмент [Artifact](/ru/artifacts), который публикует вывод сессии как приватную веб-страницу на claude.ai. Эквивалент параметра [`disableArtifact`](/ru/settings#available-settings) |

179| `CLAUDE_CODE_DISABLE_ATTACHMENTS` | Установите на `1`, чтобы отключить обработку вложений. Упоминания файлов с синтаксисом `@` отправляются как простой текст вместо расширения в содержимое файла |182| `CLAUDE_CODE_DISABLE_ATTACHMENTS` | Установите на `1`, чтобы отключить обработку вложений. Упоминания файлов с синтаксисом `@` отправляются как простой текст вместо расширения в содержимое файла |

180| `CLAUDE_CODE_DISABLE_AUTO_MEMORY` | Установите на `1`, чтобы отключить [автоматическую память](/ru/memory#auto-memory). Установите на `0`, чтобы принудительно включить автоматическую память даже когда режим `--bare` или [`autoMemoryEnabled: false`](/ru/settings#available-settings) в противном случае отключили бы её. При отключении Claude не создаёт и не загружает файлы автоматической памяти |183| `CLAUDE_CODE_DISABLE_AUTO_MEMORY` | Установите на `1`, чтобы отключить [автоматическую память](/ru/memory#auto-memory). Установите на `0`, чтобы принудительно включить автоматическую память даже когда режим `--bare` или [`autoMemoryEnabled: false`](/ru/settings#available-settings) в противном случае отключили бы её. При отключении Claude не создаёт и не загружает файлы автоматической памяти |

181| `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` | Установите на `1`, чтобы отключить всю функциональность фоновых задач, включая параметр `run_in_background` на инструментах Bash и subagent, автоматическое фоновое выполнение и сочетание клавиш Ctrl+B |184| `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` | Установите на `1`, чтобы отключить всю функциональность фоновых задач, включая параметр `run_in_background` на инструментах Bash и subagent, автоматическое фоновое выполнение и сочетание клавиш Ctrl+B |

182| `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF` | {/* min-version: 2.1.196 */}Установите на `1`, чтобы остановить выполняющиеся фоновые команды оболочки и динамические workflows [фоновой сессии](/ru/agent-view) при остановке, перезагрузке или обновлении процесса этой сессии [супервизором](/ru/agent-view#the-supervisor-process), вместо передачи их следующему процессу сессии. Влияет только на эту передачу: фоновое выполнение сессии с помощью `←` или [`/background`](/ru/agent-view#from-inside-a-session) по-прежнему переносит выполняющуюся работу, и `CLAUDE_DISABLE_ADOPT` отключает оба. Требуется Claude Code v2.1.196 или более поздняя версия |185| `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF` | {/* min-version: 2.1.196 */}Установите на `1`, чтобы остановить выполняющиеся фоновые команды оболочки, динамические workflows {/* min-version: 2.1.198 */}и, начиная с v2.1.198, фоновые subagents [фоновой сессии](/ru/agent-view) при остановке, перезагрузке или обновлении процесса этой сессии [супервизором](/ru/agent-view#the-supervisor-process), вместо передачи их следующему процессу сессии. Влияет только на эту передачу: фоновое выполнение сессии с помощью `←` или [`/background`](/ru/agent-view#from-inside-a-session) по-прежнему переносит выполняющуюся работу, и `CLAUDE_DISABLE_ADOPT` отключает оба. Требуется Claude Code v2.1.196 или более поздняя версия |

183| `CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP` | {/* min-version: 2.1.193 */}Установите на `1`, чтобы остановить Claude Code от завершения [фоновых команд оболочки](/ru/interactive-mode#background-bash-commands) при сообщении операционной системой о нехватке памяти. По умолчанию на macOS и Linux Claude Code завершает фоновую оболочку, запущенную в основной сессии, при сигнале нехватки памяти, как только сессия была неактивна в течение 30 минут и ни один ход или subagent не выполняется. Windows не имеет сигнала нехватки памяти, поэтому эта переменная не влияет там. Требуется Claude Code v2.1.193 или более поздняя версия |186| `CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP` | {/* min-version: 2.1.193 */}Установите на `1`, чтобы остановить Claude Code от завершения [фоновых команд оболочки](/ru/interactive-mode#background-bash-commands) при сообщении операционной системой о нехватке памяти. По умолчанию на macOS и Linux Claude Code завершает фоновую оболочку, запущенную в основной сессии, при сигнале нехватки памяти, как только сессия была неактивна в течение 30 минут и ни один ход или subagent не выполняется. Windows не имеет сигнала нехватки памяти, поэтому эта переменная не влияет там. Требуется Claude Code v2.1.193 или более поздняя версия |

184| `CLAUDE_CODE_DISABLE_BUNDLED_SKILLS` | Установите на `1`, чтобы отключить [skills](/ru/skills) и workflows, которые поставляются с Claude Code: встроенные skills и workflows полностью удаляются, в то время как встроенные slash commands, такие как `/init`, остаются доступными для ввода, но скрыты от модели. Skills из plugins, `.claude/skills/` и `.claude/commands/` не затронуты. Эквивалент параметра [`disableBundledSkills`](/ru/settings#available-settings); `0` не переопределяет его |187| `CLAUDE_CODE_DISABLE_BUNDLED_SKILLS` | Установите на `1`, чтобы отключить [skills](/ru/skills) и workflows, которые поставляются с Claude Code: встроенные skills и workflows полностью удаляются, в то время как встроенные slash commands, такие как `/init`, остаются доступными для ввода, но скрыты от модели. Skills из plugins, `.claude/skills/` и `.claude/commands/` не затронуты. Эквивалент параметра [`disableBundledSkills`](/ru/settings#available-settings); `0` не переопределяет его |

185| `CLAUDE_CODE_DISABLE_CLAUDE_MDS` | Установите на `1`, чтобы предотвратить загрузку любых файлов памяти CLAUDE.md в контекст, включая файлы пользователя, проекта и автоматической памяти |188| `CLAUDE_CODE_DISABLE_CLAUDE_MDS` | Установите на `1`, чтобы предотвратить загрузку любых файлов памяти CLAUDE.md в контекст, включая файлы пользователя, проекта и автоматической памяти |

186| `CLAUDE_CODE_DISABLE_CRON` | Установите на `1`, чтобы отключить [запланированные задачи](/ru/scheduled-tasks). Skill `/loop` и инструменты cron становятся недоступными и все уже запланированные задачи перестают срабатывать, включая задачи, которые уже выполняются в середине сессии |189| `CLAUDE_CODE_DISABLE_CRON` | Установите на `1`, чтобы отключить [запланированные задачи](/ru/scheduled-tasks). Skill `/loop` и инструменты cron становятся недоступными и все уже запланированные задачи перестают срабатывать, включая задачи, которые уже выполняются в середине сессии |

187| `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` | Установите на `1`, чтобы удалить заголовки запроса `anthropic-beta` для Anthropic и поля схемы инструментов beta (такие как `defer_loading` и `eager_input_streaming`) из запросов API. Используйте это, когда шлюз прокси отклоняет запросы с ошибками типа "Unexpected value(s) for the `anthropic-beta` header" или "Extra inputs are not permitted". Стандартные поля (`name`, `description`, `input_schema`, `cache_control`) сохраняются |190| `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` | Установите на `1`, чтобы удалить заголовки запроса `anthropic-beta` для Anthropic и поля схемы инструментов beta (такие как `defer_loading` и `eager_input_streaming`) из запросов API. Используйте это, когда шлюз прокси отклоняет запросы с ошибками типа "Unexpected value(s) for the `anthropic-beta` header" или "Extra inputs are not permitted". Стандартные поля (`name`, `description`, `input_schema`, `cache_control`) сохраняются |

191| `CLAUDE_CODE_DISABLE_EXPLORE_PLAN_AGENTS` | {/* min-version: 2.1.198 */}Установите на `1`, чтобы отключить встроенные [subagents Explore и Plan](/ru/sub-agents#built-in-subagents). Claude исследует с помощью своих инструментов поиска или общего назначения subagent вместо этого, и [режим плана](/ru/permission-modes#analyze-before-you-edit-with-plan-mode) читает файлы напрямую, а не запускает agents Explore и Plan. Пользовательские subagents с именами `Explore` или `Plan` не затронуты. Чтобы удалить каждый встроенный тип subagent в Agent SDK или неинтерактивном режиме, используйте `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS` вместо этого. Требуется Claude Code v2.1.198 или более поздняя версия |

188| `CLAUDE_CODE_DISABLE_FAST_MODE` | Установите на `1`, чтобы отключить [быстрый режим](/ru/fast-mode) |192| `CLAUDE_CODE_DISABLE_FAST_MODE` | Установите на `1`, чтобы отключить [быстрый режим](/ru/fast-mode) |

189| `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` | Установите на `1`, чтобы отключить опросы качества сессии "How is Claude doing?". Опросы также отключаются, когда установлена переменная `DISABLE_TELEMETRY`, `DO_NOT_TRACK` или `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`, если только `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` не согласится вернуться. Чтобы установить частоту выборки вместо полного отключения, используйте параметр [`feedbackSurveyRate`](/ru/settings#available-settings). См. [Опросы качества сессии](/ru/data-usage#session-quality-surveys) |193| `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` | Установите на `1`, чтобы отключить опросы качества сессии "How is Claude doing?". Опросы также отключаются, когда установлена переменная `DISABLE_TELEMETRY`, `DO_NOT_TRACK` или `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`, если только `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` не согласится вернуться. Чтобы установить частоту выборки вместо полного отключения, используйте параметр [`feedbackSurveyRate`](/ru/settings#available-settings). См. [Опросы качества сессии](/ru/data-usage#session-quality-surveys) |

190| `CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING` | Установите на `1`, чтобы отключить [checkpointing](/ru/checkpointing) файлов. Команда `/rewind` не сможет восстановить изменения кода |194| `CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING` | Установите на `1`, чтобы отключить [checkpointing](/ru/checkpointing) файлов. Команда `/rewind` не сможет восстановить изменения кода |


230| `CLAUDE_CODE_IDE_SKIP_VALID_CHECK` | Установите на `1`, чтобы пропустить проверку записей файла блокировки IDE при подключении. Используйте, когда автоматическое подключение не может найти вашу IDE, несмотря на то, что она работает |234| `CLAUDE_CODE_IDE_SKIP_VALID_CHECK` | Установите на `1`, чтобы пропустить проверку записей файла блокировки IDE при подключении. Используйте, когда автоматическое подключение не может найти вашу IDE, несмотря на то, что она работает |

231| `CLAUDE_CODE_MAX_CONTEXT_TOKENS` | Переопределить размер контекстного окна, который Claude Code предполагает для активной модели. {/* min-version: 2.1.193 */}Начиная с v2.1.193, применяется непосредственно для имён моделей, которые Claude Code не распознаёт как модель Claude; для распознанных моделей Claude это вступает в силу только при установке `DISABLE_COMPACT`. Используйте это при маршрутизации к модели через `ANTHROPIC_BASE_URL`, чьё контекстное окно не совпадает с встроенным размером для её имени |235| `CLAUDE_CODE_MAX_CONTEXT_TOKENS` | Переопределить размер контекстного окна, который Claude Code предполагает для активной модели. {/* min-version: 2.1.193 */}Начиная с v2.1.193, применяется непосредственно для имён моделей, которые Claude Code не распознаёт как модель Claude; для распознанных моделей Claude это вступает в силу только при установке `DISABLE_COMPACT`. Используйте это при маршрутизации к модели через `ANTHROPIC_BASE_URL`, чьё контекстное окно не совпадает с встроенным размером для её имени |

232| `CLAUDE_CODE_MAX_OUTPUT_TOKENS` | Установите максимальное количество выходных токенов для большинства запросов. Значения по умолчанию и максимальные значения варьируются в зависимости от модели; см. [максимальное количество выходных токенов](https://platform.claude.com/docs/en/about-claude/models/overview#latest-models-comparison). Увеличение этого значения уменьшает доступное контекстное окно перед срабатыванием [auto-compaction](/ru/costs#reduce-token-usage) |236| `CLAUDE_CODE_MAX_OUTPUT_TOKENS` | Установите максимальное количество выходных токенов для большинства запросов. Значения по умолчанию и максимальные значения варьируются в зависимости от модели; см. [максимальное количество выходных токенов](https://platform.claude.com/docs/en/about-claude/models/overview#latest-models-comparison). Увеличение этого значения уменьшает доступное контекстное окно перед срабатыванием [auto-compaction](/ru/costs#reduce-token-usage) |

233| `CLAUDE_CODE_MAX_RETRIES` | Переопределить количество попыток повтора неудачных запросов API (по умолчанию: 10). {/* min-version: 2.1.186 */}Ограничено 15 начиная с v2.1.186. Для автоматических сессий, которым нужно ждать через более длительные сбои, установите `CLAUDE_CODE_RETRY_WATCHDOG` вместо этого |237| `CLAUDE_CODE_MAX_RETRIES` | Переопределить количество попыток повтора неудачных запросов API (по умолчанию: 10). {/* min-version: 2.1.186 */}Ограничено 15 начиная с v2.1.186; {/* min-version: 2.1.199 */}начиная с v2.1.199, `CLAUDE_CODE_RETRY_WATCHDOG` повышает значение по умолчанию и удаляет лимит. Для автоматических сессий, которым нужно ждать через более длительные сбои, установите `CLAUDE_CODE_RETRY_WATCHDOG` вместо этого |

234| `CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY` | Максимальное количество инструментов только для чтения и subagents, которые могут выполняться параллельно (по умолчанию: 10). Более высокие значения увеличивают параллелизм, но потребляют больше ресурсов |238| `CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY` | Максимальное количество инструментов только для чтения и subagents, которые могут выполняться параллельно (по умолчанию: 10). Более высокие значения увеличивают параллелизм, но потребляют больше ресурсов |

235| `CLAUDE_CODE_MAX_TURNS` | Ограничить количество агентских ходов, когда явный лимит не передан. Эквивалент передачи [`--max-turns`](/ru/cli-reference#cli-flags), который имеет приоритет, когда оба установлены. Значение, которое не является положительным целым числом, отклоняется при запуске с ошибкой, а не рассматривается как отсутствие лимита |239| `CLAUDE_CODE_MAX_TURNS` | Ограничить количество агентских ходов, когда явный лимит не передан. Эквивалент передачи [`--max-turns`](/ru/cli-reference#cli-flags), который имеет приоритет, когда оба установлены. Значение, которое не является положительным целым числом, отклоняется при запуске с ошибкой, а не рассматривается как отсутствие лимита |

236| `CLAUDE_CODE_MCP_ALLOWLIST_ENV` | Установите на `1`, чтобы порождать stdio MCP servers с только безопасной базовой средой плюс настроенная `env` сервера, вместо наследования вашей среды оболочки |240| `CLAUDE_CODE_MCP_ALLOWLIST_ENV` | Установите на `1`, чтобы порождать stdio MCP servers с только безопасной базовой средой плюс настроенная `env` сервера, вместо наследования вашей среды оболочки |


262| `CLAUDE_CODE_REMOTE_SESSION_ID` | Установите автоматически в [облачных сессиях](/ru/claude-code-on-the-web) на ID текущей сессии. Прочитайте это, чтобы построить ссылку обратно на транскрипт сессии. См. [Ссылка вывода обратно на сессию](/ru/claude-code-on-the-web#link-output-back-to-the-session) |266| `CLAUDE_CODE_REMOTE_SESSION_ID` | Установите автоматически в [облачных сессиях](/ru/claude-code-on-the-web) на ID текущей сессии. Прочитайте это, чтобы построить ссылку обратно на транскрипт сессии. См. [Ссылка вывода обратно на сессию](/ru/claude-code-on-the-web#link-output-back-to-the-session) |

263| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` | Установите на `1`, чтобы автоматически возобновить, если предыдущая сессия закончилась в середине хода. Используется в режиме SDK, чтобы модель продолжала работу без необходимости повторной отправки приглашения SDK |267| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` | Установите на `1`, чтобы автоматически возобновить, если предыдущая сессия закончилась в середине хода. Используется в режиме SDK, чтобы модель продолжала работу без необходимости повторной отправки приглашения SDK |

264| `CLAUDE_CODE_RESUME_PROMPT` | Переопределить сообщение продолжения, внедрённое при возобновлении сессии, которая закончилась в середине хода. По умолчанию `Continue from where you left off.`. Скрипты порождения для долгоживущих агентов могут установить это на более директивное загрузочное сообщение. Пустая строка использует значение по умолчанию |268| `CLAUDE_CODE_RESUME_PROMPT` | Переопределить сообщение продолжения, внедрённое при возобновлении сессии, которая закончилась в середине хода. По умолчанию `Continue from where you left off.`. Скрипты порождения для долгоживущих агентов могут установить это на более директивное загрузочное сообщение. Пустая строка использует значение по умолчанию |

265| `CLAUDE_CODE_RETRY_WATCHDOG` | {/* min-version: 2.1.186 */}Установите на `1` для автоматических сессий, таких как eval harnesses, CI jobs или удалённые рабочие. Повторяет ошибки ёмкости `429` и `529` бесконечно вместо отказа после попыток `CLAUDE_CODE_MAX_RETRIES`. Сторож отступает до 5 минут между попытками, или до сброса лимита, когда ответ содержит время сброса ограничения скорости, поэтому сессия, которая попадает в лимит использования, ждёт оставшегося окна. Требуется Claude Code v2.1.186 или более поздняя версия |269| `CLAUDE_CODE_RETRY_WATCHDOG` | {/* min-version: 2.1.186 */}Установите на `1` для автоматических сессий, таких как eval harnesses, CI jobs или удалённые рабочие. Повторяет ошибки ёмкости `429` и `529` бесконечно вместо отказа после попыток `CLAUDE_CODE_MAX_RETRIES`. Сторож отступает до 5 минут между попытками, или до сброса лимита, когда ответ содержит время сброса ограничения скорости, поэтому сессия, которая попадает в лимит использования, ждёт оставшегося окна. {/* min-version: 2.1.199 */}Начиная с v2.1.199, это также повышает количество повторных попыток по умолчанию для других переходных ошибок, таких как ошибки сервера, тайм-ауты и разорванные соединения, до 300, примерно три часа отступления, и удаляет лимит 15 на `CLAUDE_CODE_MAX_RETRIES`, если вы установите эту переменную явно. Требуется Claude Code v2.1.186 или более поздняя версия |

266| `CLAUDE_CODE_SAFE_MODE` | Установите на `1`, чтобы запустить в безопасном режиме: CLAUDE.md, skills, plugins, hooks, MCP servers, пользовательские команды и агенты, стили вывода, workflows, пользовательские темы, пользовательские сочетания клавиш, команды строки состояния и предложения файлов, LSP servers и автоматическая память не загружаются для устранения неполадок в сломанной конфигурации. Политика управляемых параметров по-прежнему применяется, включая hooks, настроенные политикой, строку состояния и команды предложения файлов; управляемые plugins, управляемые skills, управляемые CLAUDE.md и настроенные политикой MCP servers не применяются. Эквивалент передачи [`--safe-mode`](/ru/cli-reference#cli-flags). Непосредственно порождённые дочерние процессы наследуют переменную |270| `CLAUDE_CODE_SAFE_MODE` | Установите на `1`, чтобы запустить в безопасном режиме: CLAUDE.md, skills, plugins, hooks, MCP servers, пользовательские команды и агенты, стили вывода, workflows, пользовательские темы, пользовательские сочетания клавиш, команды строки состояния и предложения файлов, LSP servers и автоматическая память не загружаются для устранения неполадок в сломанной конфигурации. Политика управляемых параметров по-прежнему применяется, включая hooks, настроенные политикой, строку состояния и команды предложения файлов; управляемые plugins, управляемые skills, управляемые CLAUDE.md и настроенные политикой MCP servers не применяются. Эквивалент передачи [`--safe-mode`](/ru/cli-reference#cli-flags). Непосредственно порождённые дочерние процессы наследуют переменную |

267| `CLAUDE_CODE_SCRIPT_CAPS` | JSON объект, ограничивающий, сколько раз конкретные скрипты могут быть вызваны за сессию, когда установлен `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB`. Ключи — это подстроки, сопоставленные с текстом команды; значения — это ограничения целого числа вызовов. Например, `{"deploy.sh": 2}` позволяет `deploy.sh` быть вызванным максимум дважды. Сопоставление основано на подстроке, поэтому трюки расширения оболочки, такие как `./scripts/deploy.sh $(evil)`, по-прежнему учитываются в отношении лимита. Разветвление среды выполнения через `xargs` или `find -exec` не обнаруживается; это контроль защиты в глубину |271| `CLAUDE_CODE_SCRIPT_CAPS` | JSON объект, ограничивающий, сколько раз конкретные скрипты могут быть вызваны за сессию, когда установлен `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB`. Ключи — это подстроки, сопоставленные с текстом команды; значения — это ограничения целого числа вызовов. Например, `{"deploy.sh": 2}` позволяет `deploy.sh` быть вызванным максимум дважды. Сопоставление основано на подстроке, поэтому трюки расширения оболочки, такие как `./scripts/deploy.sh $(evil)`, по-прежнему учитываются в отношении лимита. Разветвление среды выполнения через `xargs` или `find -exec` не обнаруживается; это контроль защиты в глубину |

268| `CLAUDE_CODE_SCROLL_SPEED` | Установите множитель прокрутки колеса мыши в [полноэкранном режиме](/ru/fullscreen#mouse-wheel-scrolling). Принимает значения от 1 до 20, и дробные значения ниже 1, такие как `0.5`, чтобы замедлить ускоренную прокрутку трекпада и колеса в терминалах, которые уже усиливают события колеса. Установите на `3`, чтобы соответствовать `vim`, если ваш терминал отправляет одно событие колеса на зубец без усиления. Игнорируется в встроенном терминале JetBrains IDE, где Claude Code использует собственную обработку прокрутки |272| `CLAUDE_CODE_SCROLL_SPEED` | Установите множитель прокрутки колеса мыши в [полноэкранном режиме](/ru/fullscreen#mouse-wheel-scrolling). Принимает значения от 1 до 20, и дробные значения ниже 1, такие как `0.5`, чтобы замедлить ускоренную прокрутку трекпада и колеса в терминалах, которые уже усиливают события колеса. Установите на `3`, чтобы соответствовать `vim`, если ваш терминал отправляет одно событие колеса на зубец без усиления. Игнорируется в встроенном терминале JetBrains IDE, где Claude Code использует собственную обработку прокрутки |

errors.md +158 −26

Details

25| `API Error: 500 Internal server error` | [Server errors](#api-error-500-internal-server-error) |25| `API Error: 500 Internal server error` | [Server errors](#api-error-500-internal-server-error) |

26| `API Error: Repeated 529 Overloaded errors` | [Server errors](#api-error-repeated-529-overloaded-errors) |26| `API Error: Repeated 529 Overloaded errors` | [Server errors](#api-error-repeated-529-overloaded-errors) |

27| `Request timed out` | [Server errors](#request-timed-out), или [Network](#unable-to-connect-to-api), если сообщение упоминает вашу интернет-соединение |27| `Request timed out` | [Server errors](#request-timed-out), или [Network](#unable-to-connect-to-api), если сообщение упоминает вашу интернет-соединение |

28| `Server error mid-response. The response above may be incomplete.` | [Server errors](#the-response-above-may-be-incomplete) |

29| `Connection closed mid-response` / `Response stalled mid-stream` | [Server errors](#the-response-above-may-be-incomplete) |

28| `<model> is temporarily unavailable, so auto mode cannot determine the safety of...` | [Server errors](#auto-mode-cannot-determine-the-safety-of-an-action) |30| `<model> is temporarily unavailable, so auto mode cannot determine the safety of...` | [Server errors](#auto-mode-cannot-determine-the-safety-of-an-action) |

29| `Auto mode could not evaluate this action and is blocking it for safety` | [Server errors](#auto-mode-cannot-determine-the-safety-of-an-action) |31| `Auto mode could not evaluate this action and is blocking it for safety` | [Server errors](#auto-mode-cannot-determine-the-safety-of-an-action) |

30| `Auto mode classifier transcript exceeded context window` | [Server errors](#auto-mode-cannot-determine-the-safety-of-an-action) |32| `Auto mode classifier transcript exceeded context window` | [Server errors](#auto-mode-cannot-determine-the-safety-of-an-action) |

33| `Agent terminated early due to an API error` | [Server errors](#agent-terminated-early-due-to-an-api-error) |

31| `You've hit your session limit` / `You've hit your weekly limit` | [Usage limits](#you%E2%80%99ve-hit-your-session-limit) |34| `You've hit your session limit` / `You've hit your weekly limit` | [Usage limits](#you%E2%80%99ve-hit-your-session-limit) |

32| `Usage credits required for 1M context` | [Usage limits](#usage-credits-required-for-1m-context) |35| `Usage credits required for 1M context` | [Usage limits](#usage-credits-required-for-1m-context) |

33| `Server is temporarily limiting requests` | [Usage limits](#server-is-temporarily-limiting-requests) |36| `Server is temporarily limiting requests` | [Usage limits](#server-is-temporarily-limiting-requests) |


43| `Remote Control is only available when using Claude via api.anthropic.com` | [Authentication](#remote-control-requires-the-anthropic-api) |46| `Remote Control is only available when using Claude via api.anthropic.com` | [Authentication](#remote-control-requires-the-anthropic-api) |

44| `OAuth token revoked` / `OAuth token has expired` | [Authentication](#oauth-token-revoked-or-expired) |47| `OAuth token revoked` / `OAuth token has expired` | [Authentication](#oauth-token-revoked-or-expired) |

45| `does not meet scope requirement user:profile` | [Authentication](#oauth-scope-requirement) |48| `does not meet scope requirement user:profile` | [Authentication](#oauth-scope-requirement) |

49| `AWS credentials expired or invalid` | [Authentication](#aws-credentials-expired-or-invalid) |

50| `AWS authentication failed` | [Authentication](#aws-authentication-failed) |

46| `Unable to connect to API` | [Network](#unable-to-connect-to-api) |51| `Unable to connect to API` | [Network](#unable-to-connect-to-api) |

47| `Waiting for API response · will retry in` | [Automatic retries](#automatic-retries), или [Network](#unable-to-connect-to-api), если это продолжается |52| `Waiting for API response · will retry in` | [Automatic retries](#automatic-retries), или [Network](#unable-to-connect-to-api), если это продолжается |

48| `SSL certificate verification failed` | [Network](#ssl-certificate-errors) |53| `SSL certificate verification failed` | [Network](#ssl-certificate-errors) |

54| `SSL certificate error (...)` during login or startup | [Network](#ssl-certificate-errors) |

49| `403` with `x-deny-reason: host_not_allowed` in a cloud or routine session | [Network](#host-not-allowed-in-a-cloud-session) |55| `403` with `x-deny-reason: host_not_allowed` in a cloud or routine session | [Network](#host-not-allowed-in-a-cloud-session) |

50| `Prompt is too long` | [Request errors](#prompt-is-too-long) |56| `Prompt is too long` | [Request errors](#prompt-is-too-long) |

51| `Error during compaction: Conversation too long` | [Request errors](#error-during-compaction-conversation-too-long) |57| `Error during compaction: Conversation too long` | [Request errors](#error-during-compaction-conversation-too-long) |


61| `max_tokens must be greater than thinking.budget_tokens` | [Request errors](#thinking-budget-exceeds-output-limit) |67| `max_tokens must be greater than thinking.budget_tokens` | [Request errors](#thinking-budget-exceeds-output-limit) |

62| `API Error: 400 due to tool use concurrency issues` | [Request errors](#tool-use-or-thinking-block-mismatch) |68| `API Error: 400 due to tool use concurrency issues` | [Request errors](#tool-use-or-thinking-block-mismatch) |

63| `Claude Code is unable to respond to this request, which appears to violate our Usage Policy` | [Request errors](#usage-policy-refusal) |69| `Claude Code is unable to respond to this request, which appears to violate our Usage Policy` | [Request errors](#usage-policy-refusal) |

70| `--bg and --print conflict` | [Command-line errors](#command-line-errors) |

64| Responses seem lower quality than usual | [Response quality](#responses-seem-lower-quality-than-usual) |71| Responses seem lower quality than usual | [Response quality](#responses-seem-lower-quality-than-usual) |

65 72 

66<h2 id="automatic-retries">73<h2 id="automatic-retries">

67 Автоматические повторные попытки74 Automatic retries

68</h2>75</h2>

69 76 

70Claude Code повторяет попытки при временных сбоях перед отображением ошибки. Ошибки сервера, перегруженные ответы, тайм-ауты запросов, временные дроссели 429 и разорванные соединения повторяются до 10 раз с экспоненциальной задержкой. Во время повторных попыток спиннер показывает обратный отсчет `Retrying in Ns · attempt x/y`.77Claude Code повторяет попытки при временных сбоях перед отображением ошибки. Ошибки сервера, перегруженные ответы, тайм-ауты запросов, временные дроссели 429 и разорванные соединения повторяются до 10 раз с экспоненциальной задержкой. {/* min-version: 2.1.198 */}Начиная с версии 2.1.198, это охватывает соединения, которые разрываются в середине ответа перед любым видимым выводом: Claude Code повторно отправляет запрос с той же задержкой и ход продолжается вместо остановки с ошибкой соединения. {/* min-version: 2.1.199 */}Начиная с версии 2.1.199, временные дроссели 429, которые не содержат заголовки квоты вашего плана, также повторяются, когда вы вошли с подписью claude.ai; более ранние версии повторяли их только для входов по ключу API и Enterprise.

78 

79Два класса сбоев не повторяются, потому что повторная попытка не может быть успешной:

80 

81* {/* min-version: 2.1.199 */}Начиная с версии 2.1.199, сбой проверки сертификата TLS, такой как прокси, проверяющий TLS, отсутствующий пакет `NODE_EXTRA_CA_CERTS` или истекший сертификат, завершается ошибкой при первой попытке, поэтому исправление появляется немедленно вместо полного бюджета повторных попыток. См. [SSL certificate errors](#ssl-certificate-errors). Временные условия TLS, такие как тайм-аут рукопожатия, все еще повторяются.

82* {/* min-version: 2.1.199 */}Начиная с версии 2.1.199, ошибка сервера, которая поступает после того, как Claude уже передал видимый вывод, сохраняет частичный ответ и добавляет [incomplete-response notice](#the-response-above-may-be-incomplete) вместо повторной попытки, так как повторный запрос может выполнить те же вызовы инструментов дважды. Более ранние версии отбрасывали частичный вывод и сообщали о ходе как об ошибке.

83 

84Во время повторных попыток спиннер показывает обратный отсчет `Retrying in Ns · attempt x/y` после метки ошибки. Метка называет конкретную причину первой попытки для сбоев, на которые вы можете действовать немедленно: сеть отключена, рукопожатие TLS не удалось, или вы достигли лимита скорости. Для других ошибок она читается как `API error` вначале. {/* min-version: 2.1.198 */}Начиная с версии 2.1.198, она переключается на конкретную причину третьей попытки, или при последней попытке, когда `CLAUDE_CODE_MAX_RETRIES` позволяет менее трёх; более ранние версии переключаются только при последней попытке.

85 

86{/* min-version: 2.1.198 */}Начиная с версии 2.1.198, обычная подсказка спиннера подавляется во время повторных попыток. После того как причина ошибки раскрыта, если сбой — это перегрузка 529, строка ниже обратного отсчета также указывает, где проверить статус сервиса: `status.claude.com` на Anthropic API, или хост провайдера или шлюза, указанный в сообщении, на других конфигурациях.

71 87 

72{/* min-version: 2.1.185 */}Если данные не поступают на поток ответов в течение 20 секунд, пока запрос все еще ожидает, спиннер показывает `Waiting for API response · will retry in … · check your network` перед началом любой повторной попытки. Запрос еще не завершился с ошибкой: обратный отсчет продолжается до момента, когда Claude Code прерывает зависшее соединение и повторяет попытку, поэтому баннер исчезает самостоятельно, когда данные возобновляются или повторная попытка успешна. Начиная с версии 2.1.185 пороговое значение составляет 20 секунд; в более ранних версиях баннер отображается через 10 секунд с другой формулировкой. Если он появляется при каждой попытке, рассматривайте это как [проблему с сетью](#unable-to-connect-to-api).88{/* min-version: 2.1.185 */}Если данные не поступают на поток ответов в течение 20 секунд, пока запрос все еще ожидает, спиннер показывает `Waiting for API response · will retry in … · check your network` перед началом любой повторной попытки. Запрос еще не завершился с ошибкой: обратный отсчет продолжается до момента, когда Claude Code прерывает зависшее соединение и повторяет попытку, поэтому баннер исчезает самостоятельно, когда данные возобновляются или повторная попытка успешна. Начиная с версии 2.1.185 пороговое значение составляет 20 секунд; в более ранних версиях баннер отображается через 10 секунд с другой формулировкой. Если он появляется при каждой попытке, рассматривайте это как [проблему с сетью](#unable-to-connect-to-api).

73 89 

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

75 91 

76| Переменная | По умолчанию | Эффект |92| Переменная | По умолчанию | Эффект |

77| :------------------------------------------- | :------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |93| :------------------------------------------- | :------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

78| [`CLAUDE_CODE_MAX_RETRIES`](/ru/env-vars) | 10 | Количество попыток повтора. {/* min-version: 2.1.186 */}Ограничено 15 начиная с версии 2.1.186. Снизьте его, чтобы быстрее выявлять сбои в скриптах. |94| [`CLAUDE_CODE_MAX_RETRIES`](/ru/env-vars) | 10 | Количество попыток повтора. {/* min-version: 2.1.186 */}Ограничено 15 начиная с версии 2.1.186; {/* min-version: 2.1.199 */}начиная с версии 2.1.199 `CLAUDE_CODE_RETRY_WATCHDOG` повышает значение по умолчанию и удаляет ограничение. Снизьте его, чтобы быстрее выявлять сбои в скриптах. |

79| [`CLAUDE_CODE_RETRY_WATCHDOG`](/ru/env-vars) | не установлено | Установите значение `1` в автоматических сеансах, таких как задания CI, чтобы повторять попытки при ошибках емкости `429` и `529` бесконечно вместо отказа после `CLAUDE_CODE_MAX_RETRIES` попыток. |95| [`CLAUDE_CODE_RETRY_WATCHDOG`](/ru/env-vars) | не установлено | Установите значение `1` в автоматических сеансах, таких как задания CI, чтобы повторять попытки при ошибках емкости `429` и `529` бесконечно вместо отказа после `CLAUDE_CODE_MAX_RETRIES` попыток. {/* min-version: 2.1.199 */}Начиная с версии 2.1.199, это также повышает количество повторных попыток по умолчанию для других временных ошибок, таких как ошибки сервера, тайм-ауты и разорванные соединения, до 300, примерно три часа задержки, и удаляет ограничение 15 на `CLAUDE_CODE_MAX_RETRIES`, если вы явно установите эту переменную. |

80| [`API_TIMEOUT_MS`](/ru/env-vars) | 600000 | Тайм-аут для каждого запроса в миллисекундах. Повысьте его для медленных сетей или прокси. |96| [`API_TIMEOUT_MS`](/ru/env-vars) | 600000 | Тайм-аут для каждого запроса в миллисекундах. Повысьте его для медленных сетей или прокси. |

81 97 

82<h2 id="server-errors">98<h2 id="server-errors">

83 Ошибки сервера99 Server errors

84</h2>100</h2>

85 101 

86Эти ошибки исходят от поставщика услуг вывода, а не от вашей учетной записи или запроса. На Anthropic API это означает инфраструктуру Anthropic. На Bedrock, Vertex AI, Foundry или пользовательском шлюзе это означает инфраструктуру этого поставщика.102Эти ошибки исходят от поставщика услуг вывода, а не от вашей учетной записи или запроса. На Anthropic API это означает инфраструктуру Anthropic. На Bedrock, Vertex AI, Foundry или пользовательском шлюзе это означает инфраструктуру этого поставщика.


103 119 

104* Проверьте [status.claude.com](https://status.claude.com) или страницу статуса поставщика, указанную в сообщении, на наличие активных инцидентов120* Проверьте [status.claude.com](https://status.claude.com) или страницу статуса поставщика, указанную в сообщении, на наличие активных инцидентов

105* Подождите минуту, затем отправьте сообщение еще раз. Ваше исходное сообщение все еще находится в разговоре, поэтому для длинного запроса вы можете ввести `try again` вместо вставки всего текста.121* Подождите минуту, затем отправьте сообщение еще раз. Ваше исходное сообщение все еще находится в разговоре, поэтому для длинного запроса вы можете ввести `try again` вместо вставки всего текста.

106* Если ошибка сохраняется без опубликованного инцидента, запустите `/feedback`, чтобы Anthropic могла расследовать детали вашего запроса. См. [Сообщить об ошибке](#report-an-error), если `/feedback` недоступна в вашей среде.122* Если ошибка сохраняется без опубликованного инцидента, запустите `/feedback`, чтобы Anthropic могла расследовать детали вашего запроса. См. [Report an error](#report-an-error), если `/feedback` недоступна в вашей среде.

107 123 

108<h3 id="api-error-repeated-529-overloaded-errors">124<h3 id="api-error-repeated-529-overloaded-errors">

109 API Error: Repeated 529 Overloaded errors125 API Error: Repeated 529 Overloaded errors


115API Error: Repeated 529 Overloaded errors. The API is at capacity — this is usually temporary. Try again in a moment. If it persists, check https://status.claude.com.131API Error: Repeated 529 Overloaded errors. The API is at capacity — this is usually temporary. Try again in a moment. If it persists, check https://status.claude.com.

116```132```

117 133 

118Завершающее предложение варьируется в зависимости от поставщика так же, как ошибка 500 выше. 529 — это не ваш лимит использования и не учитывается в вашей квоте.134Завершающее предложение варьируется в зависимости от поставщика так же, как ошибка 500 выше.

135 

136529 — это не ваш лимит использования и не учитывается в вашей квоте.

119 137 

120**Что делать:**138**Что делать:**

121 139 


142* Если причина в медленной сети или прокси, повысьте `API_TIMEOUT_MS`, как описано в [Automatic retries](#automatic-retries)160* Если причина в медленной сети или прокси, повысьте `API_TIMEOUT_MS`, как описано в [Automatic retries](#automatic-retries)

143* Если тайм-ауты частые и ваша сеть в остальном здорова, см. [Network and connection errors](#network-and-connection-errors) ниже161* Если тайм-ауты частые и ваша сеть в остальном здорова, см. [Network and connection errors](#network-and-connection-errors) ниже

144 162 

163<h3 id="the-response-above-may-be-incomplete">

164 The response above may be incomplete

165</h3>

166 

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

168 

169```text theme={null}

170API Error: Server error mid-response. The response above may be incomplete.

171API Error: Connection closed mid-response. The response above may be incomplete.

172API Error: Response stalled mid-stream. The response above may be incomplete.

173```

174 

175* {/* min-version: 2.1.199 */}}`Server error mid-response`: ошибка сервера перегрузки или 5xx в середине потока. Этот вариант требует Claude Code v2.1.199 или позже; до этого этот случай отбрасывал частичный вывод и сообщал весь ход как об ошибке.

176* `Connection closed mid-response`: соединение разорвалось.

177* `Response stalled mid-stream`: поток перестал отправлять данные.

178 

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

180 

181* Прочитайте ответ, который передался. Ничего не потеряно, но последние предложения или вызовы инструментов могут отсутствовать.

182* Ответьте с `continue`, чтобы Claude продолжил с того места, где остановился

183* Если та же ошибка появляется перед любым видимым выводом, Claude Code повторяет запрос вместо его завершения. См. [Automatic retries](#automatic-retries).

184 

145<h3 id="auto-mode-cannot-determine-the-safety-of-an-action">185<h3 id="auto-mode-cannot-determine-the-safety-of-an-action">

146 Auto mode cannot determine the safety of an action186 Auto mode cannot determine the safety of an action

147</h3>187</h3>


186* Одобрите или отклоните действие в появившемся запросе226* Одобрите или отклоните действие в появившемся запросе

187* Запустите `/compact`, чтобы уменьшить размер разговора, чтобы последующие действия снова поместились в окне классификатора227* Запустите `/compact`, чтобы уменьшить размер разговора, чтобы последующие действия снова поместились в окне классификатора

188 228 

229<h3 id="agent-terminated-early-due-to-an-api-error">

230 Agent terminated early due to an API error

231</h3>

232 

233{/* min-version: 2.1.199 */}Запрос API [subagent](/ru/sub-agents) завершился ошибкой окончательно, например, потому что был достигнут лимит использования или повторные попытки для ошибки сервера исчерпаны, поэтому подагент остановился перед завершением своей задачи. Это сообщение требует Claude Code v2.1.199 или позже; до этого текст ошибки API возвращался Claude, как если бы это был результат подагента.

234 

235```text theme={null}

236Agent terminated early due to an API error: <error detail>

237```

238 

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

240 

241* Сопоставьте деталь ошибки после двоеточия с её собственным разделом на этой странице, такой как [Usage limits](#usage-limits) или [Server errors](#server-errors), и следуйте шагам этого раздела

242* После того как базовая ошибка исчезнет, попросите Claude повторить задачу или [resume the subagent](/ru/sub-agents#resume-subagents)

243 

244Когда лимит скорости, перегрузка или ошибка сервера прерывает переднего подагента, который уже произвел вывод, Claude получает этот частичный вывод, отмеченный как неполный, вместо этой ошибки. См. [API errors in subagents](/ru/sub-agents#api-errors-in-subagents).

245 

189<h2 id="usage-limits">246<h2 id="usage-limits">

190 Лимиты использования247 Usage limits

191</h2>248</h2>

192 249 

193Эти ошибки означают, что квота, привязанная к вашей учетной записи или плану, была достигнута. Они отличаются от [server errors](#server-errors), которые влияют на всех.250Эти ошибки означают, что квота, привязанная к вашей учетной записи или плану, была достигнута. Они отличаются от [server errors](#server-errors), которые влияют на всех.


210 267 

211* Дождитесь времени сброса, показанного в ошибке268* Дождитесь времени сброса, показанного в ошибке

212* Запустите `/usage`, чтобы увидеть лимиты вашего плана и когда они сбрасываются269* Запустите `/usage`, чтобы увидеть лимиты вашего плана и когда они сбрасываются

213* Запустите `/usage-credits`, чтобы купить дополнительное использование на Pro и Max, или запросить его у администратора на Team и Enterprise. См. [usage credits for paid plans](https://support.claude.com/ru/articles/12429409-extra-usage-for-paid-claude-plans) для информации о том, как это выставляется счетом.270* Запустите `/usage-credits`, чтобы купить дополнительное использование на Pro и Max, или запросить его у администратора на Team и Enterprise. См. [usage credits for paid plans](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) для информации о том, как это выставляется счетом.

214* Чтобы обновить ваш план для более высоких базовых лимитов, см. [claude.com/pricing](https://claude.com/pricing)271* Чтобы обновить ваш план для более высоких базовых лимитов, см. [claude.com/pricing](https://claude.com/pricing)

215 272 

216Чтобы отслеживать оставшийся лимит перед его достижением, добавьте поля `rate_limits` в [custom status line](/ru/statusline#rate-limit-usage), или в Desktop app нажмите [usage ring](/ru/desktop#check-usage) рядом с выбором модели.273Чтобы отслеживать оставшийся лимит перед его достижением, добавьте поля `rate_limits` в [custom status line](/ru/statusline#rate-limit-usage), или в Desktop app нажмите [usage ring](/ru/desktop#check-usage) рядом с выбором модели.


246API Error: Server is temporarily limiting requests (not your usage limit)303API Error: Server is temporarily limiting requests (not your usage limit)

247```304```

248 305 

249Это [retried automatically](#automatic-retries) перед отображением.306Claude Code различает эти случаи от вашего лимита плана по отсутствию унифицированных заголовков квоты, которые несет реальный ответ лимита. {/* min-version: 2.1.199 */}Начиная с версии 2.1.199, это [retried automatically](#automatic-retries) с задержкой перед отображением, независимо от того, как вы аутентифицируетесь. На более ранних версиях сеанс, вошедший с подписью claude.ai, завершился ошибкой при первом возникновении; только входы по ключу API и Enterprise повторили попытку.

250 307 

251**Что делать:**308**Что делать:**

252 309 


269 326 

270* Запустите `/status` и подтвердите, что активные учетные данные — это те, которые вы ожидаете. Случайный `ANTHROPIC_API_KEY` в вашей среде может маршрутизировать запросы через низкоуровневый ключ вместо вашей подписки.327* Запустите `/status` и подтвердите, что активные учетные данные — это те, которые вы ожидаете. Случайный `ANTHROPIC_API_KEY` в вашей среде может маршрутизировать запросы через низкоуровневый ключ вместо вашей подписки.

271* Проверьте консоль вашего провайдера на предмет активных лимитов и запросите более высокий уровень, если необходимо328* Проверьте консоль вашего провайдера на предмет активных лимитов и запросите более высокий уровень, если необходимо

272* Для ключей Anthropic API см. [rate limits reference](https://platform.claude.com/docs/ru/api/rate-limits) для информации о том, как работают уровни и как установить лимиты для каждого рабочего пространства329* Для ключей Anthropic API см. [rate limits reference](https://platform.claude.com/docs/en/api/rate-limits) для информации о том, как работают уровни и как установить лимиты для каждого рабочего пространства

273* Снизьте параллелизм: понизьте [`CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY`](/ru/env-vars), избегайте запуска множества параллельных подагентов или переключитесь на меньшую модель с `/model` для высокообъемных скриптовых запусков330* Снизьте параллелизм: понизьте [`CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY`](/ru/env-vars), избегайте запуска множества параллельных подагентов или переключитесь на меньшую модель с `/model` для высокообъемных скриптовых запусков

274 331 

275<h3 id="credit-balance-is-too-low">332<h3 id="credit-balance-is-too-low">


289* Установите лимиты расходов для каждого рабочего пространства в Console, чтобы предотвратить истощение баланса организации одним проектом. См. [Manage costs effectively](/ru/costs).346* Установите лимиты расходов для каждого рабочего пространства в Console, чтобы предотвратить истощение баланса организации одним проектом. См. [Manage costs effectively](/ru/costs).

290 347 

291<h2 id="authentication-errors">348<h2 id="authentication-errors">

292 Ошибки аутентификации349 Authentication errors

293</h2>350</h2>

294 351 

295Эти ошибки означают, что Claude Code не может доказать вашу личность API. Запустите `/status` в любое время, чтобы увидеть, какие учетные данные в настоящее время активны.352Эти ошибки означают, что Claude Code не может доказать вашу личность API. Запустите `/status` в любое время, чтобы увидеть, какие учетные данные в настоящее время активны.


317 Could not resolve authentication method374 Could not resolve authentication method

318</h3>375</h3>

319 376 

320Сеанс достиг клиента API без каких-либо учетных данных. Это появляется в [фоновых сеансах](/ru/agent-view), облачных сеансах и контекстах Agent SDK, где проверка интерактивного входа не выполняется перед первым запросом.377Сеанс достиг клиента API без каких-либо учетных данных. Это появляется в [background sessions](/ru/agent-view), облачных сеансах и контекстах Agent SDK, где проверка интерактивного входа не выполняется перед первым запросом.

321 378 

322```text theme={null}379```text theme={null}

323Could not resolve authentication method. Expected one of apiKey, authToken, credentials, config, or profile to be set. Or for one of the "X-Api-Key" or "Authorization" headers to be explicitly omitted380Could not resolve authentication method. Expected one of apiKey, authToken, credentials, config, or profile to be set. Or for one of the "X-Api-Key" or "Authorization" headers to be explicitly omitted


402Your organization has disabled Claude subscription access for Claude Code · Use an Anthropic API key instead, or ask your admin to enable access459Your organization has disabled Claude subscription access for Claude Code · Use an Anthropic API key instead, or ask your admin to enable access

403```460```

404 461 

405Это параметр организации на стороне сервера, поэтому его нельзя переопределить из локальных параметров, переменных окружения или флагов CLI. Agent SDK и неинтерактивный режим `-p` отображают это как код ошибки `oauth_org_not_allowed`.462Это параметр организации на стороне сервера, поэтому его нельзя переопределить из локальных параметров, переменных окружения или флагов CLI.

463 

464Agent SDK и `-p` неинтерактивный режим отображают это как код ошибки `oauth_org_not_allowed`.

406 465 

407**Что делать:**466**Что делать:**

408 467 


414 Routines are disabled by your organization's policy473 Routines are disabled by your organization's policy

415</h3>474</h3>

416 475 

417Ваш администратор Team или Enterprise отключил routines на уровне организации. Ошибка появляется при попытке создать или запустить routine, включая из `/schedule` и пользовательского интерфейса [Routines](/ru/routines) на claude.ai/code.476Администратор вашей Team или Enterprise организации отключил routines на уровне организации. Ошибка появляется при попытке создать или запустить routine, включая из `/schedule` и пользовательского интерфейса [Routines](/ru/routines) на claude.ai/code.

418 477 

419```text theme={null}478```text theme={null}

420Routines are disabled by your organization's policy.479Routines are disabled by your organization's policy.


424 483 

425**Что делать:**484**Что делать:**

426 485 

427* Попросите вашего администратора включить переключатель **Routines** на [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code)486* Попросите администратора вашей организации включить переключатель **Routines** на [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code)

428* Для одноразовой запланированной работы, которая не требует routines на уровне организации, см. [scheduled tasks](/ru/scheduled-tasks)487* Для одноразовой запланированной работы, которая не требует routines на уровне организации, см. [scheduled tasks](/ru/scheduled-tasks)

429 488 

430<h3 id="remote-control-requires-the-anthropic-api">489<h3 id="remote-control-requires-the-anthropic-api">


477 536 

478* Запустите `/login`, чтобы создать новый токен с текущими областями. Вам не нужно сначала выходить.537* Запустите `/login`, чтобы создать новый токен с текущими областями. Вам не нужно сначала выходить.

479 538 

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

540 AWS credentials expired or invalid

541</h3>

542 

543{/* min-version: 2.1.198 */}Это сообщение требует Claude Code v2.1.198 или позже и появляется только когда [`awsAuthRefresh`](/ru/amazon-bedrock#advanced-credential-configuration) установлена в вашем файле параметров. Ваш токен сеанса AWS истек или был отклонен, и автоматическое обновление, которое Claude Code уже запустила, не произвело учетные данные, которые API принимает. Это появляется на 401 от [Claude Platform on AWS](/ru/claude-platform-on-aws) или [Mantle endpoint](/ru/amazon-bedrock#use-the-mantle-endpoint), что является тем, как эти провайдеры сообщают об истекшем токене безопасности.

544 

545Подсказка действия в середине называет команду `awsAuthRefresh` из ваших параметров, поэтому она варьируется. Стабильная часть — это ведущий `AWS credentials expired or invalid`:

546 

547```text theme={null}

548AWS credentials expired or invalid · run /login and select "Claude Platform on AWS · refresh credentials", or run `aws sso login --profile myprofile` in another terminal · API Error: 401 ...

549```

550 

551Без настроенного `awsAuthRefresh`, тот же 401 показывает общее сообщение `Please run /login` вместо этого, которое не может обновить учетные данные AWS.

552 

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

554 

555* Запустите команду `awsAuthRefresh`, названную в сообщении, такую как `aws sso login --profile myprofile`, в другом терминале и завершите вход в браузер, затем повторите попытку

556* В интерактивном сеансе запустите `/login`, выберите **3rd-party platform**, затем выберите **Claude Platform on AWS · refresh credentials** под **Using 3rd-party platforms**, чтобы запустить ту же команду без перезапуска Claude Code. См. [Configure AWS credentials](/ru/claude-platform-on-aws#1-configure-aws-credentials)

557* Если ошибка повторяется после успешного выполнения команды обновления, подтвердите, что идентификатор действителен вне Claude Code с помощью `aws sts get-caller-identity` в той же оболочке и профиле

558 

559<h3 id="aws-authentication-failed">

560 AWS authentication failed

561</h3>

562 

563{/* min-version: 2.1.198 */}Это сообщение требует Claude Code v2.1.198 или позже и появляется только когда [`awsAuthRefresh`](/ru/amazon-bedrock#advanced-credential-configuration) установлена в вашем файле параметров. Ваш провайдер AWS вернул 403, или [Amazon Bedrock](/ru/amazon-bedrock) вернула 401.

564 

565Claude Code не может определить, какую причину вы получили. Amazon Bedrock сообщает об истекшем токене безопасности как 403, но 403 также является тем, как она сообщает об отказе в авторизации, такой как `AccessDeniedException` из отсутствующего разрешения IAM или модели, которая не включена для вашей учетной записи.

566 

567401 от Amazon Bedrock также попадает сюда, а не под [AWS credentials expired or invalid](#aws-credentials-expired-or-invalid), потому что Bedrock не сообщает об истекшем токене как 401. 401 от этой конечной точки обычно поступает из чего-то еще в пути запроса, такого как корпоративный прокси.

568 

569Обновление учетных данных исправляет истекший токен и не может исправить другие причины, поэтому сообщение предлагает оба:

570 

571```text theme={null}

572AWS authentication failed · run /login and select "Claude Platform on AWS · refresh credentials", or run `aws sso login --profile myprofile` in another terminal · if credentials are current, check AWS permissions and model access · API Error: 403 ...

573```

574 

575Подсказка действия в середине называет команду `awsAuthRefresh` из ваших параметров, поэтому она варьируется. Стабильная часть — это ведущий `AWS authentication failed`.

576 

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

578 

579* Запустите команду `awsAuthRefresh`, названную в сообщении, или `aws sso login`, на случай, если истекшие учетные данные являются причиной

580* Если ваши учетные данные текущие, подтвердите разрешения IAM в [IAM configuration](/ru/amazon-bedrock#iam-configuration) прикреплены к идентификатору, который вы используете, и что выбранная модель включена для вашей учетной записи и региона

581* Запустите `aws sts get-caller-identity`, чтобы подтвердить, какой идентификатор используют ваши запросы; устаревший `AWS_PROFILE` или профиль по умолчанию — это распространенная причина несоответствия разрешений

582 

480<h2 id="network-and-connection-errors">583<h2 id="network-and-connection-errors">

481 Ошибки сети и соединения584 Network and connection errors

482</h2>585</h2>

483 586 

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


525Unable to connect to API: Self-signed certificate detected628Unable to connect to API: Self-signed certificate detected

526```629```

527 630 

631{/* min-version: 2.1.199 */}Начиная с версии 2.1.199, сбой проверки сертификата не повторяется, поэтому эта ошибка появляется при первой попытке вместо полного [retry budget](#automatic-retries). Более ранние версии повторяли попытку несколько минут перед отображением. Временные условия TLS, такие как тайм-аут рукопожатия, все еще повторяются.

632 

633Во время `/login` и проверки подключения при запуске тот же сбой сообщается с кодом OpenSSL и исправлением в строке:

634 

635```text theme={null}

636SSL certificate error (UNABLE_TO_GET_ISSUER_CERT_LOCALLY). If you are behind a corporate proxy or TLS-intercepting firewall, set NODE_EXTRA_CA_CERTS to your CA bundle path, or ask IT to allowlist *.anthropic.com. Run /doctor for details.

637```

638 

528**Что делать:**639**Что делать:**

529 640 

530* Экспортируйте пакет CA вашей организации и укажите Claude Code на него с помощью `NODE_EXTRA_CA_CERTS=/path/to/ca-bundle.pem`641* Экспортируйте пакет CA вашей организации и укажите Claude Code на него с помощью `NODE_EXTRA_CA_CERTS=/path/to/ca-bundle.pem`


544 655 

545Вы также можете увидеть сертификат TLS, который не соответствует реальному сертификату пункта назначения. Облачная среда маршрутизирует исходящий трафик через прокси, который применяет политику сети, поэтому несоответствующий сертификат означает, что прокси прервал соединение, а не пункт назначения.656Вы также можете увидеть сертификат TLS, который не соответствует реальному сертификату пункта назначения. Облачная среда маршрутизирует исходящий трафик через прокси, который применяет политику сети, поэтому несоответствующий сертификат означает, что прокси прервал соединение, а не пункт назначения.

546 657 

547Это не проблема сети на стороне клиента. Облачные сессии и [процедуры](/ru/routines) работают внутри изолированной среды, исходящий трафик которой фильтруется в соответствии со списком разрешений среды. Среда **Default** использует доступ **Trusted**, который разрешает [список разрешений по умолчанию](/ru/claude-code-on-the-web#default-allowed-domains) реестров пакетов, API поставщиков облачных услуг, реестров контейнеров и распространенных доменов разработки, но блокирует все остальное.658Это не проблема сети на стороне клиента. Облачные сессии и [routines](/ru/routines) работают внутри изолированной среды, исходящий трафик которой фильтруется в соответствии со списком разрешений среды. Среда **Default** использует доступ **Trusted**, который разрешает [список разрешений по умолчанию](/ru/claude-code-on-the-web#default-allowed-domains) реестров пакетов, API поставщиков облачных услуг, реестров контейнеров и распространенных доменов разработки, но блокирует все остальное.

548 659 

549**Что делать:**660**Что делать:**

550 661 


555См. [Network access](/ru/claude-code-on-the-web#network-access) для уровней доступа и списка разрешений по умолчанию. Локальные сессии CLI не затронуты этой политикой.666См. [Network access](/ru/claude-code-on-the-web#network-access) для уровней доступа и списка разрешений по умолчанию. Локальные сессии CLI не затронуты этой политикой.

556 667 

557<h2 id="request-errors">668<h2 id="request-errors">

558 Ошибки запроса669 Request errors

559</h2>670</h2>

560 671 

561Эти ошибки означают, что API получила ваш запрос, но отклонила его содержимое.672Эти ошибки означают, что API получила ваш запрос, но отклонила его содержимое.


791**Что делать:**902**Что делать:**

792 903 

793* {/* max-version: 2.1.155 */}Если вы используете Opus 4.7 или Opus 4.8, сначала запустите `claude update`. Версии до v2.1.156 могут вызвать эту ошибку при обычном использовании инструментов, и `/rewind` не очищает ее.904* {/* max-version: 2.1.155 */}Если вы используете Opus 4.7 или Opus 4.8, сначала запустите `claude update`. Версии до v2.1.156 могут вызвать эту ошибку при обычном использовании инструментов, и `/rewind` не очищает ее.

794* Запустите `/rewind`, или нажмите Esc дважды, чтобы вернуться к контрольной точке перед поврежденным ходом и продолжить оттуда. См. [Checkpointing](/ru/checkpointing) для информации о том, как создаются и восстанавливаются контрольные точки.905* Запустите `/rewind`, или нажмите Esc дважды, чтобы вернуться к checkpoint перед поврежденным ходом и продолжить оттуда. См. [Checkpointing](/ru/checkpointing) для информации о том, как создаются и восстанавливаются checkpoints.

795 906 

796<h3 id="usage-policy-refusal">907<h3 id="usage-policy-refusal">

797 Usage Policy refusal908 Usage Policy refusal


807 918 

808**Что делать:**919**Что делать:**

809 920 

810* Нажмите Esc дважды или запустите `/rewind`, чтобы вернуться к контрольной точке перед ходом, который вызвал отказ, затем переформулируйте или примите другой подход. См. [Checkpointing](/ru/checkpointing).921* Нажмите Esc дважды или запустите `/rewind`, чтобы вернуться к checkpoint перед ходом, который вызвал отказ, затем переформулируйте или примите другой подход. См. [Checkpointing](/ru/checkpointing).

811* Если вы не можете определить, какой ход вызвал это, запустите `/clear`, чтобы начать свежий разговор в том же проекте. Ваш предыдущий разговор сохраняется на диске и остается доступным в `/resume`.922* Если вы не можете определить, какой ход вызвал это, запустите `/clear`, чтобы начать свежий разговор в том же проекте. Ваш предыдущий разговор сохраняется на диске и остается доступным в `/resume`.

812* В [non-interactive mode](/ru/headless) (`-p`), где перемотка недоступна, повторите попытку с переформулированным запросом в новом сеансе без `--continue`. Проверки политики варьируются в зависимости от модели, поэтому переключение на другую модель с помощью `--model` также может разрешить отказ в некоторых случаях.923* В [non-interactive mode](/ru/headless) (`-p`), где перемотка недоступна, повторите попытку с переформулированным запросом в новом сеансе без `--continue`. Проверки политики варьируются в зависимости от модели, поэтому переключение на другую модель с помощью `--model` также может разрешить отказ в некоторых случаях.

813 924 

925<h2 id="command-line-errors">

926 Command-line errors

927</h2>

928 

929Эти ошибки исходят из собственной проверки Claude Code команды `claude`. Claude Code выводит их немедленно, перед созданием сеанса или отправкой любого запроса API.

930 

931<h3 id="conflict-between-bg-and-print">

932 Conflict between --bg and --print

933</h3>

934 

935Это сообщение требует Claude Code v2.1.198 или позже. Вы объединили `--bg` с `-p` или `--print` в одном вызове `claude`. `--bg` запускает [background session](/ru/agent-view#from-your-shell), к которому вы позже присоединяетесь с помощью `claude agents`, в то время как `--print` работает [non-interactively](/ru/headless) и никогда не запускает интерактивный сеанс, к которому `claude agents` присоединяется. До версии 2.1.198 эта комбинация молча создавала фоновое задание, которое никогда не могло быть присоединено.

936 

937```text theme={null}

938--bg and --print conflict: --print never starts the interactive session that `claude agents` attaches to, so the job would be unattachable. The prompt is the positional — drop --print: `claude --bg '<task>'`.

939```

940 

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

942 

943* Удалите `-p` или `--print`. `--bg` принимает запрос как позиционный аргумент, поэтому `claude --bg "<task>"` — это полная команда. См. [Dispatch new agents from your shell](/ru/agent-view#from-your-shell).

944* Чтобы запустить запрос неинтерактивно и вывести результат вместо создания фонового сеанса, удалите `--bg` и запустите `claude -p "<task>"`

945 

814<h2 id="responses-seem-lower-quality-than-usual">946<h2 id="responses-seem-lower-quality-than-usual">

815 Responses seem lower quality than usual947 Responses seem lower quality than usual

816</h2>948</h2>


835Если качество все ещё кажется неправильным после проверки вышеуказанного, запустите `/feedback` и опишите, что вы ожидали в сравнении с тем, что вы получили. Обратная связь, отправленная таким образом, включает стенограмму разговора, что является самым быстрым способом для Anthropic диагностировать реальную регрессию. См. [Report an error](#report-an-error), если `/feedback` недоступна в вашей среде.967Если качество все ещё кажется неправильным после проверки вышеуказанного, запустите `/feedback` и опишите, что вы ожидали в сравнении с тем, что вы получили. Обратная связь, отправленная таким образом, включает стенограмму разговора, что является самым быстрым способом для Anthropic диагностировать реальную регрессию. См. [Report an error](#report-an-error), если `/feedback` недоступна в вашей среде.

836 968 

837<h2 id="report-an-error">969<h2 id="report-an-error">

838 Сообщить об ошибке970 Report an error

839</h2>971</h2>

840 972 

841На этой странице рассматриваются ошибки из Claude API. Для ошибок из других компонентов Claude Code см. соответствующее руководство:973Для ошибок из компонентов, которые эта страница не охватывает, см. соответствующее руководство:

842 974 

843* MCP server не удалось подключиться или аутентифицироваться: [MCP](/ru/mcp)975* MCP server не удалось подключиться или аутентифицироваться: [MCP](/ru/mcp)

844* Скрипт hook не удалось или заблокировал инструмент: [Debug hooks](/ru/hooks#debug-hooks)976* Hook script не удалось или заблокировал инструмент: [Debug hooks](/ru/hooks#debug-hooks)

845* Permission denied или ошибки файловой системы во время установки: [Troubleshoot installation and login](/ru/troubleshoot-install)977* Permission denied или ошибки файловой системы во время установки: [Troubleshoot installation and login](/ru/troubleshoot-install)

846 978 

847Если ошибка не указана здесь или предложенное исправление не помогает:979Если ошибка не указана здесь или предложенное исправление не помогает:

fullscreen.md +2 −2

Details

58* **Клик по предложению в команде `/` или списке файлов `@`** для его принятия. Наведение курсора выделяет строку под вашим курсором.58* **Клик по предложению в команде `/` или списке файлов `@`** для его принятия. Наведение курсора выделяет строку под вашим курсором.

59* **Клик по опции в меню выбора** для её выбора. Это охватывает запросы разрешений, `/model`, `/config` и другие диалоги, которые показывают список опций. Наведение курсора показывает указатель на строке под вашим курсором. {/* min-version: 2.1.187 */}Требуется Claude Code v2.1.187 или позже.59* **Клик по опции в меню выбора** для её выбора. Это охватывает запросы разрешений, `/model`, `/config` и другие диалоги, которые показывают список опций. Наведение курсора показывает указатель на строке под вашим курсором. {/* min-version: 2.1.187 */}Требуется Claude Code v2.1.187 или позже.

60* **Клик по свёрнутому результату инструмента** для его развёртывания и просмотра полного выходного сигнала. Клик снова для свёртывания. Вызов инструмента и его результат развёртываются вместе. Кликабельны только сообщения, которые имеют больше для отображения.60* **Клик по свёрнутому результату инструмента** для его развёртывания и просмотра полного выходного сигнала. Клик снова для свёртывания. Вызов инструмента и его результат развёртываются вместе. Кликабельны только сообщения, которые имеют больше для отображения.

61* **Удерживайте `Cmd` на macOS или `Ctrl` на Linux и Windows и клик по URL или пути к файлу** для его открытия. Пути к файлам в выходных данных инструмента, такие как те, которые выводятся после Edit или Write, открываются в вашем приложении по умолчанию. Простые `http://` и `https://` URL открываются в вашем браузере. {/* min-version: 2.1.181 */}Начиная с версии 2.1.181, простой клик без удержания `Cmd` или `Ctrl` больше не открывает ссылки, что соответствует поведению встроенного терминала. Во встроенном терминале VS Code и аналогичных терминалах на основе xterm.js Claude Code уступает собственному обработчику ссылок терминала, который использует тот же жест.61* **Удерживайте `Cmd` на macOS или `Ctrl` на Linux и Windows и клик по URL или пути к файлу** для его открытия. Пути к файлам в выходных данных инструмента, такие как те, которые выводятся после Edit или Write, открываются в вашем приложении по умолчанию. Простые `http://` и `https://` URL открываются в вашем браузере. {/* min-version: 2.1.181 */}Начиная с версии 2.1.181, простой клик без удержания `Cmd` или `Ctrl` больше не открывает ссылки, что соответствует поведению встроенного терминала. Некоторые терминалы macOS перенаправляют `Cmd`+клик запущенному приложению вместо открытия ссылки самостоятельно, и протокол мыши терминала не имеет способа кодировать клавишу `Cmd`, поэтому Claude Code получает это как простой клик. В Ghostty и {/* min-version: 2.1.198 */}начиная с версии 2.1.198 в Warp на macOS, Claude Code это обнаруживает и позволяет простому клику по ссылке открыть её, а удержание `Cmd` всё ещё работает. Во встроенном терминале VS Code и аналогичных терминалах на основе xterm.js Claude Code уступает собственному обработчику ссылок терминала, который использует тот же жест.

62* **Клик и перетаскивание** для выделения текста в любом месте диалога. Двойной клик выделяет слово, соответствуя границам слов iTerm2, поэтому путь к файлу выделяется как одна единица. Тройной клик выделяет строку.62* **Клик и перетаскивание** для выделения текста в любом месте диалога. Двойной клик выделяет слово, соответствуя границам слов iTerm2, поэтому путь к файлу выделяется как одна единица. {/* min-version: 2.1.198 */}Начиная с версии 2.1.198, двойной клик по URL выделяет весь URL, включая схему. Тройной клик выделяет строку.

63* **Прокрутка колесом мыши** для перемещения по диалогу.63* **Прокрутка колесом мыши** для перемещения по диалогу.

64 64 

65Выделенный текст копируется в буфер обмена автоматически при отпускании мыши. Чтобы отключить это, переключите Copy on select в `/config`.65Выделенный текст копируется в буфер обмена автоматически при отпускании мыши. Чтобы отключить это, переключите Copy on select в `/config`.

gateways.md +1 −1

Details

44 Claude apps gateway44 Claude apps gateway

45</h3>45</h3>

46 46 

47Claude apps gateway — это самостоятельно размещаемый шлюз Anthropic, включенный в бинарный файл `claude`. Он маршрутизирует на Amazon Bedrock, Google Cloud, Microsoft Foundry или API Anthropic в качестве восходящего потока. Разработчики входят с помощью вашего корпоративного поставщика удостоверений через `/login`, шлюз обеспечивает доступ к модели и [управляемые параметры](/ru/permissions#managed-settings) по группе IdP, и он выдает метрики использования [OpenTelemetry Protocol (OTLP)](/ru/monitoring-usage) в ваш собственный стек наблюдаемости.47Claude apps gateway — это самостоятельно размещаемый шлюз Anthropic, включенный в бинарный файл `claude`. Он маршрутизирует на Amazon Bedrock, Claude Platform on AWS, Google Cloud, Microsoft Foundry или API Anthropic в качестве восходящего потока. Разработчики входят с помощью вашего корпоративного поставщика удостоверений через `/login`, шлюз обеспечивает доступ к модели и [управляемые параметры](/ru/permissions#managed-settings) по группе IdP, и он выдает метрики использования [OpenTelemetry Protocol (OTLP)](/ru/monitoring-usage) в ваш собственный стек наблюдаемости.

48 48 

49Поскольку он создается и тестируется вместе с каждым выпуском Claude Code, он перенаправляет заголовки и поля запроса, которые отправляет Claude Code. Шлюз, поддерживаемый отдельно, требует обновления [правил перенаправления](/ru/llm-gateway-protocol#forward-as-open-lists) по мере изменения этих заголовков и полей с каждым выпуском; Claude apps gateway выпускается вместе с CLI, поэтому нет списка для поддержания в актуальном состоянии. См. [Доступность и ограничения](/ru/claude-apps-gateway#availability-and-limitations) для небольшого набора функций, которые ведут себя иначе в сеансе шлюза.49Поскольку он создается и тестируется вместе с каждым выпуском Claude Code, он перенаправляет заголовки и поля запроса, которые отправляет Claude Code. Шлюз, поддерживаемый отдельно, требует обновления [правил перенаправления](/ru/llm-gateway-protocol#forward-as-open-lists) по мере изменения этих заголовков и полей с каждым выпуском; Claude apps gateway выпускается вместе с CLI, поэтому нет списка для поддержания в актуальном состоянии. См. [Доступность и ограничения](/ru/claude-apps-gateway#availability-and-limitations) для небольшого набора функций, которые ведут себя иначе в сеансе шлюза.

50 50 

hooks.md +80 −46

Details

16 Жизненный цикл hook16 Жизненный цикл hook

17</h2>17</h2>

18 18 

19Hooks срабатывают в определённых точках во время сеанса Claude Code. Когда событие срабатывает и совпадает с фильтром, Claude Code передаёт JSON-контекст события вашему обработчику hook. Для command hooks входные данные поступают на stdin. Для HTTP hooks они поступают как тело POST-запроса. Ваш обработчик может затем проверить входные данные, выполнить действие и опционально вернуть решение. События срабатывают в трёх ритмах: один раз за сеанс (`SessionStart`, `SessionEnd`), один раз за ход (`UserPromptSubmit`, `Stop`, `StopFailure`) и при каждом вызове инструмента внутри агентного цикла (`PreToolUse`, `PostToolUse`):19Hooks срабатывают в определённых точках во время сеанса Claude Code. Когда событие срабатывает и совпадает с фильтром, Claude Code передаёт JSON-контекст события вашему обработчику hook. Для command hooks входные данные поступают на stdin. Для HTTP hooks они поступают как тело POST-запроса. Ваш обработчик может затем проверить входные данные, выполнить действие и опционально вернуть решение.

20 

21События срабатывают в трёх ритмах:

22 

23* один раз за сеанс: `SessionStart` и `SessionEnd`

24* один раз за ход: `UserPromptSubmit`, `Stop` и `StopFailure`

25* при каждом вызове инструмента внутри агентного цикла: `PreToolUse` и `PostToolUse`

20 26 

21<div style={{maxWidth: "500px", margin: "0 auto"}}>27<div style={{maxWidth: "500px", margin: "0 auto"}}>

22 <Frame>28 <Frame>


214| `SessionStart` | как сеанс начался | `startup`, `resume`, `clear`, `compact` |220| `SessionStart` | как сеанс начался | `startup`, `resume`, `clear`, `compact` |

215| `Setup` | какой флаг CLI запустил setup | `init`, `maintenance` |221| `Setup` | какой флаг CLI запустил setup | `init`, `maintenance` |

216| `SessionEnd` | почему сеанс закончился | `clear`, `resume`, `logout`, `prompt_input_exit`, `bypass_permissions_disabled`, `other` |222| `SessionEnd` | почему сеанс закончился | `clear`, `resume`, `logout`, `prompt_input_exit`, `bypass_permissions_disabled`, `other` |

217| `Notification` | тип уведомления | `permission_prompt`, `idle_prompt`, `auth_success`, `elicitation_dialog`, `elicitation_complete`, `elicitation_response` |223| `Notification` | тип уведомления | `permission_prompt`, `idle_prompt`, `auth_success`, `elicitation_dialog`, `elicitation_complete`, `elicitation_response`, `agent_needs_input`, `agent_completed` |

218| `SubagentStart` | тип агента | `general-purpose`, `Explore`, `Plan`, пользовательские имена агентов или имена с областью плагина, такие как `^my-plugin:reviewer$` |224| `SubagentStart` | тип агента | `general-purpose`, `Explore`, `Plan`, пользовательские имена агентов или имена с областью плагина, такие как `^my-plugin:reviewer$` |

219| `PreCompact`, `PostCompact` | что вызвало компактирование | `manual`, `auto` |225| `PreCompact`, `PostCompact` | что вызвало компактирование | `manual`, `auto` |

220| `SubagentStop` | тип агента | те же значения, что и `SubagentStart` |226| `SubagentStop` | тип агента | те же значения, что и `SubagentStart` |


317 323 

318Все совпадающие hooks запускаются параллельно, и идентичные обработчики автоматически дедублируются. Command hooks дедублируются по строке команды и `args`, а HTTP hooks дедублируются по URL.324Все совпадающие hooks запускаются параллельно, и идентичные обработчики автоматически дедублируются. Command hooks дедублируются по строке команды и `args`, а HTTP hooks дедублируются по URL.

319 325 

320Обработчики запускаются в текущем каталоге с окружением Claude Code. Переменная окружения `$CLAUDE_CODE_REMOTE` устанавливается на `"true"` в удалённых веб-окружениях и не устанавливается в локальном CLI.326Обработчики запускаются в текущем каталоге с окружением Claude Code. Переменная окружения `$CLAUDE_CODE_REMOTE` устанавливается на `"true"` в удалённых веб-окружениях и не устанавливается в локальном CLI. {/* min-version: 2.1.199 */}Начиная с v2.1.199, [`$CLAUDE_CODE_BRIDGE_SESSION_ID`](/ru/env-vars) устанавливается на ID сеанса [Remote Control](/ru/remote-control) пока локальный сеанс имеет активное соединение Remote Control.

321 327 

322<h4 id="common-fields">328<h4 id="common-fields">

323 Common fields329 Common fields


704Exit code 2 — это способ hook сигнализировать "стоп, не делай этого". Эффект зависит от события, потому что некоторые события представляют действия, которые могут быть заблокированы (например, вызов инструмента, который ещё не произошёл), а другие представляют вещи, которые уже произошли или не могут быть предотвращены.710Exit code 2 — это способ hook сигнализировать "стоп, не делай этого". Эффект зависит от события, потому что некоторые события представляют действия, которые могут быть заблокированы (например, вызов инструмента, который ещё не произошёл), а другие представляют вещи, которые уже произошли или не могут быть предотвращены.

705 711 

706| Hook событие | Может блокировать? | Что происходит при exit 2 |712| Hook событие | Может блокировать? | Что происходит при exit 2 |

707| :-------------------- | :----------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------- |713| :-------------------- | :----------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

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

709| `PermissionRequest` | Да | Отклоняет разрешение |715| `PermissionRequest` | Да | Отклоняет разрешение |

710| `UserPromptSubmit` | Да | Блокирует обработку подсказки и стирает подсказку |716| `UserPromptSubmit` | Да | Блокирует обработку подсказки и стирает подсказку |

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

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

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

714| `TeammateIdle` | Да | Предотвращает переход товарища в режим ожидания (товарищ продолжает работать) |720| `TeammateIdle` | Да | Предотвращает переход товарища в режим ожидания, так что он продолжает работать |

715| `TaskCreated` | Да | Откатывает создание задачи |721| `TaskCreated` | Да | Откатывает создание задачи |

716| `TaskCompleted` | Да | Предотвращает отметку задачи как завершённой |722| `TaskCompleted` | Да | Предотвращает отметку задачи как завершённой |

717| `ConfigChange` | Да | Блокирует применение изменения конфигурации (кроме `policy_settings`) |723| `ConfigChange` | Да | Блокирует применение изменения конфигурации (кроме `policy_settings`) |

718| `StopFailure` | Нет | Выход и код выхода игнорируются |724| `StopFailure` | Нет | Выход и код выхода игнорируются |

719| `PostToolUse` | Нет | Показывает stderr Claude (инструмент уже запустился) |725| `PostToolUse` | Нет | Показывает stderr Claude; инструмент уже запустился |

720| `PostToolUseFailure` | Нет | Показывает stderr Claude (инструмент уже не удался) |726| `PostToolUseFailure` | Нет | Показывает stderr Claude; инструмент уже не удался |

721| `PostToolBatch` | Да | Останавливает цикл агента перед следующим вызовом модели |727| `PostToolBatch` | Да | Останавливает цикл агента перед следующим вызовом модели |

722| `PermissionDenied` | Нет | Код выхода и stderr игнорируются (отказ уже произошёл). Используйте JSON `hookSpecificOutput.retry: true` для сообщения модели, что она может повторить попытку |728| `PermissionDenied` | Нет | Код выхода и stderr игнорируются, потому что отказ уже произошёл. Используйте JSON `hookSpecificOutput.retry: true` для сообщения модели, что она может повторить попытку |

723| `Notification` | Нет | Показывает stderr только пользователю |729| `Notification` | Нет | Показывает stderr только пользователю |

724| `SubagentStart` | Нет | Показывает stderr только пользователю |730| `SubagentStart` | Нет | Показывает stderr только пользователю |

725| `SessionStart` | Нет | Показывает stderr только пользователю |731| `SessionStart` | Нет | Показывает stderr только пользователю |


736| `InstructionsLoaded` | Нет | Код выхода игнорируется |742| `InstructionsLoaded` | Нет | Код выхода игнорируется |

737| `MessageDisplay` | Нет | Исходный текст отображается |743| `MessageDisplay` | Нет | Исходный текст отображается |

738 744 

745Для `SessionStart`, `Setup` и `SubagentStart` stderr exit code 2 отображается в транскрипте как уведомление об ошибке `<hook name> hook error`, так же как [неблокирующая ошибка](#exit-code-output). Claude не видит это, и сеанс или subagent продолжается. Для `SubagentStart` уведомление появляется в собственном транскрипте subagent, а не в родительском разговоре.

746 

747Начиная с Claude Code v2.1.199, `SessionStart`, `Setup` и `SubagentStart` показывают stderr exit code 2 в транскрипте. Более ранние версии записывали это только в журнал отладки.

748 

739<h3 id="http-response-handling">749<h3 id="http-response-handling">

740 Обработка HTTP ответа750 Обработка HTTP ответа

741</h3>751</h3>


963 SessionStart input973 SessionStart input

964</h4>974</h4>

965 975 

966В дополнение к [общим полям входа](#common-input-fields), SessionStart hooks получают `source` и опционально `model`, `agent_type` и `session_title`. Поле `source` указывает, как был запущен сеанс: `"startup"` для новых сеансов, `"resume"` для возобновлённых сеансов, `"clear"` после `/clear` или `"compact"` после компактирования. Поле `model` содержит идентификатор активной модели. Оно может быть опущено, например после `/clear` или когда сеанс восстанавливается через восстановление разговора, поэтому проверьте поле перед его чтением. Если вы запустите Claude Code с `claude --agent <name>`, поле `agent_type` содержит имя агента. Поле `session_title` содержит текущее название сеанса, если оно уже установлено, например через `--name` или `/rename`. Hook, который выдаёт `sessionTitle`, может сначала проверить `session_title`, чтобы избежать перезаписи названия, которое пользователь установил явно.976В дополнение к [общим полям входа](#common-input-fields), SessionStart hooks получают `source` и опционально `model`, `agent_type` и `session_title`:

977 

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

979| :-------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

980| `source` | Как был запущен сеанс: `"startup"` для новых сеансов, `"resume"` для возобновлённых сеансов, `"clear"` после `/clear` или `"compact"` после компактирования |

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

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

983| `session_title` | Текущее название сеанса, если оно уже установлено, например через `--name` или `/rename`. Hook, который выдаёт `sessionTitle`, может сначала проверить `session_title`, чтобы избежать перезаписи названия, которое пользователь установил явно |

967 984 

968```json theme={null}985```json theme={null}

969{986{


983Любой текст, который ваш скрипт hook выводит на stdout, добавляется как контекст для Claude. В дополнение к [JSON полям выхода](#json-output), доступным для всех hooks, вы можете вернуть эти поля, специфичные для события:1000Любой текст, который ваш скрипт hook выводит на stdout, добавляется как контекст для Claude. В дополнение к [JSON полям выхода](#json-output), доступным для всех hooks, вы можете вернуть эти поля, специфичные для события:

984 1001 

985| Поле | Описание |1002| Поле | Описание |

986| :------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1003| :------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

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

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

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

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

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


1062 Setup1079 Setup

1063</h3>1080</h3>

1064 1081 

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

1066 1083 

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

1068 1085 


1071| `init` | `claude --init-only` или `claude -p --init` |1088| `init` | `claude --init-only` или `claude -p --init` |

1072| `maintenance` | `claude -p --maintenance` |1089| `maintenance` | `claude -p --maintenance` |

1073 1090 

1074`--init-only` запускает Setup hooks и SessionStart hooks с фильтром `startup`, затем выходит без запуска разговора. `--init` и `--maintenance` срабатывают Setup hooks только при объединении с `-p` (режим печати); в интерактивном сеансе эти два флага в настоящее время не срабатывают Setup hooks.1091`--init-only` запускает Setup hooks и SessionStart hooks с фильтром `startup`, затем выходит без запуска разговора. `--init` и `--maintenance` срабатывают Setup hooks только при объединении с `-p`; в интерактивном сеансе эти два флага в настоящее время не срабатывают Setup hooks.

1075 1092 

1076Поскольку Setup не срабатывает при каждом запуске, плагин, которому нужна установленная зависимость, не может полагаться только на Setup. Практический паттерн — проверить зависимость при первом использовании и установить при отсутствии, например hook или skill, который проверяет `${CLAUDE_PLUGIN_DATA}/node_modules` и запускает `npm install` при отсутствии. См. [persistent data directory](/ru/plugins-reference#persistent-data-directory) для того, где хранить установленные зависимости.1093Поскольку Setup не срабатывает при каждом запуске, плагин, которому нужна установленная зависимость, не может полагаться только на Setup. Практический паттерн — проверить зависимость при первом использовании и установить при отсутствии, например hook или skill, который проверяет `${CLAUDE_PLUGIN_DATA}/node_modules` и запускает `npm install` при отсутствии. См. [persistent data directory](/ru/plugins-reference#persistent-data-directory) для того, где хранить установленные зависимости.

1077 1094 


1095 Setup decision control1112 Setup decision control

1096</h4>1113</h4>

1097 1114 

1098Setup hooks не могут блокировать. При exit code 2 stderr показывается пользователю; при любом другом ненулевом exit code stderr появляется только при запуске с `--verbose`. В обоих случаях выполнение продолжается. Чтобы передать информацию в контекст Claude, верните `additionalContext` в JSON выходе; простой stdout записывается только в журнал отладки. В дополнение к [JSON полям выхода](#json-output), доступным для всех hooks, вы можете вернуть эти поля, специфичные для события:1115Setup hooks не могут блокировать. При exit code 2 stderr показывается пользователю как уведомление об ошибке hook, и выполнение продолжается. В [неинтерактивном режиме](/ru/headless) выход hook появляется только при запуске с `--verbose`. Чтобы передать информацию в контекст Claude, верните `additionalContext` в JSON выходе; простой stdout записывается только в журнал отладки. В дополнение к [JSON полям выхода](#json-output), доступным для всех hooks, вы можете вернуть эти поля, специфичные для события:

1099 1116 

1100| Поле | Описание |1117| Поле | Описание |

1101| :------------------ | :---------------------------------------------------------------------------- |1118| :------------------ | :---------------------------------------------------------------------------- |


1191* **Простой текст stdout**: любой текст, не являющийся JSON, написанный на stdout, добавляется как контекст1208* **Простой текст stdout**: любой текст, не являющийся JSON, написанный на stdout, добавляется как контекст

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

1193 1210 

1194Простой stdout показывается как выход hook в транскрипте. Поле `additionalContext` добавляется более дискретно.1211Простой stdout показывается как выход hook в транскрипте. Значение `additionalContext` внедряется как системное напоминание, которое Claude читает без видимой записи в транскрипте.

1195 1212 

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

1197 1214 


1215}1232}

1216```1233```

1217 1234 

1218<Note>

1219 Формат JSON не требуется для простых случаев использования. Чтобы добавить контекст, вы можете вывести простой текст на stdout с exit code 0. Используйте JSON, когда вам нужно блокировать подсказки или вам нужно более структурированное управление.

1220</Note>

1221 

1222<h3 id="userpromptexpansion">1235<h3 id="userpromptexpansion">

1223 UserPromptExpansion1236 UserPromptExpansion

1224</h3>1237</h3>


1545В `PostToolUse`, `tool_response` для завершённого вызова Agent содержит финальный текст subagent вместе с телеметрией использования. Читайте эти поля для записи затрат для каждого subagent из hook:1558В `PostToolUse`, `tool_response` для завершённого вызова Agent содержит финальный текст subagent вместе с телеметрией использования. Читайте эти поля для записи затрат для каждого subagent из hook:

1546 1559 

1547| Поле | Тип | Пример | Описание |1560| Поле | Тип | Пример | Описание |

1548| :------------------ | :----- | :---------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------- |1561| :------------------ | :----- | :---------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1549| `status` | string | `"completed"` | `"completed"` для синхронных вызовов, `"async_launched"` для `run_in_background: true` |1562| `status` | string | `"completed"` | `"completed"` для синхронных вызовов, `"async_launched"` для фоновых subagents. {/* min-version: 2.1.198 */}Начиная с v2.1.198, subagents запускаются в фоне по умолчанию, поэтому опущенный `run_in_background` также производит `"async_launched"` |

1550| `agentId` | string | `"a4d2c8f1e0b3a297"` | Идентификатор для запуска subagent |1563| `agentId` | string | `"a4d2c8f1e0b3a297"` | Идентификатор для запуска subagent |

1551| `content` | array | `[{"type": "text", "text": "Found 12 endpoints..."}]` | Финальные текстовые блоки subagent |1564| `content` | array | `[{"type": "text", "text": "Found 12 endpoints..."}]` | Финальные текстовые блоки subagent |

1552| `resolvedModel` | string | `"claude-sonnet-4-5"` | Модель, на которой запустился subagent, которая может отличаться от запрошенной модели. {/* min-version: 2.1.174 */}Требует Claude Code v2.1.174 или позже |1565| `resolvedModel` | string | `"claude-sonnet-4-5"` | Модель, на которой запустился subagent, которая может отличаться от запрошенной модели. {/* min-version: 2.1.174 */}Требует Claude Code v2.1.174 или позже |


1555| `totalToolUseCount` | number | `7` | Количество вызовов инструментов, которые сделал subagent |1568| `totalToolUseCount` | number | `7` | Количество вызовов инструментов, которые сделал subagent |

1556| `usage` | object | `{"input_tokens": 8320, ...}` | Разбор токенов по типам: `input_tokens`, `output_tokens`, `cache_creation_input_tokens`, `cache_read_input_tokens` |1569| `usage` | object | `{"input_tokens": 8320, ...}` | Разбор токенов по типам: `input_tokens`, `output_tokens`, `cache_creation_input_tokens`, `cache_read_input_tokens` |

1557 1570 

1558Для вызовов `run_in_background: true`, инструмент возвращается сразу после запуска subagent, поэтому `tool_response` не содержит полей использования. Он имеет `status: "async_launched"`, `agentId`, `description`, `prompt`, `outputFile` и `resolvedModel` вместо этого.1571Для фоновых subagents инструмент возвращается сразу после запуска, поэтому `tool_response` не содержит полей использования. Он имеет `status: "async_launched"`, `agentId`, `description`, `prompt`, `outputFile` и `resolvedModel` вместо этого.

1559 1572 

1560Поле `resolvedModel` называет модель, на которой subagent фактически запустился, что может отличаться от значения `model` в `tool_input`. Оно требует Claude Code v2.1.174 или позже.1573Поле `resolvedModel` называет модель, на которой subagent фактически запустился, что может отличаться от значения `model` в `tool_input`. Оно требует Claude Code v2.1.174 или позже.

1561 1574 


1593Hooks `PreToolUse` могут управлять тем, продолжается ли вызов инструмента. В отличие от других hooks, которые используют верхнеуровневое поле `decision`, PreToolUse возвращает своё решение внутри объекта `hookSpecificOutput`. Это даёт ему более богатое управление: четыре результата (разрешить, отклонить, спросить или отложить) плюс возможность изменить входные данные инструмента перед выполнением.1606Hooks `PreToolUse` могут управлять тем, продолжается ли вызов инструмента. В отличие от других hooks, которые используют верхнеуровневое поле `decision`, PreToolUse возвращает своё решение внутри объекта `hookSpecificOutput`. Это даёт ему более богатое управление: четыре результата (разрешить, отклонить, спросить или отложить) плюс возможность изменить входные данные инструмента перед выполнением.

1594 1607 

1595| Поле | Описание |1608| Поле | Описание |

1596| :------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1609| :------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1597| `permissionDecision` | `"allow"` пропускает диалог разрешения. `"deny"` предотвращает вызов инструмента. `"ask"` предлагает пользователю подтвердить. `"defer"` выходит корректно, чтобы инструмент мог быть возобновлён позже. [Правила отклонения и запроса](/ru/permissions#manage-permissions) всё ещё применяются независимо от того, что возвращает hook |1610| `permissionDecision` | `"allow"` пропускает диалог разрешения, кроме [инструментов, требующих взаимодействия пользователя](#pretooluse-decision-control). `"deny"` предотвращает вызов инструмента. `"ask"` предлагает пользователю подтвердить. `"defer"` выходит корректно, чтобы инструмент мог быть возобновлён позже. [Правила отклонения и запроса](/ru/permissions#manage-permissions) всё ещё применяются независимо от того, что возвращает hook |

1598| `permissionDecisionReason` | Для `"allow"` и `"ask"`, показывается пользователю, но не Claude. Для `"deny"`, показывается Claude. Для `"defer"`, игнорируется |1611| `permissionDecisionReason` | Для `"allow"` и `"ask"`, показывается пользователю, но не Claude. Для `"deny"`, показывается Claude. Для `"defer"`, игнорируется |

1599| `updatedInput` | Изменяет параметры входа инструмента перед выполнением. Заменяет весь объект входа, поэтому включите неизменённые поля наряду с изменёнными. Объедините с `"allow"` для автоматического одобрения или `"ask"` для показа изменённого входа пользователю. Для `"defer"`, игнорируется |1612| `updatedInput` | Изменяет параметры входа инструмента перед выполнением. Заменяет весь объект входа, поэтому включите неизменённые поля наряду с изменёнными. Объедините с `"allow"` для автоматического одобрения или `"ask"` для показа изменённого входа пользователю. Для `"defer"`, игнорируется |

1600| `additionalContext` | Строка, добавленная в контекст Claude наряду с результатом инструмента. Игнорируется при `permissionDecision` равном `"defer"`. См. [Add context for Claude](#add-context-for-claude) |1613| `additionalContext` | Строка, добавленная в контекст Claude наряду с результатом инструмента. Игнорируется при `permissionDecision` равном `"defer"`. См. [Add context for Claude](#add-context-for-claude) |


1619 1632 

1620`AskUserQuestion` и `ExitPlanMode` требуют взаимодействия пользователя и обычно блокируют в [неинтерактивном режиме](/ru/headless) с флагом `-p`. Возврат `permissionDecision: "allow"` вместе с `updatedInput` удовлетворяет этому требованию: hook читает входные данные инструмента из stdin, собирает ответ через ваш собственный UI и возвращает его в `updatedInput`, чтобы инструмент запустился без запроса. Возврат только `"allow"` недостаточен для этих инструментов. Для `AskUserQuestion` повторите исходный массив `questions` и добавьте объект [`answers`](#askuserquestion), соответствующий тексту каждого вопроса выбранному ответу.1633`AskUserQuestion` и `ExitPlanMode` требуют взаимодействия пользователя и обычно блокируют в [неинтерактивном режиме](/ru/headless) с флагом `-p`. Возврат `permissionDecision: "allow"` вместе с `updatedInput` удовлетворяет этому требованию: hook читает входные данные инструмента из stdin, собирает ответ через ваш собственный UI и возвращает его в `updatedInput`, чтобы инструмент запустился без запроса. Возврат только `"allow"` недостаточен для этих инструментов. Для `AskUserQuestion` повторите исходный массив `questions` и добавьте объект [`answers`](#askuserquestion), соответствующий тексту каждого вопроса выбранному ответу.

1621 1634 

1635Начиная с v2.1.199, инструмент MCP, чей сервер помечает его с помощью [`_meta["anthropic/requiresUserInteraction"]`](/ru/mcp#require-approval-for-a-specific-tool), более строг: hook не может пропустить его диалог одобрения с помощью `"allow"`, с `updatedInput` или без, потому что Claude Code не может подтвердить, что hook собрал взаимодействие, которое нужно инструменту.

1636 

1622<Note>1637<Note>

1623 PreToolUse ранее использовал верхнеуровневые поля `decision` и `reason`, но они устарели для этого события. Используйте `hookSpecificOutput.permissionDecision` и `hookSpecificOutput.permissionDecisionReason` вместо этого. Устаревшие значения `"approve"` и `"block"` соответствуют `"allow"` и `"deny"` соответственно. Другие события, такие как PostToolUse и Stop, продолжают использовать верхнеуровневые `decision` и `reason` как их текущий формат.1638 PreToolUse ранее использовал верхнеуровневые поля `decision` и `reason`, но они устарели для этого события. Используйте `hookSpecificOutput.permissionDecision` и `hookSpecificOutput.permissionDecisionReason` вместо этого. Устаревшие значения `"approve"` и `"block"` соответствуют `"allow"` и `"deny"` соответственно. Другие события, такие как PostToolUse и Stop, продолжают использовать верхнеуровневые `decision` и `reason` как их текущий формат.

1624</Note>1639</Note>


2016 Notification2031 Notification

2017</h3>2032</h3>

2018 2033 

2019Запускается при отправке Claude Code уведомлений. Совпадает с типом уведомления: `permission_prompt`, `idle_prompt`, `auth_success`, `elicitation_dialog`, `elicitation_complete`, `elicitation_response`. Опустите фильтр для запуска hooks для всех типов уведомлений.2034Запускается при отправке Claude Code уведомлений. Совпадает с типом уведомления. Опустите фильтр для запуска hooks для всех типов уведомлений.

2035 

2036| Фильтр | Когда он срабатывает |

2037| :--------------------- | :------------------------------------------------------------------------------------------------------------------ |

2038| `permission_prompt` | Claude нуждается в одобрении использования инструмента |

2039| `idle_prompt` | Claude завершил работу и ждёт вашей следующей подсказки |

2040| `auth_success` | Аутентификация завершена |

2041| `elicitation_dialog` | MCP сервер открывает форму запроса |

2042| `elicitation_complete` | Форма запроса MCP отправлена или отклонена |

2043| `elicitation_response` | Ответ на запрос MCP отправлен обратно на сервер |

2044| `agent_needs_input` | Фоновый сеанс начинает ждать вашего ввода. Срабатывает только при открытом [agent view](/ru/agent-view) в терминале |

2045| `agent_completed` | Фоновый сеанс завершается или не удаётся. Срабатывает только при открытом [agent view](/ru/agent-view) в терминале |

2046 

2047Типы `agent_needs_input` и `agent_completed` требуют Claude Code v2.1.198 или позже.

2020 2048 

2021Используйте отдельные фильтры для запуска разных обработчиков в зависимости от типа уведомления. Эта конфигурация запускает скрипт оповещения, специфичный для разрешения, когда Claude нуждается в одобрении разрешения, и другое уведомление, когда Claude был неактивен:2049Используйте отдельные фильтры для запуска разных обработчиков в зависимости от типа уведомления. Эта конфигурация запускает скрипт оповещения, специфичный для разрешения, когда Claude нуждается в одобрении разрешения, и другое уведомление, когда Claude был неактивен:

2022 2050 


2079 SubagentStart input2107 SubagentStart input

2080</h4>2108</h4>

2081 2109 

2082В дополнение к [общим полям входа](#common-input-fields), SubagentStart hooks получают `agent_id` с уникальным идентификатором для subagent и `agent_type` с именем агента (встроенные агенты, такие как `"general-purpose"`, `"Explore"`, `"Plan"` или пользовательские имена агентов).2110В дополнение к [общим полям входа](#common-input-fields), SubagentStart hooks получают `agent_id` с уникальным идентификатором для subagent и `agent_type` с именем агента, которое фильтр использует для фильтрации.

2083 2111 

2084```json theme={null}2112```json theme={null}

2085{2113{


2561В дополнение к [JSON полям выхода](#json-output), доступным для всех hooks, CwdChanged hooks могут вернуть `watchPaths` для динамической установки, какие пути файлов [FileChanged](#filechanged) отслеживает:2589В дополнение к [JSON полям выхода](#json-output), доступным для всех hooks, CwdChanged hooks могут вернуть `watchPaths` для динамической установки, какие пути файлов [FileChanged](#filechanged) отслеживает:

2562 2590 

2563| Поле | Описание |2591| Поле | Описание |

2564| :----------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |2592| :----------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

2565| `watchPaths` | Массив абсолютных путей. Заменяет текущий динамический список наблюдения (пути из конфигурации `matcher` всегда отслеживаются). Возврат пустого массива очищает динамический список, что типично при входе в новый каталог |2593| `watchPaths` | Массив абсолютных путей. Заменяет текущий динамический список наблюдения. Пути из конфигурации `matcher` всегда отслеживаются. Возврат пустого массива очищает динамический список, что типично при входе в новый каталог |

2566 2594 

2567CwdChanged hooks не имеют управления решением. Они не могут блокировать изменение каталога.2595CwdChanged hooks не имеют управления решением. Они не могут блокировать изменение каталога.

2568 2596 


2586В дополнение к [общим полям входа](#common-input-fields), FileChanged hooks получают `file_path` и `event`.2614В дополнение к [общим полям входа](#common-input-fields), FileChanged hooks получают `file_path` и `event`.

2587 2615 

2588| Поле | Описание |2616| Поле | Описание |

2589| :---------- | :------------------------------------------------------------------------------------------- |2617| :---------- | :---------------------------------------------------------------------------------------------------------------- |

2590| `file_path` | Абсолютный путь к файлу, который изменился |2618| `file_path` | Абсолютный путь к файлу, который изменился |

2591| `event` | Что произошло: `"change"` (файл изменён), `"add"` (файл создан) или `"unlink"` (файл удалён) |2619| `event` | Что произошло: `"change"` для изменённого файла, `"add"` для созданного файла или `"unlink"` для удалённого файла |

2592 2620 

2593```json theme={null}2621```json theme={null}

2594{2622{


2608В дополнение к [JSON полям выхода](#json-output), доступным для всех hooks, FileChanged hooks могут вернуть `watchPaths` для динамического обновления, какие пути файлов отслеживаются:2636В дополнение к [JSON полям выхода](#json-output), доступным для всех hooks, FileChanged hooks могут вернуть `watchPaths` для динамического обновления, какие пути файлов отслеживаются:

2609 2637 

2610| Поле | Описание |2638| Поле | Описание |

2611| :----------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |2639| :----------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

2612| `watchPaths` | Массив абсолютных путей. Заменяет текущий динамический список наблюдения (пути из конфигурации `matcher` всегда отслеживаются). Используйте это, когда ваш скрипт hook обнаруживает дополнительные файлы для отслеживания на основе изменённого файла |2640| `watchPaths` | Массив абсолютных путей. Заменяет текущий динамический список наблюдения. Пути из конфигурации `matcher` всегда отслеживаются. Используйте это, когда ваш скрипт hook обнаруживает дополнительные файлы для отслеживания на основе изменённого файла |

2613 2641 

2614FileChanged hooks не имеют управления решением. Они не могут блокировать изменение файла от возникновения.2642FileChanged hooks не имеют управления решением. Они не могут блокировать изменение файла от возникновения.

2615 2643 


2617 WorktreeCreate2645 WorktreeCreate

2618</h3>2646</h3>

2619 2647 

2620Когда вы запускаете `claude --worktree` или [subagent использует `isolation: "worktree"`](/ru/sub-agents#choose-the-subagent-scope), Claude Code создаёт изолированную рабочую копию, используя `git worktree`. Если вы настроите hook WorktreeCreate, он заменяет поведение git по умолчанию, позволяя вам использовать другую систему контроля версий, такую как SVN, Perforce или Mercurial.2648Запускается при создании worktree, либо из `claude --worktree`, либо из [subagent, использующего `isolation: "worktree"`](/ru/sub-agents#choose-the-subagent-scope). По умолчанию Claude Code создаёт изолированную рабочую копию с помощью `git worktree`. Настройка hook WorktreeCreate заменяет это поведение git по умолчанию, позволяя вам использовать другую систему контроля версий, такую как SVN, Perforce или Mercurial.

2621 2649 

2622Потому что hook заменяет поведение по умолчанию полностью, [`.worktreeinclude`](/ru/worktrees#copy-gitignored-files-into-worktrees) не обрабатывается. Если вам нужно скопировать локальные файлы конфигурации, такие как `.env`, в новый worktree, сделайте это внутри вашего скрипта hook.2650Потому что hook заменяет поведение по умолчанию полностью, [`.worktreeinclude`](/ru/worktrees#copy-gitignored-files-into-worktrees) не обрабатывается. Если вам нужно скопировать локальные файлы конфигурации, такие как `.env`, в новый worktree, сделайте это внутри вашего скрипта hook.

2623 2651 


2648 WorktreeCreate input2676 WorktreeCreate input

2649</h4>2677</h4>

2650 2678 

2651В дополнение к [общим полям входа](#common-input-fields), WorktreeCreate hooks получают поле `name`. Это идентификатор slug для нового worktree, либо указанный пользователем, либо автоматически сгенерированный (например, `bold-oak-a3f2`).2679В дополнение к [общим полям входа](#common-input-fields), WorktreeCreate hooks получают поле `name`. Это идентификатор slug для нового worktree, либо указанный пользователем, либо автоматически сгенерированный, например `bold-oak-a3f2`.

2652 2680 

2653```json theme={null}2681```json theme={null}

2654{2682{


2675 WorktreeRemove2703 WorktreeRemove

2676</h3>2704</h3>

2677 2705 

2678Аналог очистки для [WorktreeCreate](#worktreecreate). Этот hook срабатывает при удалении worktree, либо при выходе из сеанса `--worktree` и выборе его удаления, либо при завершении subagent с `isolation: "worktree"`. Для git-based worktrees Claude обрабатывает очистку автоматически с `git worktree remove`. Если вы настроили hook WorktreeCreate для системы контроля версий, не основанной на git, объедините его с hook WorktreeRemove для обработки очистки. Без него каталог worktree остаётся на диске.2706Запускается при удалении worktree, либо при выходе из сеанса `--worktree` и выборе его удаления, либо при завершении subagent с `isolation: "worktree"`. Это аналог очистки для [WorktreeCreate](#worktreecreate).

2707 

2708Для git-based worktrees Claude Code обрабатывает очистку автоматически с помощью `git worktree remove`. Если вы настроили hook WorktreeCreate для системы контроля версий, не основанной на git, объедините его с hook WorktreeRemove для обработки очистки. Без него каталог worktree остаётся на диске.

2679 2709 

2680Claude Code передаёт путь, который WorktreeCreate вывел на stdout, как `worktree_path` во входных данных hook. Этот пример читает этот путь и удаляет каталог:2710Claude Code передаёт путь, который WorktreeCreate вывел на stdout, как `worktree_path` во входных данных hook. Этот пример читает этот путь и удаляет каталог:

2681 2711 


2801 SessionEnd input2831 SessionEnd input

2802</h4>2832</h4>

2803 2833 

2804В дополнение к [общим полям входа](#common-input-fields), SessionEnd hooks получают поле `reason`, указывающее, почему сеанс закончился. См. таблиц выше для всех значений.2834В дополнение к [общим полям входа](#common-input-fields), SessionEnd hooks получают поле `reason`, указывающее, почему сеанс закончился. См. таблицу выше для всех значений.

2805 2835 

2806```json theme={null}2836```json theme={null}

2807{2837{


2815 2845 

2816SessionEnd hooks не имеют управления решением. Они не могут блокировать завершение сеанса, но могут выполнять задачи очистки.2846SessionEnd hooks не имеют управления решением. Они не могут блокировать завершение сеанса, но могут выполнять задачи очистки.

2817 2847 

2818SessionEnd hooks имеют таймаут по умолчанию 1,5 секунды. Это применяется как к выходу из сеанса, так и к `/clear` и переключению сеансов через интерактивный `/resume`. Если hook нуждается в большем времени, установите поле `timeout` в per-hook конфигурации hook. Общий бюджет автоматически повышается до наибольшего per-hook таймаута, настроенного в файлах настроек, до 60 секунд. Таймауты, установленные на hooks, предоставленные плагинами, не повышают бюджет. Чтобы явно переопределить бюджет, установите переменную окружения `CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS` в миллисекундах.2848SessionEnd hooks имеют таймаут по умолчанию 1,5 секунды. Это применяется как к выходу из сеанса, так и к `/clear` и переключению сеансов через интерактивный `/resume`. Если hook нуждается в большем времени, установите поле `timeout` в конфигурации hook. Общий бюджет автоматически повышается до наибольшего per-hook таймаута, настроенного в файлах настроек, до 60 секунд. Таймауты, установленные на hooks, предоставленные плагинами, не повышают бюджет. Чтобы явно переопределить бюджет, установите переменную окружения `CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS` в миллисекундах.

2819 2849 

2820```bash theme={null}2850```bash theme={null}

2821CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS=5000 claude2851CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS=5000 claude


3060* `PostToolUseFailure`, `TaskCreated` и `TaskCompleted`: причина возвращается Claude как ошибка инструмента, аналогично `PreToolUse`3090* `PostToolUseFailure`, `TaskCreated` и `TaskCompleted`: причина возвращается Claude как ошибка инструмента, аналогично `PreToolUse`

3061* `TeammateIdle`: по умолчанию товарищ по команде останавливается и причина появляется как строка предупреждения. Установите `continueOnBlock: true` для передачи причины обратно товарищу по команде и продолжения его работы вместо этого3091* `TeammateIdle`: по умолчанию товарищ по команде останавливается и причина появляется как строка предупреждения. Установите `continueOnBlock: true` для передачи причины обратно товарищу по команде и продолжения его работы вместо этого

3062* `PermissionRequest`: `ok: false` не имеет эффекта. Чтобы отклонить одобрение из hook, используйте [command hook](#command-hook-fields), возвращающий `hookSpecificOutput.decision.behavior: "deny"`3092* `PermissionRequest`: `ok: false` не имеет эффекта. Чтобы отклонить одобрение из hook, используйте [command hook](#command-hook-fields), возвращающий `hookSpecificOutput.decision.behavior: "deny"`

3063* `PermissionDenied`: `ok: false` не имеет эффекта, потому что отказ уже произошёл. Единственный результат, который это событие читает, это `hookSpecificOutput.retry`, который prompt и agent hooks не могут установить они запускаются на этом событии, но их результат отбрасывается. Используйте [command hook](#command-hook-fields) для возврата `retry`3093* `PermissionDenied`: `ok: false` не имеет эффекта, потому что отказ уже произошёл. Единственный результат, который это событие читает, это `hookSpecificOutput.retry`, который prompt и agent hooks не могут установить. Они запускаются на этом событии, но их результат отбрасывается. Используйте [command hook](#command-hook-fields) для возврата `retry`

3064 3094 

3065Если вам нужен более точный контроль над любым событием, используйте [command hook](#command-hook-fields) с полями для каждого события, описанными в [Decision control](#decision-control).3095Если вам нужен более точный контроль над любым событием, используйте [command hook](#command-hook-fields) с полями для каждого события, описанными в [Decision control](#decision-control).

3066 3096 

3067<h3 id="example-multi-criteria-stop-hook">3097<h3 id="check-multiple-conditions-before-stopping">

3068 Example: Multi-criteria Stop hook3098 Check multiple conditions before stopping

3069</h3>3099</h3>

3070 3100 

3071Этот hook `Stop` использует подробную подсказку для проверки трёх условий перед разрешением Claude остановиться. Если `"ok"` равно `false`, Claude продолжает работать с предоставленной причиной как своей следующей инструкцией. Hooks `SubagentStop` используют тот же формат для оценки, должен ли [subagent](/ru/sub-agents) остановиться:3101Этот hook `Stop` использует подробную подсказку для проверки трёх условий перед разрешением Claude остановиться. Hooks `SubagentStop` используют тот же формат для оценки, должен ли [subagent](/ru/sub-agents) остановиться. Если `"ok"` равно `false`, Claude продолжает работать с предоставленной причиной как своей следующей инструкцией:

3072 3102 

3073```json theme={null}3103```json theme={null}

3074{3104{


3192 3222 

3193Уведомления о завершении асинхронного hook подавляются по умолчанию. Чтобы их увидеть, включите подробный режим с помощью `Ctrl+O` или запустите Claude Code с `--verbose`.3223Уведомления о завершении асинхронного hook подавляются по умолчанию. Чтобы их увидеть, включите подробный режим с помощью `Ctrl+O` или запустите Claude Code с `--verbose`.

3194 3224 

3195<h3 id="example-run-tests-after-file-changes">3225<h3 id="run-tests-after-file-changes">

3196 Пример: запуск тестов после изменения файлов3226 Запуск тестов после изменения файлов

3197</h3>3227</h3>

3198 3228 

3199Этот hook запускает набор тестов в фоне всякий раз, когда Claude пишет файл, затем сообщает результаты обратно Claude при завершении тестов. Сохраните этот скрипт в `.claude/hooks/run-tests-async.sh` в вашем проекте и сделайте его исполняемым с помощью `chmod +x`:3229Этот hook запускает набор тестов в фоне всякий раз, когда Claude пишет файл, затем сообщает результаты обратно Claude при завершении тестов. Сохраните этот скрипт в `.claude/hooks/run-tests-async.sh` в вашем проекте и сделайте его исполняемым с помощью `chmod +x`:


3287 Windows PowerShell tool3317 Windows PowerShell tool

3288</h2>3318</h2>

3289 3319 

3290На Windows вы можете запустить отдельные hooks в PowerShell, установив `"shell": "powershell"` на command hook. Hooks порождают PowerShell напрямую, поэтому это работает независимо от того, установлен ли `CLAUDE_CODE_USE_POWERSHELL_TOOL`. Claude Code автоматически обнаруживает `pwsh.exe` (PowerShell 7+) с резервным вариантом на `powershell.exe` (5.1).3320На Windows вы можете запустить отдельные hooks в PowerShell, установив `"shell": "powershell"` на command hook. Hooks порождают PowerShell напрямую, поэтому это работает независимо от того, установлен ли `CLAUDE_CODE_USE_POWERSHELL_TOOL`. Claude Code автоматически обнаруживает `pwsh.exe`, исполняемый файл PowerShell 7 и более поздних версий, и переходит на `powershell.exe` для Windows PowerShell 5.1.

3291 3321 

3292```json theme={null}3322```json theme={null}

3293{3323{


3308}3338}

3309```3339```

3310 3340 

3311Чтобы ссылаться на корневой каталог проекта из команды PowerShell в форме shell, прочитайте его как переменную окружения с помощью `$env:CLAUDE_PROJECT_DIR`. PowerShell рассматривает простую форму `${CLAUDE_PROJECT_DIR}` как локальную переменную, а не как поиск в окружении, и Claude Code подставляет этот заполнитель в форме shell только для [plugin hooks](#reference-scripts-by-path). Для hook, определённого в `settings.json`, либо используйте форму `$env:`, либо переключитесь на [exec form](#exec-form-and-shell-form), где `${CLAUDE_PROJECT_DIR}` подставляется в каждый элемент `args` независимо от того, где определён hook.3341Чтобы ссылаться на корневой каталог проекта из команды PowerShell в форме shell, напишите `${CLAUDE_PROJECT_DIR}` или `$env:CLAUDE_PROJECT_DIR`. Начиная с версии 2.1.198, Claude Code переписывает заполнители `${CLAUDE_PROJECT_DIR}`, `${CLAUDE_PLUGIN_ROOT}` и `${CLAUDE_PLUGIN_DATA}` в команде PowerShell в форме shell в форму `${env:NAME}` PowerShell, независимо от того, определён ли hook в `settings.json`, плагине или навыке. PowerShell затем разрешает значение из экспортированного окружения после анализа, поэтому заполнитель работает внутри строк в двойных кавычках, но не внутри строк в одинарных кавычках, где PowerShell никогда не расширяет переменные.

3342 

3343До версии 2.1.198 эта переписка применялась только к plugin hooks. В более ранних версиях hook в `settings.json` требует формы `$env:` или [exec form](#exec-form-and-shell-form), где `${CLAUDE_PROJECT_DIR}` подставляется в каждый элемент `args` независимо от того, где определён hook.

3344 

3345Не пишите простое написание `$CLAUDE_PROJECT_DIR` в hook PowerShell. PowerShell анализирует его как неопределённую локальную переменную и разрешает её в `$null`, что оставляет путь скрипта без префикса корневого каталога проекта. Claude Code не переписывает эту форму; вместо этого она регистрирует предупреждение в [debug log](#debug-hooks).

3312 3346 

3313Пример ниже показывает hook в `settings.json`, который запускает скрипт проекта с формой `$env:`:3347Пример ниже показывает hook в `settings.json`, который запускает скрипт проекта с формой `$env:`, которая работает на каждой версии:

3314 3348 

3315```json theme={null}3349```json theme={null}

3316{3350{

hooks-guide.md +33 −29

Details

87 87 

88Hooks позволяют запускать код в ключевых точках жизненного цикла Claude Code: форматировать файлы после редактирования, блокировать команды перед их выполнением, отправлять уведомления, когда Claude требует ввода, внедрять контекст при запуске сеанса и многое другое. Для полного списка событий hook см. [справочник Hooks](/ru/hooks#hook-lifecycle).88Hooks позволяют запускать код в ключевых точках жизненного цикла Claude Code: форматировать файлы после редактирования, блокировать команды перед их выполнением, отправлять уведомления, когда Claude требует ввода, внедрять контекст при запуске сеанса и многое другое. Для полного списка событий hook см. [справочник Hooks](/ru/hooks#hook-lifecycle).

89 89 

90Каждый пример включает готовый к использованию блок конфигурации, который вы добавляете в [файл параметров](#configure-hook-location). Наиболее распространённые шаблоны:90Каждый пример включает готовый к использованию блок конфигурации, который вы добавляете в [файл параметров](#configure-hook-location).

91 

92* [Получайте уведомления, когда Claude требует ввода](#get-notified-when-claude-needs-input)

93* [Автоматическое форматирование кода после редактирования](#auto-format-code-after-edits)

94* [Блокировка редактирования защищённых файлов](#block-edits-to-protected-files)

95* [Повторное внедрение контекста после компактирования](#re-inject-context-after-compaction)

96* [Аудит изменений конфигурации](#audit-configuration-changes)

97* [Перезагрузка окружения при изменении каталога или файлов](#reload-environment-when-directory-or-files-change)

98* [Автоматическое одобрение определённых запросов разрешений](#auto-approve-specific-permission-prompts)

99 91 

100Для примера использования в production с hooks, которые запускают отдельную проверку модели и передают результаты обратно в сеанс, см. [как плагин `security-guidance` интегрируется с Claude Code](/ru/security-guidance#how-the-plugin-integrates-with-claude-code).92Для примера использования в production с hooks, которые запускают отдельную проверку модели и передают результаты обратно в сеанс, см. [как плагин `security-guidance` интегрируется с Claude Code](/ru/security-guidance#how-the-plugin-integrates-with-claude-code).

101 93 


182Пустой `matcher` срабатывает на все типы уведомлений. Чтобы срабатывать только на определённые события, установите его на одно из этих значений:174Пустой `matcher` срабатывает на все типы уведомлений. Чтобы срабатывать только на определённые события, установите его на одно из этих значений:

183 175 

184| Matcher | Срабатывает когда |176| Matcher | Срабатывает когда |

185| :--------------------- | :-------------------------------------------------------- |177| :--------------------- | :-------------------------------------------------------------------------------------------------------------------------- |

186| `permission_prompt` | Claude требует вашего одобрения использования инструмента |178| `permission_prompt` | Claude требует вашего одобрения использования инструмента |

187| `idle_prompt` | Claude завершил работу и ждёт вашего следующего запроса |179| `idle_prompt` | Claude завершил работу и ждёт вашего следующего запроса |

188| `auth_success` | Аутентификация завершена |180| `auth_success` | Аутентификация завершена |

189| `elicitation_dialog` | Сервер MCP открывает форму выяснения |181| `elicitation_dialog` | Сервер MCP открывает форму выяснения |

190| `elicitation_complete` | Форма выяснения MCP отправлена или закрыта |182| `elicitation_complete` | Форма выяснения MCP отправлена или закрыта |

191| `elicitation_response` | Ответ выяснения MCP отправлен обратно на сервер |183| `elicitation_response` | Ответ выяснения MCP отправлен обратно на сервер |

184| `agent_needs_input` | Фоновый сеанс начинает ожидание вашего ввода. Срабатывает только при открытом [представлении агента](/ru/agent-view) |

185| `agent_completed` | Фоновый сеанс завершается или завершается с ошибкой. Срабатывает только при открытом [представлении агента](/ru/agent-view) |

186 

187Matchers `agent_needs_input` и `agent_completed` требуют Claude Code v2.1.198 или позже.

192 188 

193Введите `/hooks` и выберите `Notification`, чтобы подтвердить, что hook зарегистрирован. Для полной схемы события см. [справочник Notification](/ru/hooks#notification).189Введите `/hooks` и выберите `Notification`, чтобы подтвердить, что hook зарегистрирован. Для полной схемы события см. [справочник Notification](/ru/hooks#notification).

194 190 


198 194 

199Автоматически запускайте [Prettier](https://prettier.io/) на каждом файле, который редактирует Claude, чтобы форматирование оставалось согласованным без ручного вмешательства.195Автоматически запускайте [Prettier](https://prettier.io/) на каждом файле, который редактирует Claude, чтобы форматирование оставалось согласованным без ручного вмешательства.

200 196 

201Этот hook использует событие `PostToolUse` с matcher `Edit|Write`, поэтому он запускается только после инструментов редактирования файлов. {/* min-version: 2.1.191 */}На Claude Code v2.1.191 или позже вы также можете написать matcher как `Edit,Write`, так как `|` и `,` являются взаимозаменяемыми разделителями списков для matcher инструментов на этих версиях. Команда извлекает путь отредактированного файла с помощью [`jq`](https://jqlang.github.io/jq/) и передаёт его в Prettier. Добавьте это в `.claude/settings.json` в корне вашего проекта:197Этот hook использует событие `PostToolUse` с matcher `Edit|Write`, поэтому он запускается только после инструментов редактирования файлов. Команда извлекает путь отредактированного файла с помощью [`jq`](https://jqlang.github.io/jq/) и передаёт его в Prettier. Добавьте это в `.claude/settings.json` в корне вашего проекта:

202 198 

203```json theme={null}199```json theme={null}

204{200{


218}214}

219```215```

220 216 

217На Claude Code v2.1.191 или позже вы также можете написать matcher как `Edit,Write`, так как `|` и `,` являются взаимозаменяемыми разделителями списков для matcher инструментов на этих версиях.

218 

221<Note>219<Note>

222 Примеры Bash на этой странице используют `jq` для анализа JSON. Установите его с помощью `brew install jq` (macOS), `apt-get install jq` (Debian/Ubuntu) или см. [загрузки `jq`](https://jqlang.github.io/jq/download/).220 Примеры Bash на этой странице используют `jq` для анализа JSON. Установите его с помощью `brew install jq` на macOS, `apt-get install jq` на Debian и Ubuntu или см. [загрузки `jq`](https://jqlang.github.io/jq/download/).

223</Note>221</Note>

224 222 

225<h3 id="block-edits-to-protected-files">223<h3 id="block-edits-to-protected-files">


254 ```252 ```

255 </Step>253 </Step>

256 254 

257 <Step title="Сделайте скрипт исполняемым (macOS/Linux)">255 <Step title="Сделайте скрипт исполняемым на macOS и Linux">

258 Скрипты hook должны быть исполняемыми для запуска Claude Code:256 Скрипты hook должны быть исполняемыми для запуска Claude Code:

259 257 

260 ```bash theme={null}258 ```bash theme={null}


558}556}

559```557```

560 558 

561Ваш скрипт может анализировать этот JSON и действовать на основе любого из этих полей. Hooks `UserPromptSubmit` получают текст `prompt` вместо этого, hooks `SessionStart` получают `source` (startup, resume, clear, compact) и так далее. См. [Common input fields](/ru/hooks#common-input-fields) в справочнике для общих полей и раздел каждого события для схем, специфичных для события.559Ваш скрипт может анализировать этот JSON и действовать на основе любого из этих полей. Hooks `UserPromptSubmit` получают текст `prompt` вместо этого, hooks `SessionStart` получают `source` (`startup`, `resume`, `clear` или `compact`) и так далее. См. [Common input fields](/ru/hooks#common-input-fields) в справочнике для общих полей и раздел каждого события для схем, специфичных для события.

562 560 

563<h4 id="hook-output">561<h4 id="hook-output">

564 Вывод hook562 Вывод hook

565</h4>563</h4>

566 564 

567Ваш скрипт сообщает Claude Code, что делать дальше, записывая в stdout или stderr и выходя с определённым кодом. Например, hook `PreToolUse`, который хочет заблокировать команду:565Ваш скрипт сообщает Claude Code, что делать дальше, записывая в stdout или stderr и выходя с определённым кодом. Следующий hook `PreToolUse` блокирует команду:

568 566 

569```bash theme={null}567```bash theme={null}

570#!/bin/bash568#!/bin/bash


619 617 

620Другие события используют разные шаблоны решений. Например, hooks `PostToolUse` и `Stop` используют поле `decision: "block"` верхнего уровня, а `PermissionRequest` использует `hookSpecificOutput.decision.behavior`. См. [summary table](/ru/hooks#decision-control) в справочнике для полного разбора по событиям.618Другие события используют разные шаблоны решений. Например, hooks `PostToolUse` и `Stop` используют поле `decision: "block"` верхнего уровня, а `PermissionRequest` использует `hookSpecificOutput.decision.behavior`. См. [summary table](/ru/hooks#decision-control) в справочнике для полного разбора по событиям.

621 619 

622Для hooks `UserPromptSubmit` используйте `additionalContext` вместо этого для внедрения текста в контекст Claude. Prompt-based hooks (`type: "prompt"`) обрабатывают вывод иначе: см. [Prompt-based hooks](#prompt-based-hooks).620Для hooks `UserPromptSubmit` используйте `additionalContext` вместо этого для внедрения текста в контекст Claude.

621 

622Hooks с `type: "prompt"` обрабатывают вывод иначе: см. [Prompt-based hooks](#prompt-based-hooks).

623 623 

624<h3 id="filter-hooks-with-matchers">624<h3 id="filter-hooks-with-matchers">

625 Фильтрация hooks с помощью matchers625 Фильтрация hooks с помощью matchers

626</h3>626</h3>

627 627 

628Без matcher hook срабатывает при каждом возникновении его события. Matchers позволяют вам сузить это. Например, если вы хотите запустить форматер только после редактирования файлов (не после каждого вызова инструмента), добавьте matcher к вашему hook `PostToolUse`:628Без matcher hook срабатывает при каждом возникновении его события. Matchers позволяют вам сузить это. Например, если вы хотите запустить форматер только после редактирования файлов, а не после каждого вызова инструмента, добавьте matcher к вашему hook `PostToolUse`:

629 629 

630```json theme={null}630```json theme={null}

631{631{


656| `SessionStart` | как начался сеанс | `startup`, `resume`, `clear`, `compact` |656| `SessionStart` | как начался сеанс | `startup`, `resume`, `clear`, `compact` |

657| `Setup` | какой флаг CLI запустил setup | `init`, `maintenance` |657| `Setup` | какой флаг CLI запустил setup | `init`, `maintenance` |

658| `SessionEnd` | почему закончился сеанс | `clear`, `resume`, `logout`, `prompt_input_exit`, `bypass_permissions_disabled`, `other` |658| `SessionEnd` | почему закончился сеанс | `clear`, `resume`, `logout`, `prompt_input_exit`, `bypass_permissions_disabled`, `other` |

659| `Notification` | тип уведомления | `permission_prompt`, `idle_prompt`, `auth_success`, `elicitation_dialog`, `elicitation_complete`, `elicitation_response` |659| `Notification` | тип уведомления | `permission_prompt`, `idle_prompt`, `auth_success`, `elicitation_dialog`, `elicitation_complete`, `elicitation_response`, `agent_needs_input`, `agent_completed` |

660| `SubagentStart` | тип агента | `general-purpose`, `Explore`, `Plan` или пользовательские имена агентов |660| `SubagentStart` | тип агента | `general-purpose`, `Explore`, `Plan` или пользовательские имена агентов |

661| `PreCompact`, `PostCompact` | что запустило компактирование | `manual`, `auto` |661| `PreCompact`, `PostCompact` | что запустило компактирование | `manual`, `auto` |

662| `SubagentStop` | тип агента | те же значения, что и `SubagentStart` |662| `SubagentStop` | тип агента | те же значения, что и `SubagentStart` |


669| `UserPromptExpansion` | имя команды | ваши имена skill или команд |669| `UserPromptExpansion` | имя команды | ваши имена skill или команд |

670| `UserPromptSubmit`, `PostToolBatch`, `Stop`, `TeammateIdle`, `TaskCreated`, `TaskCompleted`, `WorktreeCreate`, `WorktreeRemove`, `CwdChanged`, `MessageDisplay` | поддержка matcher отсутствует | всегда срабатывает при каждом возникновении |670| `UserPromptSubmit`, `PostToolBatch`, `Stop`, `TeammateIdle`, `TaskCreated`, `TaskCompleted`, `WorktreeCreate`, `WorktreeRemove`, `CwdChanged`, `MessageDisplay` | поддержка matcher отсутствует | всегда срабатывает при каждом возникновении |

671 671 

672Несколько дополнительных примеров, показывающих matchers на разных типах событий:672Вкладки ниже показывают несколько дополнительных matchers на разных типах событий.

673 673 

674<Tabs>674<Tabs>

675 <Tab title="Логирование каждой команды Bash">675 <Tab title="Логирование каждой команды Bash">


805| [Plugin](/ru/plugins) `hooks/hooks.json` | Когда плагин включен | Да, упакован с плагином |805| [Plugin](/ru/plugins) `hooks/hooks.json` | Когда плагин включен | Да, упакован с плагином |

806| [Skill](/ru/skills) или [agent](/ru/sub-agents) frontmatter | Пока skill или agent активны | Да, определено в файле компонента |806| [Skill](/ru/skills) или [agent](/ru/sub-agents) frontmatter | Пока skill или agent активны | Да, определено в файле компонента |

807 807 

808Запустите [`/hooks`](/ru/hooks#the-%2Fhooks-menu) в Claude Code для просмотра всех настроенных hooks, сгруппированных по событиям. Чтобы отключить hooks, установите `"disableAllHooks": true` в вашем файле параметров. Hooks, настроенные в управляемых параметрах, по-прежнему запускаются, если `disableAllHooks` также не установлен там.808Запустите [`/hooks`](/ru/hooks#the-%2Fhooks-menu) в Claude Code для просмотра всех настроенных hooks, сгруппированных по событиям.

809 

810Чтобы отключить hooks, установите `"disableAllHooks": true` в вашем файле параметров. Hooks, настроенные в управляемых параметрах, по-прежнему запускаются, если `disableAllHooks` также не установлен там.

809 811 

810Если вы редактируете файлы параметров напрямую во время работы Claude Code, наблюдатель файлов обычно автоматически подхватывает изменения hook.812Если вы редактируете файлы параметров напрямую во время работы Claude Code, наблюдатель файлов обычно автоматически подхватывает изменения hook.

811 813 


925 Ограничения927 Ограничения

926</h3>928</h3>

927 929 

930Помните об этих ограничениях при разработке hooks:

931 

928* Command hooks взаимодействуют только через stdout, stderr и коды выхода. Они не могут запускать команды `/` или вызовы инструментов. Текст, возвращённый через `additionalContext`, внедряется как системное напоминание, которое Claude читает как простой текст. HTTP hooks взаимодействуют через тело ответа вместо этого.932* Command hooks взаимодействуют только через stdout, stderr и коды выхода. Они не могут запускать команды `/` или вызовы инструментов. Текст, возвращённый через `additionalContext`, внедряется как системное напоминание, которое Claude читает как простой текст. HTTP hooks взаимодействуют через тело ответа вместо этого.

929* Время ожидания hook варьируется в зависимости от типа. Переопределите для каждого hook с помощью поля `timeout` в секундах.933* Время ожидания hook варьируется в зависимости от типа. Переопределите для каждого hook с помощью поля `timeout` в секундах.

930 * `command`, `http`, `mcp_tool`: 10 минут. `UserPromptSubmit` снижает эти значения до 30 секунд, а `MessageDisplay` снижает их до 10 секунд.934 * `command`, `http`, `mcp_tool`: 10 минут. `UserPromptSubmit` снижает эти значения до 30 секунд, а `MessageDisplay` снижает их до 10 секунд.

931 * `prompt`: 30 секунд.935 * `prompt`: 30 секунд.

932 * `agent`: 60 секунд.936 * `agent`: 60 секунд.

933* Hooks `PostToolUse` не могут отменить действия, так как инструмент уже выполнен.937* Hooks `PostToolUse` не могут отменить действия, так как инструмент уже выполнен.

934* Hooks `PermissionRequest` не срабатывают в [неинтерактивном режиме](/ru/headless) (`-p`). Используйте hooks `PreToolUse` для автоматизированных решений разрешений.938* Hooks `PermissionRequest` не срабатывают в [неинтерактивном режиме](/ru/headless) с флагом `-p`. Используйте hooks `PreToolUse` для автоматизированных решений разрешений.

935* Hooks `Stop` срабатывают всякий раз, когда Claude завершает ответ, а не только при завершении задачи. Они не срабатывают при прерывании пользователем. Ошибки API срабатывают [StopFailure](/ru/hooks#stopfailure) вместо этого.939* Hooks `Stop` срабатывают всякий раз, когда Claude завершает ответ, а не только при завершении задачи. Они не срабатывают при прерывании пользователем. Ошибки API срабатывают [StopFailure](/ru/hooks#stopfailure) вместо этого.

936* Когда несколько hooks PreToolUse возвращают [`updatedInput`](/ru/hooks#pretooluse) для переписания аргументов инструмента, последний завершённый побеждает. Поскольку hooks запускаются параллельно, порядок недетерминирован. Избегайте наличия более одного hook, изменяющего ввод одного и того же инструмента.940* Когда несколько hooks `PreToolUse` возвращают [`updatedInput`](/ru/hooks#pretooluse) для переписания аргументов инструмента, последний завершённый побеждает. Поскольку hooks запускаются параллельно, порядок недетерминирован. Избегайте наличия более одного hook, изменяющего ввод одного и того же инструмента.

937 941 

938<h3 id="hooks-and-permission-modes">942<h3 id="hooks-and-permission-modes">

939 Hooks и режимы разрешений943 Hooks и режимы разрешений

940</h3>944</h3>

941 945 

942Hooks PreToolUse срабатывают перед любой проверкой режима разрешений. Hook, возвращающий `permissionDecision: "deny"`, блокирует инструмент даже в режиме `bypassPermissions` или с `--dangerously-skip-permissions`. Это позволяет вам применять политику, которую пользователи не могут обойти, изменив свой режим разрешений.946Hooks `PreToolUse` срабатывают перед любой проверкой режима разрешений. Hook, возвращающий `permissionDecision: "deny"`, блокирует инструмент даже в режиме `bypassPermissions` или с `--dangerously-skip-permissions`. Это позволяет вам применять политику, которую пользователи не могут обойти, изменив свой режим разрешений.

943 947 

944Обратное неверно: hook, возвращающий `"allow"`, не обходит правила отказа из параметров. Hooks могут ужесточить ограничения, но не ослабить их сверх того, что разрешают правила разрешений.948Обратное неверно: hook, возвращающий `"allow"`, не обходит правила отказа из параметров. Hooks могут ужесточить ограничения, но не ослабить их сверх того, что разрешают правила разрешений.

945 949 


950Hook настроен, но никогда не выполняется.954Hook настроен, но никогда не выполняется.

951 955 

952* Запустите `/hooks` и подтвердите, что hook появляется под правильным событием956* Запустите `/hooks` и подтвердите, что hook появляется под правильным событием

953* Проверьте, что шаблон matcher точно соответствует имени инструмента (matchers чувствительны к регистру)957* Проверьте, что шаблон matcher точно соответствует имени инструмента. Matchers чувствительны к регистру

954* Убедитесь, что вы запускаете правильный тип события (например, `PreToolUse` срабатывает перед выполнением инструмента, `PostToolUse` срабатывает после)958* Убедитесь, что вы запускаете правильный тип события: `PreToolUse` срабатывает перед выполнением инструмента, `PostToolUse` срабатывает после

955* Если используете hooks `PermissionRequest` в неинтерактивном режиме (`-p`), переключитесь на `PreToolUse` вместо этого959* Если используете hooks `PermissionRequest` в неинтерактивном режиме с флагом `-p`, переключитесь на `PreToolUse` вместо этого

956 960 

957<h3 id="hook-error-in-output">961<h3 id="hook-error-in-output">

958 Ошибка hook в выводе962 Ошибка hook в выводе


976Вы отредактировали файл параметров, но hooks не появляются в меню.980Вы отредактировали файл параметров, но hooks не появляются в меню.

977 981 

978* Редактирования файлов обычно подхватываются автоматически. Если они не появились через несколько секунд, наблюдатель файлов мог пропустить изменение: перезагрузите сеанс для принудительной перезагрузки.982* Редактирования файлов обычно подхватываются автоматически. Если они не появились через несколько секунд, наблюдатель файлов мог пропустить изменение: перезагрузите сеанс для принудительной перезагрузки.

979* Убедитесь, что ваш JSON действителен (конечные запятые и комментарии не допускаются)983* Убедитесь, что ваш JSON действителен: конечные запятые и комментарии не допускаются

980* Подтвердите, что файл параметров находится в правильном месте: `.claude/settings.json` для hooks проекта, `~/.claude/settings.json` для глобальных hooks984* Подтвердите, что файл параметров находится в правильном месте: `.claude/settings.json` для hooks проекта, `~/.claude/settings.json` для глобальных hooks

981 985 

982<h3 id="stop-hook-hits-the-block-cap">986<h3 id="stop-hook-hits-the-block-cap">


985 989 

986Claude продолжает работать вместо остановки, а затем завершает ход с предупреждением о том, что Stop hook заблокировал слишком много раз подряд без прогресса.990Claude продолжает работать вместо остановки, а затем завершает ход с предупреждением о том, что Stop hook заблокировал слишком много раз подряд без прогресса.

987 991 

988Claude Code переопределяет Stop hook после того, как он блокирует 8 раз подряд без прогресса. Ваш скрипт hook должен проверить, не срабатывал ли он уже. Проанализируйте поле `stop_hook_active` из JSON ввода и выйдите рано, если оно `true`:992Claude Code переопределяет Stop hook после того, как он блокирует восемь раз подряд без прогресса. Ваш скрипт hook должен проверить, не срабатывал ли он уже. Проанализируйте поле `stop_hook_active` из JSON ввода и выйдите рано, если оно `true`:

989 993 

990```bash theme={null}994```bash theme={null}

991#!/bin/bash995#!/bin/bash


1004 1008 

1005Claude Code показывает ошибку анализа JSON, даже если ваш скрипт hook выводит действительный JSON.1009Claude Code показывает ошибку анализа JSON, даже если ваш скрипт hook выводит действительный JSON.

1006 1010 

1007Когда Claude Code запускает hook-команду в форме shell (без `args`), он порождает `sh -c` на macOS и Linux или Git Bash на Windows по умолчанию. Эта оболочка неинтерактивна, но Git Bash и некоторые конфигурации (такие как `BASH_ENV`, указывающий на `~/.bashrc`) всё ещё источают ваш профиль. Если этот профиль содержит безусловные операторы `echo`, вывод добавляется к JSON вашего hook:1011Когда Claude Code запускает hook-команду в форме shell (без `args`), он порождает `sh -c` на macOS и Linux или Git Bash на Windows по умолчанию. Эта оболочка неинтерактивна, но Git Bash и некоторые конфигурации, такие как `BASH_ENV`, указывающий на `~/.bashrc`, всё ещё источают ваш профиль. Если этот профиль содержит безусловные операторы `echo`, вывод добавляется к JSON вашего hook:

1008 1012 

1009```text theme={null}1013```text theme={null}

1010Shell ready on arm641014Shell ready on arm64

Details

210Встроенные команды также помогут вам в настройке:210Встроенные команды также помогут вам в настройке:

211 211 

212* `/init` проведёт вас через создание CLAUDE.md для вашего проекта212* `/init` проведёт вас через создание CLAUDE.md для вашего проекта

213* `/agents` помогает вам настроить пользовательские subagents

214* `/doctor` диагностирует распространённые проблемы с вашей установкой213* `/doctor` диагностирует распространённые проблемы с вашей установкой

215 214 

216<h3 id="it’s-a-conversation">215<h3 id="it’s-a-conversation">

Details

106 Блок атрибуции системного приглашения106 Блок атрибуции системного приглашения

107</h2>107</h2>

108 108 

109Claude Code добавляет в начало системного приглашения короткий блок атрибуции, содержащий версию клиента и отпечаток, полученный из разговора. Конечная точка `api.anthropic.com` удаляет блок перед обработкой, поэтому он не влияет на кеширование приглашений первой стороны; любой другой upstream получает его как часть приглашения. Anthropic и конечные точки Claude облачных поставщиков читают его для атрибуции, поэтому чтобы опустить его, установите [`CLAUDE_CODE_ATTRIBUTION_HEADER=0`](/ru/env-vars) вместо удаления его в gateway.109Claude Code добавляет в начало системного приглашения короткий блок атрибуции, содержащий версию клиента и отпечаток, полученный из разговора. Конечная точка `api.anthropic.com` удаляет блок перед обработкой, когда он поступает без изменений в качестве первого системного блока, поэтому он не влияет на кеширование приглашений первой стороны. Любой другой upstream получает его как часть приглашения.

110 

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

112 

113* Пересылайте массив `system` точно так, как он был получен, сохраняя блок первым: добавление другого системного блока в начало, переупорядочение массива или преобразование его в одну строку нарушает удаление, и блок затем достигает модели и ключа кеша приглашений.

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

115* Если ваш шлюз должен переформатировать системное содержимое, установите [`CLAUDE_CODE_ATTRIBUTION_HEADER=0`](/ru/env-vars), чтобы Claude Code опустил блок. Anthropic и конечные точки Claude облачных поставщиков читают блок для атрибуции, поэтому опустите его на клиенте, а не удаляйте или перемещайте его в шлюзе.

116 

117Запросы, которые достигают конечной точки без изменений, не затронуты.

110 118 

111{/* min-version: 2.1.181 */}Начиная с Claude Code v2.1.181, блок стабилен в течение всего времени жизни разговора, когда запросы маршрутизируются через пользовательский базовый URL, поэтому кеш приглашений gateway на основе полного тела запроса работает без отключения его. До v2.1.181 блок включал токен для каждого запроса; на этих версиях установите `CLAUDE_CODE_ATTRIBUTION_HEADER=0`, если ваш gateway реализует такой кеш.119{/* min-version: 2.1.181 */}Начиная с Claude Code v2.1.181, блок стабилен в течение всего времени жизни разговора, когда запросы маршрутизируются через пользовательский базовый URL, поэтому кеш приглашений gateway на основе полного тела запроса работает без отключения его. До v2.1.181 блок включал токен для каждого запроса; на этих версиях установите `CLAUDE_CODE_ATTRIBUTION_HEADER=0`, если ваш gateway реализует такой кеш.

112 120 

mcp.md +43 −0

Details

1039 Если вы часто сталкиваетесь с предупреждениями выхода с конкретными MCP servers, которые вы не контролируете, рассмотрите возможность увеличения лимита `MAX_MCP_OUTPUT_TOKENS`. Вы также можете попросить автора server добавить аннотацию `anthropic/maxResultSizeChars` или разбить на страницы свои ответы. Аннотация не влияет на инструменты, которые возвращают содержимое изображения; для них повышение `MAX_MCP_OUTPUT_TOKENS` — единственный вариант.1039 Если вы часто сталкиваетесь с предупреждениями выхода с конкретными MCP servers, которые вы не контролируете, рассмотрите возможность увеличения лимита `MAX_MCP_OUTPUT_TOKENS`. Вы также можете попросить автора server добавить аннотацию `anthropic/maxResultSizeChars` или разбить на страницы свои ответы. Аннотация не влияет на инструменты, которые возвращают содержимое изображения; для них повышение `MAX_MCP_OUTPUT_TOKENS` — единственный вариант.

1040</Warning>1040</Warning>

1041 1041 

1042<h2 id="tool-input-schemas-with-a-root-level-combinator">

1043 Инструменты с корневым комбинатором в схеме ввода

1044</h2>

1045 

1046Некоторые MCP servers объявляют схему ввода инструмента как объединение JSON Schema с `anyOf`, `oneOf` или `allOf` на верхнем уровне схемы. Claude API не принимает эти ключевые слова в корне схемы. Он принимает комбинаторы, вложенные внутри `properties`, которые Claude Code отправляет без изменений.

1047 

1048Начиная с Claude Code v2.1.195, инструменты с корневым комбинатором остаются доступными. Перед отправкой инструмента в API Claude Code выравнивает схему в один объект и добавляет предложение к описанию инструмента, которое говорит Claude, какие группы параметров принадлежат друг другу:

1049 

1050* `allOf`: свойства из каждой ветви объединяются, и список `required` каждой ветви все еще применяется

1051* `anyOf` и `oneOf`: свойства из каждой ветви объединяются, и список `required` каждой ветви описывается в описании инструмента вместо того, чтобы быть принудительным схемой

1052 

1053Ваш server получает любые аргументы, которые выбрал Claude, поэтому продолжайте проверять комбинацию на стороне server.

1054 

1055Когда Claude Code не может создать схему, которую API принимает, или при развертывании, которое не получает удаленную конфигурацию, которая включает переписывание, такую как автономная машина, он пропускает этот один инструмент, записывает причину в журнал server и оставляет другие инструменты server доступными. Версии ранее, чем v2.1.195, пропускают каждый инструмент, чья схема ввода имеет корневой `anyOf`, `oneOf` или `allOf`.

1056 

1057<h2 id="require-approval-for-a-specific-tool">

1058 Требовать одобрение для конкретного инструмента

1059</h2>

1060 

1061Если вы создаете MCP server, вы можете отметить инструмент как требующий явного одобрения при каждом вызове, установив `_meta["anthropic/requiresUserInteraction"]` на `true` в записи инструмента в ответе `tools/list`. Значение должно быть логическим JSON `true`; любое другое значение игнорируется.

1062 

1063Claude Code показывает приглашение разрешения этого инструмента при каждом вызове, даже в режимах разрешений `acceptEdits`, `auto` и `bypassPermissions` (/ru/permissions#permission-modes), и не предлагает опцию "не спрашивать снова" для него. [Правила разрешения](/ru/permissions#permission-rule-syntax), которые совпадают с инструментом, также не пропускают приглашение. В режиме `dontAsk`, который никогда не запрашивает, Claude Code отклоняет вызов вместо этого.

1064 

1065Приглашение должно достичь человека. В неинтерактивном режиме с [`--permission-prompt-tool`](/ru/cli-reference#cli-flags), результат `allow` из инструмента приглашения для отмеченного инструмента преобразуется в отказ с сообщением `MCP tool requires user interaction; not supported via --permission-prompt-tool`. Обратный вызов [`canUseTool`](/ru/agent-sdk/permissions) Agent SDK получает эти вызовы и может их одобрить, потому что ожидается, что хост SDK покажет их пользователю.

1066 

1067Используйте это для инструментов, чье приглашение разрешения само по себе является целью, такие как шаг согласия или предоставления доступа, где автоматическое одобрение означало бы, что ни один человек никогда не согласился. Другие инструменты из того же server сохраняют свое нормальное поведение разрешения.

1068 

1069Следующая запись `tools/list` отмечает один инструмент как всегда требующий одобрения.

1070 

1071```json theme={null}

1072{

1073 "name": "grant_access",

1074 "description": "Requests access to a protected resource",

1075 "_meta": {

1076 "anthropic/requiresUserInteraction": true

1077 }

1078}

1079```

1080 

1081Аннотация `anthropic/requiresUserInteraction` требует Claude Code v2.1.199 или позже. Более ранние версии игнорируют ее и применяют стандартный поток разрешения.

1082 

1083Когда сеанс подключен к [Remote Control](/ru/remote-control) или хосту SDK, Claude Code отмечает запрос разрешения как требующий взаимодействия пользователя, поэтому клиент показывает приглашение разрешения инструмента для вас, чтобы ответить, вместо действия одобрения одним касанием.

1084 

1042<h2 id="respond-to-mcp-elicitation-requests">1085<h2 id="respond-to-mcp-elicitation-requests">

1043 Ответьте на запросы MCP elicitation1086 Ответьте на запросы MCP elicitation

1044</h2>1087</h2>

memory.md +1 −1

Details

235- Включите комментарии документации OpenAPI235- Включите комментарии документации OpenAPI

236```236```

237 237 

238Правила без поля `paths` загружаются безусловно и применяются ко всем файлам. Правила с ограничением по пути срабатывают, когда Claude читает файлы, соответствующие шаблону, а не при каждом использовании инструмента.238Правила без поля `paths` загружаются безусловно и применяются ко всем файлам. Правила с ограничением по пути срабатывают, когда Claude читает файлы, соответствующие шаблону, а не при каждом использовании инструмента. {/* min-version: 2.1.198 */}Начиная с версии 2.1.198, сопоставление также работает, когда Claude достигает файла через символическую ссылку на каталог проекта, например в символически связанном checkout.

239 239 

240Используйте glob-шаблоны в поле `paths` для сопоставления файлов по расширению, каталогу или любой комбинации:240Используйте glob-шаблоны в поле `paths` для сопоставления файлов по расширению, каталогу или любой комбинации:

241 241 

model-config.md +56 −10

Details

20 * Vertex: имя версии20 * Vertex: имя версии

21 21 

22<Note>22<Note>

23 `ANTHROPIC_BASE_URL` изменяет, куда отправляются запросы, а не какая модель на них отвечает. Чтобы маршрутизировать Claude через шлюз LLM, см. [конфигурация шлюза LLM](/ru/llm-gateway).23 `ANTHROPIC_BASE_URL` изменяет, куда отправляются запросы, а не какая модель на них отвечает. Чтобы маршрутизировать Claude через шлюз LLM, см. [шлюзы LLM](/ru/llm-gateway).

24</Note>24</Note>

25 25 

26<h3 id="model-aliases">26<h3 id="model-aliases">


31 31 

32| Псевдоним модели | Поведение |32| Псевдоним модели | Поведение |

33| ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |33| ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

34| **`default`** | Специальное значение, которое очищает любое переопределение модели и возвращается к рекомендуемой модели для типа вашей учетной записи. Сам по себе не является псевдонимом модели |34| **`default`** | Специальное значение, которое очищает любое переопределение модели и возвращается к рекомендуемой модели для типа вашей учетной записи, или к [модели по умолчанию организации](#organization-default-model), когда администратор установил её. Сам по себе не является псевдонимом модели |

35| **`best`** | Использует Fable 5, где ваша организация имеет к нему доступ, в противном случае последнюю модель Opus |35| **`best`** | Использует Fable 5, где ваша организация имеет к нему доступ, в противном случае последнюю модель Opus |

36| **`fable`** | Использует Claude Fable 5 для ваших самых сложных и долгоживущих задач |36| **`fable`** | Использует Claude Fable 5 для ваших самых сложных и долгоживущих задач |

37| **`sonnet`** | Использует последнюю модель Sonnet для ежедневных задач кодирования |37| **`sonnet`** | Использует последнюю модель Sonnet для ежедневных задач кодирования |


84* `Enter`: переключить модель и сохранить в качестве значения по умолчанию84* `Enter`: переключить модель и сохранить в качестве значения по умолчанию

85* `s`: переключить модель только для этого сеанса85* `s`: переключить модель только для этого сеанса

86 86 

87Ввод `/model <name>` напрямую ведет себя как `Enter`. Параметры проекта и управляемые параметры по-прежнему имеют приоритет и переприменяются при следующем запуске.87Ввод `/model <name>` напрямую ведет себя как `Enter`. Параметры проекта и управляемые параметры по-прежнему имеют приоритет и переприменяются при следующем запуске. {/* min-version: 2.1.196 */}[Модель по умолчанию организации](#organization-default-model), которую администратор настроил для переопределения выбора пользователя, также переприменяется при следующем запуске.

88 88 

89В версиях v2.1.144 по v2.1.152 `/model` применялся только к текущему сеансу, а `d` в средстве выбора сохранял значение по умолчанию.89В версиях v2.1.144 по v2.1.152 `/model` применялся только к текущему сеансу, а `d` в средстве выбора сохранял значение по умолчанию.

90 90 


130* **Модель основного сеанса**: `/model`, флаг `--model`, переменная окружения `ANTHROPIC_MODEL`, параметр `model` и модель, восстановленная при [возобновлении сеанса](#setting-your-model)130* **Модель основного сеанса**: `/model`, флаг `--model`, переменная окружения `ANTHROPIC_MODEL`, параметр `model` и модель, восстановленная при [возобновлении сеанса](#setting-your-model)

131* **Разрешение псевдонимов**: {/* min-version: 2.1.176 */}переменные окружения `ANTHROPIC_DEFAULT_OPUS_MODEL`, `ANTHROPIC_DEFAULT_SONNET_MODEL`, `ANTHROPIC_DEFAULT_HAIKU_MODEL` и `ANTHROPIC_DEFAULT_FABLE_MODEL` не могут перенаправить разрешённый псевдоним на модель вне списка131* **Разрешение псевдонимов**: {/* min-version: 2.1.176 */}переменные окружения `ANTHROPIC_DEFAULT_OPUS_MODEL`, `ANTHROPIC_DEFAULT_SONNET_MODEL`, `ANTHROPIC_DEFAULT_HAIKU_MODEL` и `ANTHROPIC_DEFAULT_FABLE_MODEL` не могут перенаправить разрешённый псевдоним на модель вне списка

132* **Быстрый режим**: {/* min-version: 2.1.176 */}`/fast` отказывает переключаться, когда это неявно переключилось бы на модель Opus вне списка, с сообщением "is not in your organization's allowed models"132* **Быстрый режим**: {/* min-version: 2.1.176 */}`/fast` отказывает переключаться, когда это неявно переключилось бы на модель Opus вне списка, с сообщением "is not in your organization's allowed models"

133* **Модели подагентов**: поле `model` в [подагенте](/ru/sub-agents#choose-a-model) frontmatter, параметр `model` инструмента Agent, средство выбора модели в `/agents` и `CLAUDE_CODE_SUBAGENT_MODEL`133* **Модели подагентов**: поле `model` в [подагенте](/ru/sub-agents#choose-a-model) frontmatter, параметр `model` инструмента Agent, `CLAUDE_CODE_SUBAGENT_MODEL`, и на v2.1.197 и более ранних версиях средство выбора модели в `/agents` {/* max-version: 2.1.197 */}

134* **Модели навыков и команд**: frontmatter `model` в [навыках и командах](/ru/skills)134* **Модели навыков и команд**: frontmatter `model` в [навыках и командах](/ru/skills)

135* **Модель советника**: настроенный параметр [`advisorModel`](/ru/advisor) и флаг `--advisor`135* **Модель советника**: настроенный параметр [`advisorModel`](/ru/advisor) и флаг `--advisor`

136* **Модель фонового агента**: модель, выбранная в [средстве выбора диспетчера](/ru/agent-view)136* **Модель фонового агента**: модель, выбранная в [средстве выбора диспетчера](/ru/agent-view)

137 137 

138Переключение на заблокированную модель с помощью `/model` отклоняется с ошибкой, в то время как заблокированный флаг `--model`, `ANTHROPIC_MODEL` или значение параметра `model` заменяются при запуске с предупреждением, в котором указаны как запрошенная, так и подставленная модели, и сеанс начинается с моделью по умолчанию. Заблокированное переопределение подагента, навыка или команды возвращается к унаследованной или модели по умолчанию, а не к отказу в запросе; заблокированный параметр `advisorModel` отключает советника на время сеанса, в то время как заблокированное значение флага `--advisor` завершает работу с ошибкой при запуске. Исключённые модели скрыты из средства выбора `/model`.138Переключение на заблокированную модель с помощью `/model` отклоняется с ошибкой, в то время как заблокированный флаг `--model`, `ANTHROPIC_MODEL` или значение параметра `model` заменяются при запуске с предупреждением, в котором указаны как запрошенная, так и подставленная модели, и сеанс начинается с моделью по умолчанию. Заблокированное переопределение подагента, навыка или команды возвращается к унаследованной или модели по умолчанию, а не к отказу в запросе; заблокированный параметр `advisorModel` отключает советника на время сеанса, в то время как заблокированное значение флага `--advisor` завершает работу с ошибкой при запуске. Исключённые модели скрыты из средства выбора `/model`. {/* min-version: 2.1.199 */}Начиная с версии v2.1.199, полный идентификатор модели в списке, который не имеет встроенной строки средства выбора, такой как более старая версия, которую список закрепляет, появляется в средстве выбора `/model` как собственная помеченная строка. На более ранних версиях такой идентификатор доступен для выбора только путем ввода `/model <id>`.

139 139 

140Автоматические изменения модели проверяются таким же образом: элементы [цепочки резервной модели](#fallback-model-chains) вне списка разрешений удаляются, обновление режима планирования, такое как [`opusplan`](#opusplan-model-setting) на исключённую модель, пропускается, чтобы планирование продолжалось на модели сеанса, и [автоматический резервный вариант модели](#automatic-model-fallback), целевая модель которого исключена, не выполняется, поэтому помеченный запрос заканчивается отказом. Включение [быстрого режима](/ru/fast-mode) отклоняется, когда модель, на которой сеанс будет работать впоследствии, находится вне списка разрешений.140Автоматические изменения модели проверяются таким же образом: элементы [цепочки резервной модели](#fallback-model-chains) вне списка разрешений удаляются, обновление режима планирования, такое как [`opusplan`](#opusplan-model-setting) на исключённую модель, пропускается, чтобы планирование продолжалось на модели сеанса, и [автоматический резервный вариант модели](#automatic-model-fallback), целевая модель которого исключена, не выполняется, поэтому помеченный запрос заканчивается отказом. Включение [быстрого режима](/ru/fast-mode) отклоняется, когда модель, на которой сеанс будет работать впоследствии, находится вне списка разрешений.

141 141 


184}184}

185```185```

186 186 

187Когда модель по умолчанию для типа учётной записи пользователя не находится в списке разрешений, опция Default вместо этого разрешается на первую запись `availableModels`, которая называет разрешённую, доступную модель, и строка Default в средстве выбора `/model` показывает эту модель. Это применяется везде, где достигается значение по умолчанию: запуск сеанса, выбор Default в `/model`, ключевое слово `"default"` в [цепочках резервной модели](#fallback-model-chains) и резервный вариант, используемый при удалении исключённого выбора.187Опция Default разрешается к модели по умолчанию для типа учётной записи пользователя, или к [модели по умолчанию организации](#organization-default-model), когда администратор установил её. Когда эта модель не находится в списке разрешений, опция Default вместо этого разрешается на первую запись `availableModels`, которая называет разрешённую, доступную модель, и строка Default в средстве выбора `/model` показывает эту модель. Это применяется везде, где достигается значение по умолчанию: запуск сеанса, выбор Default в `/model`, ключевое слово `"default"` в [цепочках резервной модели](#fallback-model-chains) и резервный вариант, используемый при удалении исключённого выбора.

188 188 

189`enforceAvailableModels` не имеет эффекта, когда `availableModels` не установлен или пуст: с `availableModels: []` модель Default для типа учётной записи остаётся пригодной для использования, поэтому параметр не может заблокировать пользователей от каждой модели. Когда `availableModels` непуст, но ни одна запись не разрешается на разрешённую и доступную модель, применение деградирует и Default переходит к значению по умолчанию для типа учётной записи с предупреждением, видимым только под `--debug`. Сохраняйте по крайней мере одну гарантированно доступную запись в списке, чтобы избежать этого.189`enforceAvailableModels` не имеет эффекта, когда `availableModels` не установлен или пуст: с `availableModels: []` модель Default для типа учётной записи остаётся пригодной для использования, поэтому параметр не может заблокировать пользователей от каждой модели. Когда `availableModels` непуст, но ни одна запись не разрешается на разрешённую и доступную модель, применение деградирует и Default переходит к значению по умолчанию для типа учётной записи с предупреждением, видимым только под `--debug`. Сохраняйте по крайней мере одну гарантированно доступную запись в списке, чтобы избежать этого.

190 190 


246 246 

247Оба механизма применяются вместе: модель доступна для выбора только когда она разрешена `availableModels` и не ограничена организацией. Ограничения организации доставляются сеансам на API Anthropic и развёртываниях [LLM gateway](/ru/llm-gateway). Сеансы на Bedrock, Vertex AI, Foundry и Claude Platform на AWS не получают их, поэтому используйте `availableModels` на этих поставщиках вместо этого.247Оба механизма применяются вместе: модель доступна для выбора только когда она разрешена `availableModels` и не ограничена организацией. Ограничения организации доставляются сеансам на API Anthropic и развёртываниях [LLM gateway](/ru/llm-gateway). Сеансы на Bedrock, Vertex AI, Foundry и Claude Platform на AWS не получают их, поэтому используйте `availableModels` на этих поставщиках вместо этого.

248 248 

249<h2 id="organization-default-model">

250 Модель по умолчанию организации

251</h2>

252 

253{/* plan-availability: feature=org-default-model plans=enterprise */}

254 

255Администраторы организации на планах Claude Enterprise могут установить модель по умолчанию для членов Claude Code из консоли администратора claude.ai, для всей организации или для каждой пользовательской роли. Когда она установлена, опция Default разрешается к этой модели вместо [значения по умолчанию для типа учётной записи](#default-model-setting). Требует Claude Code v2.1.196 или более поздней версии.

256 

257Строка Default в средстве выбора `/model` показывает имя модели по умолчанию организации с меткой Org default. Метка читается как Org default независимо от того, установил ли администратор значение по умолчанию для всей организации или для вашей роли. Значение по умолчанию роли охватывает членов этой пользовательской роли и имеет приоритет над значением по умолчанию для всей организации; когда несколько ваших ролей устанавливают разные значения по умолчанию, применяется наиболее мощная модель.

258 

259Модель по умолчанию организации является отправной точкой, а не ограничением, и любой другой выбор модели имеет приоритет над ней:

260 

261* флаг `--model` и переменная окружения `ANTHROPIC_MODEL`

262* значение `model` в [управляемых параметрах](/ru/settings#settings-files) или предоставленное через `--settings`

263* значение `model` в ваших пользовательских, проектных или локальных параметрах, включая модель, которую вы сохраняете с помощью `/model`

264 

265Администраторы также могут настроить модель по умолчанию организации для переопределения выбора пользователя. При включении переопределения она имеет приоритет над значением `model` в пользовательских, проектных и локальных параметрах, поэтому модель, которую вы сохраняете с помощью `/model`, применяется для текущего сеанса, и модель по умолчанию организации возвращается при следующем запуске. Когда ваш выбор отличается, `/model` показывает `Your organization's default (<model>) applies on restart`. Флаг `--model`, `ANTHROPIC_MODEL`, управляемые параметры и `--settings` по-прежнему имеют приоритет даже при включённом переопределении. Переопределение доступно для ограниченного набора организаций; спросите о доступности у команды учетной записи Anthropic.

266 

267Чтобы ограничить, какие модели могут выбирать члены, используйте [ограничения модели организации](#organization-model-restrictions) или [`availableModels`](#restrict-model-selection) вместо этого.

268 

269Claude Code читает модель по умолчанию организации один раз при запуске, поэтому модель по умолчанию, которую администратор изменяет в середине сеанса, вступает в силу при следующем запуске.

270 

271Когда модель по умолчанию организации не переопределяет выбор пользователя, первый интерактивный запуск после того, как администратор её изменит, один раз очищает ключ `model` из ваших пользовательских параметров, поэтому применяется новое значение по умолчанию. Это не изменяет ничего другого в файле, и модель, которую вы сохраняете с помощью `/model` после этого запуска, сохраняется.

272 

273Модель по умолчанию организации проходит через те же проверки ограничений, что и любая другая модель Default перед её принятием:

274 

275* [`availableModels`](#restrict-model-selection) сам по себе никогда не ограничивает опцию Default, поэтому модель по умолчанию организации вне списка разрешений по-прежнему применяется. Когда также установлен [`enforceAvailableModels`](#enforce-the-allowlist-for-the-default-model), модель по умолчанию организации вне списка разрешений переназначается на первую запись списка разрешений, как и любой другой Default

276* модель по умолчанию организации, которую [ограничения модели организации](#organization-model-restrictions) отклоняют для вашей учётной записи, заменяется на самую новую разрешённую модель в её семействе, или на семейство с более низкой стоимостью, когда каждая версия его ограничена

277* модель по умолчанию организации, которая вообще недоступна для вашей учётной записи, такая как Fable 5 при [нулевом сохранении данных](/ru/zero-data-retention), пропускается, и опция Default разрешается к значению по умолчанию для типа учётной записи

278 

279Начиная с версии v2.1.199, когда модель по умолчанию организации является другим семейством моделей от обычного значения по умолчанию для типа учётной записи, средство выбора `/model` сохраняет отдельную строку для этого обычного семейства, поэтому вы всё ещё можете переключиться на него для сеанса. В версиях v2.1.196 по v2.1.198 эта строка отсутствует в средстве выбора.

280 

281Модель по умолчанию организации доставляется сеансам, аутентифицированным с помощью API Anthropic. Сеансы на развёртываниях [LLM gateway](/ru/llm-gateway), Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry и Claude Platform на AWS не получают её. Чтобы установить значение по умолчанию на этих развёртываниях, используйте ключ `model` в [управляемых параметрах](/ru/settings#settings-files) вместо этого.

282 

283<h2 id="organization-effort-limits">

284 Ограничения усилий организации

285</h2>

286 

287{/* plan-availability: feature=org-effort-limits plans=enterprise */}

288 

289Администраторы организации на планах Claude Enterprise могут установить максимальный [уровень усилий](#adjust-effort-level) для каждой модели для каждой пользовательской роли, наряду с [ограничениями модели организации](#organization-model-restrictions) на уровне роли. Уровни выше предела не предлагаются в средстве выбора `/effort`, и указание более высокого уровня с помощью `--effort` или `/effort` работает на пределе вместо этого. В интерактивных сеансах и простых текстовых запусках `--print` предупреждение называет запрошенный и применённый уровни; с выводом `json` или `stream-json` или в фоновых агентах зажим применяется молча. Пределы зависят от модели, поэтому переключение моделей может изменить, какие уровни доступны. Когда несколько ваших ролей предоставляют одну и ту же модель, применяется наименее ограничивающий предел. Требует Claude Code v2.1.195 или более поздней версии.

290 

291Ограничения усилий доставляются вместе с [ограничениями модели организации](#organization-model-restrictions) и следуют той же доступности поставщика: сеансы на Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry и Claude Platform на AWS не получают их.

292 

249<h2 id="special-model-behavior">293<h2 id="special-model-behavior">

250 Специальное поведение модели294 Специальное поведение модели

251</h2>295</h2>


263 307 

264Enterprise с оплатой по мере использования означает организацию Enterprise, выставляемую счет по использованию, а не по месту подписки.308Enterprise с оплатой по мере использования означает организацию Enterprise, выставляемую счет по использованию, а не по месту подписки.

265 309 

266Когда управляемые параметры [применяют список разрешений для модели Default](#enforce-the-allowlist-for-the-default-model) и значение по умолчанию для типа учетной записи отсутствует в `availableModels`, `default` разрешается в применяемый Default вместо значения по умолчанию для типа учетной записи выше.310Когда администратор установил [модель по умолчанию организации](#organization-default-model), `default` разрешается к этой модели вместо значения по умолчанию для типа учётной записи выше. Требует Claude Code v2.1.196 или более поздней версии.

311 

312Когда управляемые параметры [применяют список разрешений для модели Default](#enforce-the-allowlist-for-the-default-model) и значение по умолчанию для типа учетной записи отсутствует в `availableModels`, `default` разрешается в применяемый Default вместо значения по умолчанию для типа учетной записи выше. Когда применяются оба, модель по умолчанию организации сначала заменяет значение по умолчанию для типа учётной записи, а затем применяется применение: разрешённое значение по умолчанию организации сохраняется, в то время как значение вне списка разрешается в применяемый Default.

267 313 

268Fable 5 не является моделью по умолчанию ни для одного типа учетной записи. Сеансы используют Fable 5 только после того, как вы выберете его с помощью `/model fable`, параметра `model` или псевдонима `best`, где доступна Fable 5. Выбор его с помощью `/model` сохраняет его как выбранную модель в параметрах пользователя, поэтому более поздние сеансы начинаются с Fable 5, пока вы не измените модели.314Fable 5 не является моделью по умолчанию ни для одного типа учетной записи. Сеансы используют Fable 5 только после того, как вы выберете его с помощью `/model fable`, параметра `model` или псевдонима `best`, где доступна Fable 5. Выбор его с помощью `/model` сохраняет его как выбранную модель в параметрах пользователя, поэтому более поздние сеансы начинаются с Fable 5, пока вы не измените модели.

269 315 


379| Sonnet 5, Opus 4.8 и Opus 4.7 | `low`, `medium`, `high`, `xhigh`, `max` |425| Sonnet 5, Opus 4.8 и Opus 4.7 | `low`, `medium`, `high`, `xhigh`, `max` |

380| Opus 4.6 и Sonnet 4.6 | `low`, `medium`, `high`, `max` |426| Opus 4.6 и Sonnet 4.6 | `low`, `medium`, `high`, `max` |

381 427 

382Если вы установите уровень, который активная модель не поддерживает, Claude Code вернется к наивысшему поддерживаемому уровню на или ниже установленного вами. Например, `xhigh` работает как `high` на Opus 4.6.428Если вы установите уровень, который активная модель не поддерживает, Claude Code вернется к наивысшему поддерживаемому уровню на или ниже установленного вами. Например, `xhigh` работает как `high` на Opus 4.6. Ваша организация также может ограничить, какие уровни доступны для модели; см. [Ограничения усилий организации](#organization-effort-limits).

383 429 

384Усилие по умолчанию составляет `high` на Fable 5, Sonnet 5, Opus 4.8, Opus 4.6 и Sonnet 4.6, и `xhigh` на Opus 4.7.430Усилие по умолчанию составляет `high` на Fable 5, Sonnet 5, Opus 4.8, Opus 4.6 и Sonnet 4.6, и `xhigh` на Opus 4.7.

385 431 


449| :------------------------------------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |495| :------------------------------------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

450| Переключение для текущего сеанса | Нажмите `Option+T` на macOS или `Alt+T` на Windows и Linux |496| Переключение для текущего сеанса | Нажмите `Option+T` на macOS или `Alt+T` на Windows и Linux |

451| Установка глобального значения по умолчанию | Запустите `/config` и переключите режим мышления. Сохраняется как `alwaysThinkingEnabled` в `~/.claude/settings.json` |497| Установка глобального значения по умолчанию | Запустите `/config` и переключите режим мышления. Сохраняется как `alwaysThinkingEnabled` в `~/.claude/settings.json` |

452| Отключение независимо от усилий | Установите [`MAX_THINKING_TOKENS=0`](/ru/env-vars), что отключает мышление на Anthropic API, кроме Fable 5. На [поставщиках третьих сторон](/ru/third-party-integrations) это опускает параметр `thinking` вместо этого, и модели адаптивного рассуждения могут все еще думать. Другие значения применяются только с [фиксированным бюджетом мышления](#adaptive-reasoning-and-fixed-thinking-budgets) |498| Отключение независимо от усилий | Установите [`MAX_THINKING_TOKENS=0`](/ru/env-vars), что отключает мышление на Anthropic API, кроме Fable 5. На [поставщиках третьих сторон](/ru/third-party-integrations) это опускает параметр `thinking` вместо этого, и модели адаптивного рассуждения могут все ещё думать. Другие значения применяются только с [фиксированным бюджетом мышления](#adaptive-reasoning-and-fixed-thinking-budgets) |

453 499 

454Мышление не может быть отключено на Fable 5. Переключение сеанса, `alwaysThinkingEnabled` и `MAX_THINKING_TOKENS=0` не имеют там никакого эффекта, и Fable 5 решает на каждом шаге, сколько думать на основе уровня усилий.500Мышление не может быть отключено на Fable 5. Переключение сеанса, `alwaysThinkingEnabled` и `MAX_THINKING_TOKENS=0` не имеют там никакого эффекта, и Fable 5 решает на каждом шаге, сколько думать на основе уровня усилий.

455 501 


575* Суффикс читается для каждой переменной, а не для каждой модели. На Bedrock, Vertex и Foundry идентификатор модели без `[1m]` в одной переменной использует контекст 200K, даже если другая переменная устанавливает ту же модель с суффиксом. Sonnet 5 всегда работает с окном 1M на этих поставщиках и никогда не требует суффикса.621* Суффикс читается для каждой переменной, а не для каждой модели. На Bedrock, Vertex и Foundry идентификатор модели без `[1m]` в одной переменной использует контекст 200K, даже если другая переменная устанавливает ту же модель с суффиксом. Sonnet 5 всегда работает с окном 1M на этих поставщиках и никогда не требует суффикса.

576 622 

577<Note>623<Note>

578 Список разрешений `availableModels`, доставленный через [MDM или управляемый файл параметров](/ru/settings#settings-files), все еще применяется при использовании поставщиков третьих сторон; [параметры, управляемые сервером, не доставляются туда](/ru/server-managed-settings#platform-availability). Фильтрация соответствует псевдониму модели, такому как `opus`, префиксу версии, такому как `claude-opus-4-8`, или полному идентификатору модели в форме поставщика. Префиксы, специфичные для поставщика, такие как `us.anthropic.`, не удаляются, поэтому для разрешения конкретной модели укажите ту же форму идентификатора поставщика, которую показывает средство выбора, или отобразите ее через [`modelOverrides`](#override-model-ids-per-version). Любой суффикс `[1m]` удаляется как из записи списка разрешений, так и из запрашиваемой модели перед сопоставлением.624 Список разрешений `availableModels`, доставленный через [MDM или управляемый файл параметров](/ru/settings#settings-files), все ещё применяется при использовании поставщиков третьих сторон; [параметры, управляемые сервером, не доставляются туда](/ru/server-managed-settings#platform-availability). Фильтрация соответствует псевдониму модели, такому как `opus`, префиксу версии, такому как `claude-opus-4-8`, или полному идентификатору модели в форме поставщика. Префиксы, специфичные для поставщика, такие как `us.anthropic.`, не удаляются, поэтому для разрешения конкретной модели укажите ту же форму идентификатора поставщика, которую показывает средство выбора, или отобразите ее через [`modelOverrides`](#override-model-ids-per-version). Любой суффикс `[1m]` удаляется как из записи списка разрешений, так и из запрашиваемой модели перед сопоставлением.

579</Note>625</Note>

580 626 

581<h3 id="customize-pinned-model-display-and-capabilities">627<h3 id="customize-pinned-model-display-and-capabilities">

Details

1186 1186 

1187Claude Code повторяет неудачные запросы API внутри и выдает одно событие `claude_code.api_error` только после того, как сдается, поэтому само событие является терминальным сигналом для этого запроса. Промежуточные повторные попытки не логируются как отдельные события.1187Claude Code повторяет неудачные запросы API внутри и выдает одно событие `claude_code.api_error` только после того, как сдается, поэтому само событие является терминальным сигналом для этого запроса. Промежуточные повторные попытки не логируются как отдельные события.

1188 1188 

1189Атрибут `attempt` на событии записывает, сколько попыток было сделано в общей сложности. `CLAUDE_CODE_MAX_RETRIES` по умолчанию равен `10` и ограничен `15`. Когда запрос исчерпывает все повторные попытки при переходной ошибке, `attempt` равен на один больше, чем это эффективное ограничение: 11 по умолчанию и никогда не более 16. Более низкое значение указывает на неповторяемую ошибку, такую как ответ `400`.1189Атрибут `attempt` на событии записывает общее количество попыток. `CLAUDE_CODE_MAX_RETRIES` по умолчанию равен 10 и ограничен 15; {/* min-version: 2.1.199 */}начиная с версии 2.1.199, `CLAUDE_CODE_RETRY_WATCHDOG` повышает значение по умолчанию и снимает ограничение. Когда запрос исчерпывает все повторные попытки при переходной ошибке, `attempt` равен на один больше, чем это эффективное ограничение: 11 по умолчанию и никогда не более 16, если не установлен watchdog. Более низкое значение указывает на неповторяемую ошибку, такую как ответ `400`.

1190 1190 

1191Чтобы различить сеанс, который восстановился, от того, который застопорился, сгруппируйте события по `session.id` и проверьте, существует ли более позднее событие `api_request` после ошибки.1191Чтобы различить сеанс, который восстановился, от того, который застопорился, сгруппируйте события по `session.id` и проверьте, существует ли более позднее событие `api_request` после ошибки.

1192 1192 

Details

237* Force push или прямая отправка на `main`237* Force push или прямая отправка на `main`

238* {/* min-version: 2.1.182 */}`git reset --hard`, `git checkout -- .`, `git restore .`, `git clean -fd`, `git stash drop` или `git stash clear`, которые классификатор предполагает отбросят незафиксированные изменения238* {/* min-version: 2.1.182 */}`git reset --hard`, `git checkout -- .`, `git restore .`, `git clean -fd`, `git stash drop` или `git stash clear`, которые классификатор предполагает отбросят незафиксированные изменения

239* `git commit --amend` когда коммит в HEAD не был создан в этом сеансе239* `git commit --amend` когда коммит в HEAD не был создан в этом сеансе

240* {/* min-version: 2.1.198 */}}От v2.1.198 `git commit --amend` когда коммит в HEAD уже был отправлен. Переформулировка только сообщения не блокируется: `--amend -m` без ничего вновь подготовленного, на коммите, который Claude создал во время этого сеанса

240* `terraform destroy`, `pulumi destroy`, `cdk destroy` или `terragrunt destroy`, и применение плана, который уничтожает ресурсы241* `terraform destroy`, `pulumi destroy`, `cdk destroy` или `terragrunt destroy`, и применение плана, который уничтожает ресурсы

241 242 

242Claude Code v2.1.195 и позже блокируют больше категорий по умолчанию. Несколько зависят от записей [environment](/ru/auto-mode-config#define-trusted-infrastructure), таких как чувствительные удалённые цели и защищённые области IaC, которые вы можете сузить до конкретных имён.243Claude Code v2.1.195 и позже блокируют больше категорий по умолчанию. Несколько зависят от записей [environment](/ru/auto-mode-config#define-trusted-infrastructure), таких как чувствительные удалённые цели и защищённые области IaC, которые вы можете сузить до конкретных имён.


251* Интерактивные оболочки или port-forwards в чувствительную удалённую цель252* Интерактивные оболочки или port-forwards в чувствительную удалённую цель

252* Открытие туннеля или обратной оболочки, которая делает локальный сервис доступным из общедоступного интернета253* Открытие туннеля или обратной оболочки, которая делает локальный сервис доступным из общедоступного интернета

253* Вывод живого учётного данного или токена в стенограмму или файл254* Вывод живого учётного данного или токена в стенограмму или файл

254* Доступ к местоположению PII или регулируемых данных или копирование данных из одного255* Доступ к местоположению, указанному как чувствительное местоположение данных в вашем [environment](/ru/auto-mode-config#define-trusted-infrastructure), или копирование данных из одного. {/* min-version: 2.1.198 */}Начиная с v2.1.198 это также блокирует отправку данных из одного аудитории, которую запись исключает

255* Маршрутизация установки пакета вокруг вашего внутреннего реестра пакетов в общедоступный реестр256* Маршрутизация установки пакета вокруг вашего внутреннего реестра пакетов в общедоступный реестр. {/* min-version: 2.1.198 */}Начиная с v2.1.198 это также применяется когда вы сказали Claude, что внутренний реестр или зеркало существует в разговоре, а не только когда один указан в вашем environment

256* Запуск команды с флагом, который отключает защиту безопасности, например `--insecure`257* Запуск команды с флагом, который отключает защиту безопасности, например `--insecure`

258* Запуск автономного цикла агента, который работает без одобрения человека или песочницы, такой как один запущенный с `--dangerously-skip-permissions` или `--no-sandbox`. {/* min-version: 2.1.198 */}Начиная с v2.1.198 это также охватывает запуск агента третьей стороны или eval harness с отключённой изоляцией и одобрением для каждого действия, такой как runner запущенный с `--yes-always`

257* [Claude in Chrome](/ru/chrome) действия браузера, которые могут отправлять содержимое страницы, файлы cookie или учётные данные за пределы источника259* [Claude in Chrome](/ru/chrome) действия браузера, которые могут отправлять содержимое страницы, файлы cookie или учётные данные за пределы источника

258 260 

261Claude Code v2.1.198 и позже также блокируют эти действия по умолчанию:

262 

263* Удаление файлов в `/tmp`, `$TMPDIR` или другом общем каталоге scratch или cache по подстановочному знаку, glob или фильтру возраста, а не по конкретному названному пути

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

265* Отправка нажатий клавиш в собственную tmux pane Claude Code для управления его собственным интерфейсом, что классификатор рассматривает как Claude изменяющий свои собственные разрешения или надзор

266 

259**Разрешается по умолчанию**:267**Разрешается по умолчанию**:

260 268 

261* Локальные операции с файлами в вашем рабочем каталоге269* Локальные операции с файлами в вашем рабочем каталоге


272* Отправка данных на доверенные домены, корзины и сервисы, которые вы указываете в [`environment`](/ru/auto-mode-config#define-trusted-infrastructure). Это охватывает только поток данных, а не деструктивные или операции с учётными данными на той же инфраструктуре280* Отправка данных на доверенные домены, корзины и сервисы, которые вы указываете в [`environment`](/ru/auto-mode-config#define-trusted-infrastructure). Это охватывает только поток данных, а не деструктивные или операции с учётными данными на той же инфраструктуре

273* [Claude in Chrome](/ru/chrome) навигация на доверенный внутренний домен, localhost или URL, который вы назвали281* [Claude in Chrome](/ru/chrome) навигация на доверенный внутренний домен, localhost или URL, который вы назвали

274 282 

275Запросы доступа к сети в песочнице маршрутизируются через классификатор, а не разрешаются по умолчанию. Запустите `claude auto-mode defaults`, чтобы увидеть полные списки правил. Если обычные действия блокируются, администратор может добавить доверенные репозитории, корзины и сервисы через параметр `autoMode.environment`: см. [Настройка режима auto](/ru/auto-mode-config).283Запросы доступа к сети в песочнице маршрутизируются через классификатор, а не разрешаются по умолчанию. {/* min-version: 2.1.198 */}Начиная с v2.1.198 классификатор повторно использует свой вердикт для сетевого хоста и порта вместо повторного запуска при каждом подключении:

284 

285* Разрешение повторно используется до тех пор, пока в разговор не поступит новое содержимое, в этот момент этот хост проверяется снова

286* В интерактивном CLI отказ отбрасывается когда ход заканчивается

287* В [неинтерактивном режиме](/ru/headless) и сеансах Agent SDK нет границы хода, поэтому отказ повторно используется для остальной части запуска

288* Изменение вашего режима разрешений или правил отбрасывает все кэшированные вердикты

289 

290Запустите `claude auto-mode defaults`, чтобы увидеть полные списки правил. Если обычные действия блокируются, администратор может добавить доверенные репозитории, корзины и сервисы через параметр `autoMode.environment`: см. [Настройка режима auto](/ru/auto-mode-config).

276 291 

277<h3 id="boundaries-you-state-in-conversation">292<h3 id="boundaries-you-state-in-conversation">

278 Границы, которые вы указываете в разговоре293 Границы, которые вы указываете в разговоре


300 315 

301 1. Действия, соответствующие вашим [правилам allow или deny](/ru/permissions#manage-permissions), разрешаются немедленно, кроме записей в [защищённые пути](#protected-paths), которые маршрутизируются классификатору даже когда правило allow совпадает316 1. Действия, соответствующие вашим [правилам allow или deny](/ru/permissions#manage-permissions), разрешаются немедленно, кроме записей в [защищённые пути](#protected-paths), которые маршрутизируются классификатору даже когда правило allow совпадает

302 2. Действия только для чтения и редактирование файлов в вашем рабочем каталоге автоматически одобряются, кроме записей в [защищённые пути](#protected-paths)317 2. Действия только для чтения и редактирование файлов в вашем рабочем каталоге автоматически одобряются, кроме записей в [защищённые пути](#protected-paths)

303 3. Всё остальное идёт классификатору318 3. Всё остальное идёт классификатору. {/* min-version: 2.1.199 */}Начиная с v2.1.199 инструмент MCP, отмеченный с [`_meta["anthropic/requiresUserInteraction"]`](/ru/mcp#require-approval-for-a-specific-tool), пропускает классификатор и запрашивает вас напрямую, поэтому шаг согласия никогда не одобряется автоматически от имени автора инструмента

304 4. Если классификатор блокирует, Claude получает причину и пытается найти альтернативу319 4. Если классификатор блокирует, Claude получает причину и пытается найти альтернативу

305 320 

306 При входе в режим auto широкие правила allow, которые предоставляют произвольное выполнение кода, отбрасываются:321 При входе в режим auto широкие правила allow, которые предоставляют произвольное выполнение кода, отбрасываются:


326 </Accordion>341 </Accordion>

327 342 

328 <Accordion title="Стоимость и задержка">343 <Accordion title="Стоимость и задержка">

329 Классификатор работает на модели, настроенной на сервере, которая независима от вашего выбора `/model`, поэтому переключение моделей не изменяет доступность классификатора. Вызовы классификатора учитываются в использовании токенов. Каждая проверка отправляет часть стенограммы плюс ожидающее действие, добавляя круговой путь перед выполнением. Чтение и редактирование рабочего каталога вне защищённых путей пропускают классификатор, поэтому накладные расходы поступают в основном от команд оболочки и сетевых операций.344 Классификатор работает на модели, настроенной на сервере, которая независима от вашего выбора `/model`, поэтому переключение моделей не изменяет доступность классификатора. Вызовы классификатора учитываются в использовании токенов. Каждая проверка отправляет часть стенограммы плюс ожидающее действие, добавляя круговой путь перед выполнением. Чтение и редактирование рабочего каталога вне защищённых путей пропускают классификатор, поэтому накладные расходы поступают в основном от команд оболочки и сетевых операций. {/* min-version: 2.1.198 */}Начиная с v2.1.198 вердикт песочницы для сетевого хоста и порта повторно используется вместо переклассификации при каждом подключении, поэтому повторные подключения к одному хосту не добавляют каждый раз проверку. [Что классификатор блокирует по умолчанию](#what-the-classifier-blocks-by-default) описывает как долго разрешение и отказ длятся.

330 </Accordion>345 </Accordion>

331</AccordionGroup>346</AccordionGroup>

332 347 


334 Разрешить только предварительно одобренные инструменты с режимом dontAsk349 Разрешить только предварительно одобренные инструменты с режимом dontAsk

335</h2>350</h2>

336 351 

337Режим `dontAsk` автоматически отклоняет каждый вызов инструмента, который иначе требовал бы запроса. Только действия, соответствующие вашим правилам `permissions.allow` и [командам Bash только для чтения](/ru/permissions#read-only-commands), могут выполняться; явные правила [`ask`](/ru/permissions#manage-permissions) отклоняются, а не запрашиваются. Это делает режим полностью неинтерактивным для конвейеров CI или ограниченных сред, где вы предварительно определяете ровно то, что Claude может делать. Облачные сеансы на [Claude Code в веб-версии](/ru/claude-code-on-the-web) игнорируют `defaultMode: "dontAsk"`; см. [bypassPermissions](#skip-all-checks-with-bypasspermissions-mode) для получения подробной информации.352Режим `dontAsk` автоматически отклоняет каждый вызов инструмента, который иначе требовал бы запроса. Строка состояния показывает `⏵⏵ don't ask on`, пока этот режим активен. Только действия, соответствующие вашим правилам `permissions.allow` и [командам Bash только для чтения](/ru/permissions#read-only-commands), могут выполняться; явные правила [`ask`](/ru/permissions#manage-permissions) отклоняются, а не запрашиваются. {/* min-version: 2.1.199 */}Начиная с версии 2.1.199, инструмент MCP, отмеченный с помощью [`_meta["anthropic/requiresUserInteraction"]`](/ru/mcp#require-approval-for-a-specific-tool), также отклоняется в этом режиме даже при совпадении правила разрешения, поскольку его карточка одобрения требует ответа, который этот режим никогда не собирает. Это делает режим полностью неинтерактивным для конвейеров CI или ограниченных сред, где вы предварительно определяете ровно то, что Claude может делать. Облачные сеансы на [Claude Code в веб-версии](/ru/claude-code-on-the-web) игнорируют `defaultMode: "dontAsk"`; см. [bypassPermissions](#skip-all-checks-with-bypasspermissions-mode) для получения подробной информации.

338 353 

339Установите его при запуске с флагом:354Установите его при запуске с флагом:

340 355 


346 Пропустить все проверки с режимом bypassPermissions361 Пропустить все проверки с режимом bypassPermissions

347</h2>362</h2>

348 363 

349Режим `bypassPermissions` отключает запросы разрешений и проверки безопасности, чтобы вызовы инструментов выполнялись немедленно. Начиная с версии 2.1.126, это включает записи в [защищённые пути](#protected-paths), на которые более ранние версии по-прежнему выдавали запросы. Явные [правила ask](/ru/permissions#manage-permissions) по-прежнему принудительно выдают запрос в этом режиме, а удаления, нацеленные на корневой каталог файловой системы или домашний каталог, такие как `rm -rf /` и `rm -rf ~`, по-прежнему выдают запросы в качестве защиты от ошибок модели. Используйте этот режим только в изолированных средах, таких как контейнеры, виртуальные машины или dev containers без доступа в Интернет, где Claude Code не может повредить вашу хост-систему.364Режим `bypassPermissions` отключает запросы разрешений и проверки безопасности, чтобы вызовы инструментов выполнялись немедленно. Начиная с версии 2.1.126, это включает записи в [защищённые пути](#protected-paths), на которые более ранние версии по-прежнему выдавали запросы. Явные [правила ask](/ru/permissions#manage-permissions) по-прежнему принудительно выдают запрос в этом режиме, а удаления, нацеленные на корневой каталог файловой системы или домашний каталог, такие как `rm -rf /` и `rm -rf ~`, по-прежнему выдают запросы в качестве защиты от ошибок модели. {/* min-version: 2.1.199 */}Начиная с версии 2.1.199, инструменты MCP, отмеченные с помощью [`_meta["anthropic/requiresUserInteraction"]`](/ru/mcp#require-approval-for-a-specific-tool), также по-прежнему выдают запросы. Используйте этот режим только в изолированных средах, таких как контейнеры, виртуальные машины или dev containers без доступа в Интернет, где Claude Code не может повредить вашу хост-систему.

350 365 

351Вы не можете войти в `bypassPermissions` из сеанса, который был запущен без одного из включающих флагов; перезапустите с одним, чтобы включить его:366Вы не можете войти в `bypassPermissions` из сеанса, который был запущен без одного из включающих флагов; перезапустите с одним, чтобы включить его:

352 367 

permissions.md +14 −3

Details

272Правила Read и Edit следуют спецификации [gitignore](https://git-scm.com/docs/gitignore) с четырьмя различными типами шаблонов:272Правила Read и Edit следуют спецификации [gitignore](https://git-scm.com/docs/gitignore) с четырьмя различными типами шаблонов:

273 273 

274| Шаблон | Значение | Пример | Совпадает |274| Шаблон | Значение | Пример | Совпадает |

275| ------------------- | ----------------------------------------- | -------------------------------- | ------------------------------ |275| ------------------- | ----------------------------------------- | -------------------------------- | ------------------------------------------------- |

276| `//path` | Абсолютный путь от корня файловой системы | `Read(//Users/alice/secrets/**)` | `/Users/alice/secrets/**` |276| `//path` | Абсолютный путь от корня файловой системы | `Read(//Users/alice/secrets/**)` | `/Users/alice/secrets/**` |

277| `~/path` | Путь от домашнего каталога | `Read(~/Documents/*.pdf)` | `/Users/alice/Documents/*.pdf` |277| `~/path` | Путь от домашнего каталога | `Read(~/Documents/*.pdf)` | `/Users/alice/Documents/*.pdf` |

278| `/path` | Путь относительно корня проекта | `Edit(/src/**/*.ts)` | `<project root>/src/**/*.ts` |278| `/path` | Путь относительно источника параметров | `Edit(/src/**/*.ts)` | `<project root>/src/**/*.ts` в параметрах проекта |

279| `path` или `./path` | Путь относительно текущего каталога | `Read(*.env)` | `<cwd>/*.env` |279| `path` или `./path` | Путь относительно текущего каталога | `Read(*.env)` | `<cwd>/*.env` |

280 280 

281<Warning>281<Warning>

282 Шаблон, такой как `/Users/alice/file`, НЕ является абсолютным путем. Это относительно корня проекта. Используйте `//Users/alice/file` для абсолютных путей.282 Шаблон, такой как `/Users/alice/file`, не является абсолютным путем. Одиночная косая черта якорирует источник параметров, а не корень файловой системы. Используйте `//Users/alice/file` для абсолютных путей.

283</Warning>283</Warning>

284 284 

285Шаблон `/path` якорирует в каталоге, связанном с файлом параметров, который его определяет, поэтому одно и то же правило совпадает с разными местоположениями в зависимости от того, где вы его разместите:

286 

287| Правило определено в | `/path` разрешается в |

288| :----------------------------------------------------------------- | :------------------------- |

289| Параметры проекта или локальные, такие как `.claude/settings.json` | `<project root>/path` |

290| Параметры пользователя в `~/.claude/settings.json` | `~/.claude/path` |

291| Файл, переданный с `--settings <file>` | `<directory of file>/path` |

292| Флаги CLI, `/permissions` или правила сеанса | `<original cwd>/path` |

293 

294Правило deny, такое как `Read(/secrets/**)` в параметрах пользователя, блокирует `~/.claude/secrets/**`, а не каталог `secrets` в вашем проекте. Чтобы написать правило в параметрах пользователя, которое применяется внутри каждого проекта, используйте абсолютный путь `//` или путь относительно дома `~/` вместо этого.

295 

285На Windows пути нормализуются в форму POSIX перед сопоставлением. `C:\Users\alice` становится `/c/Users/alice`, поэтому используйте `//c/**/.env` для сопоставления файлов `.env` в любом месте на этом диске. Чтобы сопоставить все диски, используйте `//**/.env`.296На Windows пути нормализуются в форму POSIX перед сопоставлением. `C:\Users\alice` становится `/c/Users/alice`, поэтому используйте `//c/**/.env` для сопоставления файлов `.env` в любом месте на этом диске. Чтобы сопоставить все диски, используйте `//**/.env`.

286 297 

287Примеры:298Примеры:

plugins.md +2 −2

Details

352По мере внесения изменений в ваш plugin запустите `/reload-plugins` для применения обновлений без перезагрузки. Это перезагружает plugins, skills, agents, hooks, plugin MCP servers и plugin LSP servers. Протестируйте компоненты вашего plugin:352По мере внесения изменений в ваш plugin запустите `/reload-plugins` для применения обновлений без перезагрузки. Это перезагружает plugins, skills, agents, hooks, plugin MCP servers и plugin LSP servers. Протестируйте компоненты вашего plugin:

353 353 

354* Попробуйте ваши skills с `/plugin-name:skill-name`354* Попробуйте ваши skills с `/plugin-name:skill-name`

355* Проверьте, что agents появляются в `/agents`355* Проверьте, что agents появляются в `/context` под Custom Agents, или упомяните один по его scoped name с помощью @

356* Убедитесь, что hooks работают как ожидается356* Убедитесь, что hooks работают как ожидается

357 357 

358<Tip>358<Tip>


502 claude --plugin-dir ./my-plugin502 claude --plugin-dir ./my-plugin

503 ```503 ```

504 504 

505 Протестируйте каждый компонент: запустите ваши команды, проверьте, что agents появляются в `/agents`, и убедитесь, что hooks срабатывают правильно.505 Протестируйте каждый компонент: запустите ваши команды, проверьте, что agents появляются в `/context`, и убедитесь, что hooks срабатывают правильно.

506 </Step>506 </Step>

507</Steps>507</Steps>

508 508 

Details

79 79 

80**Точки интеграции**:80**Точки интеграции**:

81 81 

82* Агенты появляются в интерфейсе `/agents`82* Агенты появляются в интерфейсе [@-mention typeahead](/ru/sub-agents#invoke-subagents-explicitly) под их областью видимости, такой как `my-plugin:code-reviewer`, после включения плагина

83* Claude может вызывать агентов автоматически на основе контекста задачи83* Claude может вызывать агентов автоматически на основе контекста задачи

84* Агенты могут быть вызваны вручную пользователями84* Агенты могут быть вызваны вручную пользователями

85* Плагины agents работают наряду со встроенными agents Claude85* Плагины agents работают наряду со встроенными agents Claude

sandboxing.md +42 −4

Details

199 Защита учётных данных199 Защита учётных данных

200</h3>200</h3>

201 201 

202Параметр `sandbox.credentials` объявляет файлы учётных данных и переменные окружения, к которым изолированные команды не должны получать доступ. Перечисленные пути файлов запрещены для чтения внутри sandbox, применяется тот же блок, что и `filesystem.denyRead`, и перечисленные переменные окружения удаляются перед каждой изолированной командой. Выделенный блок `credentials` сохраняет правила учётных данных сгруппированными с удалением переменных окружения и отдельно от общих правил файловой системы. Требуется Claude Code v2.1.187 или позже.202Параметр `sandbox.credentials` объявляет файлы учётных данных и переменные окружения для защиты от изолированных команд. Каждая запись называет путь файла или переменную окружения и `mode`. Выделенный блок `credentials` сохраняет правила учётных данных сгруппированными и отдельно от общих правил файловой системы. Требуется Claude Code v2.1.187 или позже.

203 

204Для записей с `"mode": "deny"` пути файлов запрещены для чтения внутри sandbox, применяется то же ограничение, что и `filesystem.denyRead`, и переменные окружения удаляются перед каждой изолированной командой.

203 205 

204Пример ниже блокирует чтение файла учётных данных AWS и каталога SSH и удаляет `GITHUB_TOKEN` и `NPM_TOKEN` из окружения изолированных команд:206Пример ниже блокирует чтение файла учётных данных AWS и каталога SSH и удаляет `GITHUB_TOKEN` и `NPM_TOKEN` из окружения изолированных команд:

205 207 


221}223}

222```224```

223 225 

224Каждая запись содержит `"mode": "deny"`, что является единственным поддерживаемым значением. Явное поле `mode` сохраняет схему совместимой с будущими режимами. Пути файлов следуют тем же [правилам префиксов](/ru/settings#sandbox-path-prefixes), что и параметры `sandbox.filesystem.*`, и записи из каждой [области параметров](/ru/settings#settings-precedence) объединяются. Поскольку единственный режим — это `deny`, любая область может добавлять ограничения, но ни одна не может их удалять.226Записи файлов поддерживают только `"mode": "deny"`. Записи переменных окружения также принимают `"mode": "mask"`, описанные ниже.

227 

228Пути файлов следуют тем же [правилам префиксов](/ru/settings#sandbox-path-prefixes), что и параметры `sandbox.filesystem.*`, и записи `deny` из каждой [области параметров](/ru/settings#settings-precedence) объединяются. Запись `deny` только сужает доступ, поэтому любая область может добавить одну, но ни одна не может удалить ту, которую добавила другая область.

225 229 

226Встроенного списка запрещённых учётных данных нет, поэтому ограничены только файлы и переменные, которые вы указали. Параметр влияет только на изолированные команды Bash. Чтобы удалить учётные данные Anthropic и поставщиков облачных услуг из всех подпроцессов независимо от sandboxing, установите [`CLAUDE_CODE_SUBPROCESS_ENV_SCRUB`](/ru/env-vars).230Встроенного списка запрещённых учётных данных нет, поэтому ограничены только файлы и переменные, которые вы указали. Параметр влияет только на изолированные команды Bash. Чтобы удалить учётные данные Anthropic и поставщиков облачных услуг из всех подпроцессов независимо от sandboxing, установите [`CLAUDE_CODE_SUBPROCESS_ENV_SCRUB`](/ru/env-vars).

227 231 

232<h4 id="mask-environment-variables">

233 Маскирование переменных окружения

234</h4>

235 

236`"mode": "mask"` защищает учётные данные, сохраняя работу инструментов, которые с ними аутентифицируются. `deny` удаляет переменную полностью, что также нарушает работу инструментов, которые её требуют, таких как `gh` или `npm`. Требуется Claude Code v2.1.199 или позже.

237 

238С `mask` изолированная команда видит значение-дозорное значение для каждого сеанса вместо реального. Когда запрос покидает sandbox для одного из хостов учётных данных `injectHosts`, [прокси sandbox](#network-isolation) заменяет дозорное значение на реальное. Команда и всё, что она логирует, никогда не содержат реальные учётные данные, но её запросы по-прежнему аутентифицируются.

239 

240Прокси подставляет учётные данные внутри содержимого запроса, поэтому он должен их видеть. Установите [`network.tlsTerminate`](/ru/settings#sandbox-settings) так, чтобы прокси сам завершал HTTPS. Без этого маскирование закрывается неудачей: команда по-прежнему видит только дозорное значение, но дозорное значение достигает сервера без изменений и аутентификация не удаётся. Claude Code сообщает об этой неправильной конфигурации при запуске и в `/doctor`.

241 

242Пример ниже маскирует два токена. `GH_TOKEN` подставляется только на запросы к `api.github.com`, в то время как `NPM_TOKEN` не имеет `injectHosts` и подставляется на запросы ко всем хостам в `network.allowedDomains`. Каждая запись `injectHosts` сама должна быть охвачена `network.allowedDomains`.

243 

244```json theme={null}

245{

246 "sandbox": {

247 "enabled": true,

248 "network": {

249 "tlsTerminate": {},

250 "allowedDomains": ["*.github.com", "registry.npmjs.org"]

251 },

252 "credentials": {

253 "envVars": [

254 { "name": "GH_TOKEN", "mode": "mask", "injectHosts": ["api.github.com"] },

255 { "name": "NPM_TOKEN", "mode": "mask" }

256 ]

257 }

258 }

259}

260```

261 

262В отличие от `deny`, маскирование уполномочивает прокси отправлять ваши реальные учётные данные на указанные хосты, поэтому оно соблюдается только из параметров, которые вы или ваш администратор контролируете: параметры пользователя, управляемые параметры и флаг CLI `--settings`. Записи `mask`, `network.tlsTerminate` и [`credentials.allowPlaintextInject`](/ru/settings#sandbox-settings) в `.claude/settings.json` или `.claude/settings.local.json` репозитория игнорируются.

263 

264Когда одна и та же переменная указана с `deny` в любой области, `deny` имеет приоритет.

265 

228<h2 id="how-sandboxing-works">266<h2 id="how-sandboxing-works">

229 Как работает sandboxing267 Как работает sandboxing

230</h2>268</h2>


255* **Полное покрытие**: ограничения применяются ко всем скриптам, программам и подпроцессам, порожденным командами293* **Полное покрытие**: ограничения применяются ко всем скриптам, программам и подпроцессам, порожденным командами

256 294 

257<Note>295<Note>

258 Встроенный прокси применяет список разрешений на основе запрошенного имени хоста и не завершает и не проверяет трафик TLS. См. [Security limitations](#security-limitations) для понимания последствий этого дизайна и [Custom proxy configuration](#custom-proxy-configuration), если ваша модель угроз требует проверки TLS.296 Встроенный прокси применяет список разрешений на основе запрошенного имени хоста и, по умолчанию, не завершает и не проверяет трафик TLS. {/* min-version: 2.1.199 */}Экспериментальный параметр [`network.tlsTerminate`](/ru/settings#sandbox-settings), доступный в Claude Code версии 2.1.199 и позже, заставляет встроенный прокси самостоятельно завершать TLS, что требуется для [`mask` записей учётных данных](#protect-credentials). См. [Security limitations](#security-limitations) для понимания последствий поведения по умолчанию и [Custom proxy configuration](#custom-proxy-configuration), если ваша модель угроз требует проверки TLS.

259</Note>297</Note>

260 298 

261<h3 id="os-level-enforcement">299<h3 id="os-level-enforcement">


412 Ограничения безопасности450 Ограничения безопасности

413</h3>451</h3>

414 452 

415* **Фильтрация сети**: система фильтрации сети работает путём ограничения доменов, к которым процессы могут подключаться. Встроенный прокси не завершает и не выполняет проверку TLS исходящего трафика, поэтому содержимое зашифрованных соединений не проверяется. Вы несёте ответственность за обеспечение того, чтобы в вашей политике разрешались только доверенные домены.453* **Фильтрация сети**: sandbox ограничивает домены, к которым процессы могут подключаться. По умолчанию встроенный прокси не завершает и не проверяет TLS исходящего трафика, поэтому содержимое зашифрованных соединений не проверяется. Экспериментальный параметр [`network.tlsTerminate`](/ru/settings#sandbox-settings) завершает TLS на прокси для [подстановки учётных данных `mask`](#protect-credentials), но не добавляет фильтрацию содержимого. Вы несёте ответственность за обеспечение того, чтобы в вашей политике разрешались только доверенные домены.

416 454 

417<Warning>455<Warning>

418 Разрешение широких доменов, таких как `github.com`, может создать пути для экспортирования данных. Потому что прокси принимает решение о разрешении на основе предоставленного клиентом имени хоста без проверки TLS, код, работающий внутри sandbox, потенциально может использовать [domain fronting](https://en.wikipedia.org/wiki/Domain_fronting) или аналогичные методы для достижения хостов вне списка разрешений. Если ваша модель угроз требует более сильных гарантий, настройте [пользовательский прокси](#custom-proxy-configuration), который завершает TLS и проверяет трафик, и установите его сертификат CA внутри sandbox. Более сильная изоляция сети, осведомлённая о TLS, является активной областью разработки.456 Разрешение широких доменов, таких как `github.com`, может создать пути для экспортирования данных. Потому что прокси принимает решение о разрешении на основе предоставленного клиентом имени хоста без проверки TLS, код, работающий внутри sandbox, потенциально может использовать [domain fronting](https://en.wikipedia.org/wiki/Domain_fronting) или аналогичные методы для достижения хостов вне списка разрешений. Если ваша модель угроз требует более сильных гарантий, настройте [пользовательский прокси](#custom-proxy-configuration), который завершает TLS и проверяет трафик, и установите его сертификат CA внутри sandbox. Более сильная изоляция сети, осведомлённая о TLS, является активной областью разработки.

Details

153 153 

154Параметры, управляемые сервером, и [параметры, управляемые конечной точкой](/ru/settings#settings-files) занимают наивысший уровень в [иерархии параметров](/ru/settings#settings-precedence) Claude Code. Никакой другой уровень параметров не может их переопределить, включая аргументы командной строки.154Параметры, управляемые сервером, и [параметры, управляемые конечной точкой](/ru/settings#settings-files) занимают наивысший уровень в [иерархии параметров](/ru/settings#settings-precedence) Claude Code. Никакой другой уровень параметров не может их переопределить, включая аргументы командной строки.

155 155 

156В пределах управляемого уровня настроенный [`policyHelper`](/ru/settings#compute-managed-settings-with-a-policy-helper) имеет приоритет над всеми другими управляемыми источниками, включая параметры, управляемые сервером: его вывод становится единственной управляемой конфигурацией для запуска. В противном случае первый источник, который доставляет непустую конфигурацию, побеждает. Параметры, управляемые сервером, проверяются первыми, затем параметры, управляемые конечной точкой. Источники не объединяются: если параметры, управляемые сервером, доставляют какие-либо ключи вообще, параметры, управляемые конечной точкой, полностью игнорируются. Применяется одно исключение: небольшой набор [ключей блокировки между источниками](/ru/settings#settings-precedence), таких как блокировки списка разрешений песочницы, соблюдается, когда любой управляемый администратором источник их устанавливает; уровень реестра HKCU, доступный для записи пользователем, исключен. Если параметры, управляемые сервером, не доставляют ничего, применяются параметры, управляемые конечной точкой.156В пределах управляемого уровня настроенный [`policyHelper`](/ru/settings#compute-managed-settings-with-a-policy-helper) имеет приоритет над всеми другими управляемыми источниками, включая параметры, управляемые сервером: его вывод становится единственной управляемой конфигурацией для запуска.

157 

158В противном случае Claude Code использует первый источник, который доставляет непустую конфигурацию. Параметры, управляемые сервером, проверяются первыми, затем параметры, управляемые конечной точкой. Источники не объединяются: если параметры, управляемые сервером, доставляют какие-либо ключи вообще, другие параметры, управляемые конечной точкой, игнорируются. Если параметры, управляемые сервером, не доставляют ничего, применяются параметры, управляемые конечной точкой.

159 

160Применяется одно исключение: небольшой набор [ключей блокировки между источниками](/ru/settings#settings-precedence), таких как блокировки списка разрешений песочницы, соблюдается, когда любой управляемый администратором источник их устанавливает; уровень реестра HKCU, доступный для записи пользователем, исключен.

157 161 

158Если вы очищаете конфигурацию, управляемую сервером, в консоли администратора с намерением вернуться к управляемому plist или политике реестра, управляемой конечной точкой, имейте в виду, что [кэшированные параметры](#fetch-and-caching-behavior) сохраняются на клиентских машинах до следующей успешной выборки. Запустите `/status` для просмотра того, какой управляемый источник активен.162Если вы очищаете конфигурацию, управляемую сервером, в консоли администратора с намерением вернуться к управляемому plist или политике реестра, управляемой конечной точкой, имейте в виду, что [кэшированные параметры](#fetch-and-caching-behavior) сохраняются на клиентских машинах до следующей успешной выборки. Запустите `/status` для просмотра того, какой управляемый источник активен.

159 163 


171 175 

172**Последующие запуски с кэшированными параметрами:**176**Последующие запуски с кэшированными параметрами:**

173 177 

174* Кэшированные параметры применяются немедленно при запуске178* Кэшированные параметры применяются немедленно при запуске, за исключением переменных окружения транспорта, маршрутизации и аутентификации, описанных ниже

175* Claude Code выбирает свежие параметры в фоновом режиме179* Claude Code выбирает свежие параметры в фоновом режиме

176* Кэшированные параметры сохраняются при сбоях сети180* Кэшированные параметры сохраняются при сбоях сети. Удерживаемые переменные окружения остаются удерживаемыми до тех пор, пока выборка не будет успешной

181 

182Начиная с версии 2.1.198, Claude Code удерживает три категории переменных в кэшированном блоке `env` до тех пор, пока сервер не подтвердит полезную нагрузку для сеанса. Это предотвращает перенаправление, перехват или повторную аутентификацию кэшированного прокси, центра сертификации, конечной точки или значения учетных данных при выборке параметров, которая подтверждает полезную нагрузку. Усиление применяется только к кэшу параметров, полученных с сервера: [параметры, управляемые конечной точкой](/ru/settings#settings-files), развернутые через MDM или `managed-settings.json`, не затронуты. Удерживаемые категории:

183 

184* Конфигурация прокси и TLS, такая как `HTTPS_PROXY`, `NODE_EXTRA_CA_CERTS` и переменные сертификата клиента mTLS `CLAUDE_CODE_CLIENT_CERT` и `CLAUDE_CODE_CLIENT_KEY`

185* Маршрутизация API и выбор поставщика, включая `ANTHROPIC_BASE_URL`, переменные выбора поставщика, такие как `CLAUDE_CODE_USE_BEDROCK` и `CLAUDE_CODE_USE_VERTEX`, и URL-адреса конечных точек поставщика, такие как `ANTHROPIC_BEDROCK_BASE_URL`

186* Учетные данные аутентификации, такие как `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN` и `CLAUDE_CODE_OAUTH_TOKEN`

187 

188Каждый другой ключ в кэшированном блоке `env`, такой как телеметрия и конфигурация OpenTelemetry, применяется при запуске, как и раньше. После успешной выборки удерживаемые переменные применяются для остальной части сеанса.

189 

190Если вашей организации требуется прокси для доступа к `api.anthropic.com`, установите его в окружении оболочки или в [параметрах пользователя](/ru/settings#settings-files), а не только в управляемом блоке `env`. Первый запуск не имеет кэша, поэтому эти источники уже требовались для начальной выборки.

177 191 

178Claude Code применяет обновления параметров автоматически без перезагрузки, за исключением расширенных параметров, таких как конфигурация OpenTelemetry, которые требуют полной перезагрузки для вступления в силу.192Claude Code применяет обновления параметров автоматически без перезагрузки, за исключением расширенных параметров, таких как конфигурация OpenTelemetry, которые требуют полной перезагрузки для вступления в силу.

179 193 


207}221}

208```222```

209 223 

210Вы также можете установить этот ключ в [управляемый конечной точкой](/ru/settings#settings-files) профиль MDM или системный файл `managed-settings.json` для принудительного применения поведения fail-closed при первом запуске, до того как будет доставлена какая-либо полезная нагрузка сервера. Начиная с версии 2.1.191, этот флаг является исключением из [правила приоритета](#settings-precedence) выше: он соблюдается при установке в любом управляемом источнике, даже если также присутствует кэшированная полезная нагрузка, управляемая сервером, поэтому значение, доставленное MDM, не игнорируется, когда существуют параметры, управляемые сервером. Выборка параметров также отправляет заголовок `Cache-Control: no-cache`, чтобы промежуточные HTTP-прокси не обслуживали устаревший ответ.224Вы также можете установить этот ключ в [управляемый конечной точкой](/ru/settings#settings-files) профиль MDM или системный файл `managed-settings.json` для принудительного применения поведения fail-closed при первом запуске, до того как будет доставлена какая-либо полезная нагрузка сервера. Начиная с версии 2.1.191, этот флаг является исключением из [правила приоритета](#settings-precedence) выше: он соблюдается при установке в любом управляемом источнике, даже если также присутствует кэшированная полезная нагрузка, управляемая сервером, поэтому значение, доставленное MDM, не игнорируется, когда существуют параметры, управляемые сервером.

225 

226Выборка параметров также отправляет заголовок `Cache-Control: no-cache`, чтобы промежуточные HTTP-прокси не обслуживали устаревший ответ.

211 227 

212Перед включением этого параметра убедитесь, что ваши сетевые политики позволяют подключение к `api.anthropic.com`. Если эта конечная точка недоступна, CLI выходит при запуске и пользователи не могут запустить Claude Code.228Перед включением этого параметра убедитесь, что ваши сетевые политики позволяют подключение к `api.anthropic.com`. Если эта конечная точка недоступна, CLI выходит при запуске и пользователи не могут запустить Claude Code.

213 229 


217 Диалоги одобрения безопасности233 Диалоги одобрения безопасности

218</h3>234</h3>

219 235 

220Определенные параметры, которые могут представлять риск безопасности, требуют явного одобрения пользователя перед применением:236Определенные параметры, которые могут представлять риск безопасности, требуют явного одобрения пользователя перед применением Claude Code:

221 237 

222* **Параметры команд оболочки**: параметры, которые выполняют команды оболочки238* **Параметры команд оболочки**: параметры, которые выполняют команды оболочки

223* **Пользовательские переменные окружения**: переменные, не входящие в известный безопасный список разрешений239* **Пользовательские переменные окружения**: переменные, не входящие в известный безопасный список разрешений


234 Доступность платформы250 Доступность платформы

235</h2>251</h2>

236 252 

237Параметры, управляемые сервером, требуют прямого подключения к `api.anthropic.com`, и доставка требует, чтобы сеанс аутентифицировался с помощью входа в организацию OAuth или напрямую настроенного ключа API: ключи, возвращаемые скриптом [`apiKeyHelper`](/ru/settings#available-settings), не запускают выборку параметров. Параметры, управляемые сервером, недоступны при использовании поставщиков моделей третьих сторон:253Параметры, управляемые сервером, требуют прямого подключения к `api.anthropic.com`, и доставка требует, чтобы сеанс аутентифицировался с помощью входа в организацию OAuth или напрямую настроенного ключа API. Ключи, возвращаемые скриптом [`apiKeyHelper`](/ru/settings#available-settings), не запускают выборку параметров.

254 

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

238 256 

239* Amazon Bedrock257* Amazon Bedrock

240* Google Vertex AI258* Google Vertex AI


259Параметры, управляемые сервером, обеспечивают централизованное применение политики, но они работают как элемент управления на стороне клиента, а не как граница безопасности. На неуправляемых устройствах пользователю не требуется доступ администратора или sudo для их обхода.277Параметры, управляемые сервером, обеспечивают централизованное применение политики, но они работают как элемент управления на стороне клиента, а не как граница безопасности. На неуправляемых устройствах пользователю не требуется доступ администратора или sudo для их обхода.

260 278 

261| Сценарий | Поведение |279| Сценарий | Поведение |

262| :------------------------------------------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |280| :------------------------------------------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

263| Пользователь редактирует кэшированный файл параметров | Измененный файл применяется при запуске, но правильные параметры восстанавливаются при следующей выборке с сервера |281| Пользователь редактирует кэшированный файл параметров | Измененный файл применяется при запуске, но правильные параметры восстанавливаются при следующей выборке с сервера. {/* min-version: 2.1.198 */}Начиная с версии 2.1.198, переменные окружения транспорта, маршрутизации API и аутентификации в блоке `env` [удерживаются до подтверждения сервером полезной нагрузки](#fetch-and-caching-behavior) |

264| Пользователь удаляет кэшированный файл параметров | Происходит поведение первого запуска: параметры выбираются асинхронно с кратким неприменяемым окном |282| Пользователь удаляет кэшированный файл параметров | Происходит поведение первого запуска: параметры выбираются асинхронно с кратким неприменяемым окном |

265| Пользователь запускает измененный двоичный файл Claude Code | Пользователь, который может запустить измененный клиент, может обойти любой элемент управления на стороне клиента |283| Пользователь запускает измененный двоичный файл Claude Code | Пользователь, который может запустить измененный клиент, может обойти любой элемент управления на стороне клиента |

266| Пользователь запускает более старую версию Claude Code | Версии, которые предшествуют параметрам, управляемым сервером, не выбирают и не применяют их |284| Пользователь запускает более старую версию Claude Code | Версии, которые предшествуют параметрам, управляемым сервером, не выбирают и не применяют их |

267| API недоступен | Кэшированные параметры применяются, если доступны, в противном случае управляемые параметры не применяются до следующей успешной выборки. С `forceRemoteSettingsRefresh: true` CLI выходит вместо продолжения, за исключением [`claude auth` подкоманд](#enforce-fail-closed-startup) |285| API недоступен | Кэшированные параметры применяются, если доступны, в противном случае управляемые параметры не применяются до следующей успешной выборки. {/* min-version: 2.1.198 */}Начиная с версии 2.1.198, переменные окружения транспорта, маршрутизации API и аутентификации в кэшированном блоке `env` [удерживаются при сбое выборки](#fetch-and-caching-behavior); остальная часть кэша все еще применяется. С `forceRemoteSettingsRefresh: true` CLI выходит вместо продолжения, за исключением [`claude auth` подкоманд](#enforce-fail-closed-startup) |

268| Пользователь аутентифицируется с другой организацией | Параметры не доставляются для учетных записей вне управляемой организации |286| Пользователь аутентифицируется с другой организацией | Параметры не доставляются для учетных записей вне управляемой организации |

269| Пользователь настраивает [поставщика моделей третьей стороны](#platform-availability) | Параметры, управляемые сервером, обходятся. Это включает установку `CLAUDE_CODE_USE_BEDROCK`, `CLAUDE_CODE_USE_MANTLE`, `CLAUDE_CODE_USE_VERTEX`, `CLAUDE_CODE_USE_FOUNDRY`, `CLAUDE_CODE_USE_ANTHROPIC_AWS` или нестандартного `ANTHROPIC_BASE_URL` |287| Пользователь настраивает [поставщика моделей третьей стороны](#platform-availability) | Параметры, управляемые сервером, обходятся. Это включает установку `CLAUDE_CODE_USE_BEDROCK`, `CLAUDE_CODE_USE_MANTLE`, `CLAUDE_CODE_USE_VERTEX`, `CLAUDE_CODE_USE_FOUNDRY`, `CLAUDE_CODE_USE_ANTHROPIC_AWS` или нестандартного `ANTHROPIC_BASE_URL` |

270| Сетевой трафик перехватывается или перенаправляется | Отключенная проверка TLS или перехваченный трафик могут изменить параметры, которые получает клиент |288| Сетевой трафик перехватывается или перенаправляется | Отключенная проверка TLS или перехваченный трафик могут изменить параметры, которые получает клиент |

sessions.md +2 −0

Details

97/branch try-streaming-approach97/branch try-streaming-approach

98```98```

99 99 

100Если вы опустите имя, Claude Code назовёт новую ветвь в соответствии с первым запросом в диалоге. Начиная с версии v2.1.198 это также применяется после [compaction](/ru/how-claude-code-works#when-context-fills-up); более ранние версии вместо этого использовали буквальное имя `Branched conversation` вместо того, чтобы смотреть дальше сводки compaction на исходный первый запрос.

101 

100Из командной строки объедините `--continue` или `--resume` с `--fork-session`:102Из командной строки объедините `--continue` или `--resume` с `--fork-session`:

101 103 

102```bash theme={null}104```bash theme={null}

settings.md +8 −5

Details

400Настройте расширенное поведение sandboxing. Sandboxing изолирует команды bash от вашей файловой системы и сети. См. [Sandboxing](/ru/sandboxing) для деталей.400Настройте расширенное поведение sandboxing. Sandboxing изолирует команды bash от вашей файловой системы и сети. См. [Sandboxing](/ru/sandboxing) для деталей.

401 401 

402| Ключи | Описание | Пример |402| Ключи | Описание | Пример |

403| :------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------- |403| :------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------- |

404| `enabled` | Включить bash sandboxing (macOS, Linux и WSL2). По умолчанию: false | `true` |404| `enabled` | Включить bash sandboxing (macOS, Linux и WSL2). По умолчанию: false | `true` |

405| `failIfUnavailable` | Выход с ошибкой при запуске, если `sandbox.enabled` равно true, но sandbox не может запуститься (отсутствуют зависимости или неподдерживаемая платформа). Когда false (по умолчанию), выводится предупреждение и команды выполняются без sandbox. Предназначено для развертываний управляемых параметров, требующих sandboxing как жесткого шлюза | `true` |405| `failIfUnavailable` | Выход с ошибкой при запуске, если `sandbox.enabled` равно true, но sandbox не может запуститься (отсутствуют зависимости или неподдерживаемая платформа). Когда false (по умолчанию), выводится предупреждение и команды выполняются без sandbox. Предназначено для развертываний управляемых параметров, требующих sandboxing как жесткого шлюза | `true` |

406| `autoAllowBashIfSandboxed` | Автоматически одобрить команды bash при sandboxing. По умолчанию: true | `true` |406| `autoAllowBashIfSandboxed` | Автоматически одобрить команды bash при sandboxing. По умолчанию: true | `true` |


411| `filesystem.denyRead` | Пути, где команды в sandbox не могут читать. Массивы объединяются во всех областях параметров. Также объединяются с путями из правил разрешения `Read(...)`. | `["~/.aws/credentials"]` |411| `filesystem.denyRead` | Пути, где команды в sandbox не могут читать. Массивы объединяются во всех областях параметров. Также объединяются с путями из правил разрешения `Read(...)`. | `["~/.aws/credentials"]` |

412| `filesystem.allowRead` | Пути для повторного разрешения чтения в пределах регионов `denyRead`. Имеет приоритет над `denyRead`. Массивы объединяются во всех областях параметров. Используйте это для создания шаблонов доступа для чтения только рабочей области. | `["."]` |412| `filesystem.allowRead` | Пути для повторного разрешения чтения в пределах регионов `denyRead`. Имеет приоритет над `denyRead`. Массивы объединяются во всех областях параметров. Используйте это для создания шаблонов доступа для чтения только рабочей области. | `["."]` |

413| `filesystem.allowManagedReadPathsOnly` | (Только управляемые параметры) Только пути `allowRead` из управляемых параметров учитываются. `denyRead` по-прежнему объединяется из всех источников. По умолчанию: false | `true` |413| `filesystem.allowManagedReadPathsOnly` | (Только управляемые параметры) Только пути `allowRead` из управляемых параметров учитываются. `denyRead` по-прежнему объединяется из всех источников. По умолчанию: false | `true` |

414| `credentials.files` | Файлы учетных данных или каталоги, которые команды в sandbox не могут читать. Применяет тот же блок чтения, что и `filesystem.denyRead`; отдельный ключ держит пути учетных данных сгруппированными с `credentials.envVars` и отдельно от общих правил файловой системы. Каждая запись - это `{ "path": "...", "mode": "deny" }`. Пути используют те же [префиксы](#sandbox-path-prefixes), что и параметры `filesystem.*`. Массивы объединяются во всех областях параметров. Поддерживается только `deny`. Требует Claude Code v2.1.187 или позже. | `[{ "path": "~/.aws/credentials", "mode": "deny" }]` |414| `credentials.files` | {/* min-version: 2.1.187 */}Файлы учетных данных или каталоги, которые команды в sandbox не могут читать. Применяет тот же блок чтения, что и `filesystem.denyRead`; отдельный ключ держит пути учетных данных сгруппированными с `credentials.envVars` и отдельно от общих правил файловой системы. Каждая запись - это `{ "path": "...", "mode": "deny" }`, и `deny` - единственный поддерживаемый режим для файлов. Пути используют те же [префиксы](#sandbox-path-prefixes), что и параметры `filesystem.*`. Массивы объединяются во всех областях параметров. Требует Claude Code v2.1.187 или позже. | `[{ "path": "~/.aws/credentials", "mode": "deny" }]` |

415| `credentials.envVars` | Переменные окружения для отмены перед запуском команд в sandbox. Каждая запись - это `{ "name": "...", "mode": "deny" }`. Массивы объединяются во всех областях параметров. Поддерживается только `deny`. Требует Claude Code v2.1.187 или позже. | `[{ "name": "GITHUB_TOKEN", "mode": "deny" }]` |415| `credentials.envVars` | {/* min-version: 2.1.187 */}Переменные окружения для [защиты от команд в sandbox](/ru/sandboxing#protect-credentials). Каждая запись имеет `name` и `mode`; имя должно начинаться с буквы или подчеркивания и содержать только буквы, цифры и подчеркивания. `deny` удаляет переменную из окружения команд в sandbox. Требует Claude Code v2.1.187 или позже. {/* min-version: 2.1.199 */}}`mask` заменяет переменную значением-дозорным для каждого сеанса внутри sandbox, пока прокси sandbox подставляет реальное значение на исходящих запросах к записям `injectHosts` этой записи; это требует `network.tlsTerminate` и Claude Code v2.1.199 или позже. Записи `mask` учитываются только из параметров пользователя, управляемых или CLI `--settings`, а не из `.claude/settings.json` или `.claude/settings.local.json`. Массивы объединяются во всех областях параметров, и `deny` имеет приоритет, когда одна переменная появляется с обоими режимами. | `[{ "name": "GITHUB_TOKEN", "mode": "deny" }]` |

416| `credentials.envVars[].injectHosts` | Хосты, где прокси sandbox подставляет реальное значение записи `mask`. Каждый хост также должен быть покрыт `network.allowedDomains`, либо точно, либо подстановочным знаком. Когда не установлено, прокси подставляет значение на запросы каждому хосту в `network.allowedDomains`. Принимается, но игнорируется, когда `mode` - `deny`. Требует Claude Code v2.1.199 или позже. {/* min-version: 2.1.199 */} | `["api.github.com"]` |

417| `credentials.allowPlaintextInject` | Разрешить подстановку `mask` на простых HTTP запросах, а также на TLS-завершенных HTTPS. На простом HTTP восходящая идентификация не проверена и учетные данные путешествуют в открытом виде, поэтому оставьте это отключенным вне доверенных тестовых сетей. Учитывается только из параметров пользователя, управляемых или CLI `--settings`, а не из `.claude/settings.json` или `.claude/settings.local.json`. По умолчанию: false. Требует Claude Code v2.1.199 или позже. {/* min-version: 2.1.199 */} | `true` |

416| `network.allowUnixSockets` | (Только macOS) Пути Unix socket, доступные в sandbox. Игнорируется на Linux и WSL2, где фильтр seccomp не может проверить пути socket; используйте `allowAllUnixSockets` вместо этого. | `["~/.ssh/agent-socket"]` |418| `network.allowUnixSockets` | (Только macOS) Пути Unix socket, доступные в sandbox. Игнорируется на Linux и WSL2, где фильтр seccomp не может проверить пути socket; используйте `allowAllUnixSockets` вместо этого. | `["~/.ssh/agent-socket"]` |

417| `network.allowAllUnixSockets` | Разрешить все подключения Unix socket в sandbox. На Linux и WSL2 это единственный способ разрешить Unix sockets, так как он пропускает фильтр seccomp, который в противном случае блокирует вызовы `socket(AF_UNIX, ...)`. По умолчанию: false | `true` |419| `network.allowAllUnixSockets` | Разрешить все подключения Unix socket в sandbox. На Linux и WSL2 это единственный способ разрешить Unix sockets, так как он пропускает фильтр seccomp, который в противном случае блокирует вызовы `socket(AF_UNIX, ...)`. По умолчанию: false | `true` |

418| `network.allowLocalBinding` | Разрешить привязку к портам localhost (только macOS). По умолчанию: false | `true` |420| `network.allowLocalBinding` | Разрешить привязку к портам localhost (только macOS). По умолчанию: false | `true` |


422| `network.allowManagedDomainsOnly` | (Только управляемые параметры) Только `allowedDomains` и правила разрешения `WebFetch(domain:...)` из управляемых параметров учитываются. Домены из параметров пользователя, проекта и локальной области игнорируются. Неразрешенные домены автоматически блокируются без запроса пользователя. Запрещенные домены по-прежнему учитываются из всех источников. По умолчанию: false | `true` |424| `network.allowManagedDomainsOnly` | (Только управляемые параметры) Только `allowedDomains` и правила разрешения `WebFetch(domain:...)` из управляемых параметров учитываются. Домены из параметров пользователя, проекта и локальной области игнорируются. Неразрешенные домены автоматически блокируются без запроса пользователя. Запрещенные домены по-прежнему учитываются из всех источников. По умолчанию: false | `true` |

423| `network.httpProxyPort` | Порт HTTP прокси, используемый, если вы хотите использовать собственный прокси. Если не указано, Claude запустит собственный прокси. | `8080` |425| `network.httpProxyPort` | Порт HTTP прокси, используемый, если вы хотите использовать собственный прокси. Если не указано, Claude запустит собственный прокси. | `8080` |

424| `network.socksProxyPort` | Порт SOCKS5 прокси, используемый, если вы хотите использовать собственный прокси. Если не указано, Claude запустит собственный прокси. | `8081` |426| `network.socksProxyPort` | Порт SOCKS5 прокси, используемый, если вы хотите использовать собственный прокси. Если не указано, Claude запустит собственный прокси. | `8081` |

427| `network.tlsTerminate` | Экспериментально. Завершить TLS внутри прокси sandbox, чтобы он мог читать содержимое HTTPS запросов. Требуется для [подстановки учетных данных](/ru/sandboxing#protect-credentials) `mask`. Установите `{}` для создания эфемерного центра сертификации для сеанса, или установите `caCertPath` и `caKeyPath` для использования вашего собственного. Учитывается только из параметров пользователя, управляемых или CLI `--settings`, а не из `.claude/settings.json` или `.claude/settings.local.json`. Требует Claude Code v2.1.199 или позже. {/* min-version: 2.1.199 */} | `{}` |

425| `enableWeakerNestedSandbox` | Включить более слабый sandbox для непривилегированных окружений Docker (только Linux и WSL2). **Снижает безопасность.** По умолчанию: false | `true` |428| `enableWeakerNestedSandbox` | Включить более слабый sandbox для непривилегированных окружений Docker (только Linux и WSL2). **Снижает безопасность.** По умолчанию: false | `true` |

426| `enableWeakerNetworkIsolation` | (Только macOS) Разрешить доступ к системной службе доверия TLS (`com.apple.trustd.agent`) в sandbox. Требуется для инструментов на основе Go, таких как `gh`, `gcloud` и `terraform`, для проверки сертификатов TLS при использовании `httpProxyPort` с MITM прокси и пользовательским CA. **Снижает безопасность** путем открытия потенциального пути утечки данных. По умолчанию: false | `true` |429| `enableWeakerNetworkIsolation` | (Только macOS) Разрешить доступ к системной службе доверия TLS (`com.apple.trustd.agent`) в sandbox. Требуется для инструментов на основе Go, таких как `gh`, `gcloud` и `terraform`, для проверки сертификатов TLS при использовании `httpProxyPort` с MITM прокси и пользовательским CA. **Снижает безопасность** путем открытия потенциального пути утечки данных. По умолчанию: false | `true` |

427| `allowAppleEvents` | (Только macOS) Разрешить команды в sandbox отправлять Apple Events. Требуется для `open`, `osascript` и инструментов, которые открывают URL в браузере, которые в противном случае не удаются с ошибкой `-600`. **Удаляет изоляцию выполнения кода.** Команды в sandbox могут запускать другие приложения без sandbox без запроса пользователя; они также могут отправлять команды AppleScript запущенным приложениям, таким как Terminal, в соответствии с запросом согласия на автоматизацию macOS для каждого приложения (TCC). Учитывается только из параметров пользователя, управляемых или CLI, а не из параметров проекта. По умолчанию: false | `true` |430| `allowAppleEvents` | (Только macOS) Разрешить команды в sandbox отправлять Apple Events. Требуется для `open`, `osascript` и инструментов, которые открывают URL в браузере, которые в противном случае не удаются с ошибкой `-600`. **Удаляет изоляцию выполнения кода.** Команды в sandbox могут запускать другие приложения без sandbox без запроса пользователя; они также могут отправлять команды AppleScript запущенным приложениям, таким как Terminal, в соответствии с запросом согласия на автоматизацию macOS для каждого приложения (TCC). Учитывается только из параметров пользователя, управляемых или CLI, а не из параметров проекта. По умолчанию: false | `true` |


666 * Хосты встраивания, такие как Claude Desktop, могут предоставлять политику через опцию SDK `managedSettings`. По умолчанию это игнорируется, когда присутствует любой управляемый источник, развернутый администратором: параметры, управляемые сервером, политика MDM или OS-уровня, или файл управляемых параметров. Резервный реестр HKCU, доступный для записи пользователем, не считается управляемым источником, развернутым администратором. Администраторы могут согласиться, установив [`parentSettingsBehavior`](#available-settings) на `"merge"`. Значения встраивателя отфильтрованы, чтобы они могли ужесточить управляемую политику, но не ослабить ее.669 * Хосты встраивания, такие как Claude Desktop, могут предоставлять политику через опцию SDK `managedSettings`. По умолчанию это игнорируется, когда присутствует любой управляемый источник, развернутый администратором: параметры, управляемые сервером, политика MDM или OS-уровня, или файл управляемых параметров. Резервный реестр HKCU, доступный для записи пользователем, не считается управляемым источником, развернутым администратором. Администраторы могут согласиться, установив [`parentSettingsBehavior`](#available-settings) на `"merge"`. Значения встраивателя отфильтрованы, чтобы они могли ужесточить управляемую политику, но не ослабить ее.

667 670 

6682. **Аргументы командной строки**6712. **Аргументы командной строки**

669 * Временные переопределения для конкретного сеанса. JSON, переданный через `--settings <file-or-json>`, объединяется с параметрами на основе файлов, используя те же правила, что и другие уровни: ключ, установленный здесь, переопределяет тот же ключ в локальных, проектных или пользовательских параметрах, и пропуск ключа оставляет значение нижнего уровня на месте672 * Временные переопределения для конкретного сеанса. JSON, переданный через `--settings <file-or-json>`, объединяется с параметрами на основе файлов, используя те же правила, что и другие уровни: ключ, установленный здесь, переопределяет тот же ключ в локальных, проектных или пользовательских параметрах, и пропуск ключа оставляет значение н нижнего уровня на месте

670 673 

6713. **Локальные параметры проекта** (`.claude/settings.local.json`)6743. **Локальные параметры проекта** (`.claude/settings.local.json`)

672 * Личные параметры, специфичные для проекта675 * Личные параметры, специфичные для проекта


694 Проверить активные параметры697 Проверить активные параметры

695</h3>698</h3>

696 699 

697Запустите `/status` внутри Claude Code, чтобы увидеть, какие источники параметров активны. Внутри меню вкладка **Status** включает строку `Setting sources`, которая перечисляет каждый уровень Claude Code, заг загруженный для текущего сеанса, такой как `User settings` или `Project local settings`. Когда действуют [управляемые параметры](/ru/admin-setup#decide-how-settings-reach-devices), запись показывает канал доставки в скобках, например `Enterprise managed settings (remote)`, `(plist)`, `(HKLM)`, `(HKCU)` или `(file)`. Уровень появляется в списке только когда этот источник загружается с по крайней мере одним ключом, поэтому пустой список означает, что источники параметров не были найдены.700Запустите `/status` внутри Claude Code, чтобы увидеть, какие источники параметров активны. Внутри меню вкладка **Status** включает строку `Setting sources`, которая перечисляет каждый уровень Claude Code, загруженный для текущего сеанса, такой как `User settings` или `Project local settings`. Когда действуют [управляемые параметры](/ru/admin-setup#decide-how-settings-reach-devices), запись показывает канал доставки в скобках, например `Enterprise managed settings (remote)`, `(plist)`, `(HKLM)`, `(HKCU)` или `(file)`. Уровень появляется в списке только когда этот источник загружается с по крайней мере одним ключом, поэтому пустой список означает, что источники параметров не были найдены.

698 701 

699Строка `Setting sources` подтверждает, какие источники читаются. Она не показывает, какой уровень предоставил каждый отдельный ключ. Вкладка **Config** в том же диалоге - это редактор для фиксированного набора переключателей, таких как тема и подробный вывод, а не представление содержимого вашего `settings.json`.702Строка `Setting sources` подтверждает, какие источники читаются. Она не показывает, какой уровень предоставил каждый отдельный ключ. Вкладка **Config** в том же диалоге - это редактор для фиксированного набора переключателей, таких как тема и подробный вывод, а не представление содержимого вашего `settings.json`.

700 703 

setup.md +1 −1

Details

453 Установка с npm453 Установка с npm

454</h3>454</h3>

455 455 

456Вы также можете установить Claude Code как глобальный пакет npm. Пакет требует [Node.js 18 или позже](https://nodejs.org/en/download).456Вы также можете установить Claude Code как глобальный пакет npm. Начиная с версии 2.1.198, пакет npm требует [Node.js 22 или позже](https://nodejs.org/en/download). На более старой версии Node.js npm выводит предупреждение `EBADENGINE` во время установки, а не отказывает; установка завершается и `claude` все еще работает, так как пакет загружает встроенный двоичный файл, который не использует ваш Node.js во время выполнения.

457 457 

458```bash theme={null}458```bash theme={null}

459npm install -g @anthropic-ai/claude-code459npm install -g @anthropic-ai/claude-code

skills.md +6 −0

Details

443 443 

444Если вы вызываете skill с аргументами, но skill не включает `$ARGUMENTS`, Claude Code добавляет `ARGUMENTS: <your input>` в конец содержимого skill, чтобы Claude всё ещё видел, что вы ввели.444Если вы вызываете skill с аргументами, но skill не включает `$ARGUMENTS`, Claude Code добавляет `ARGUMENTS: <your input>` в конец содержимого skill, чтобы Claude всё ещё видел, что вы ввели.

445 445 

446Вы также можете складывать несколько skills в начало одного сообщения. {/* min-version: 2.1.199 */}Начиная с версии 2.1.199, ввод `/code-review /fix-issue 123` загружает оба skill и передаёт конечный текст `123` как `$ARGUMENTS` каждому из них. В более ранних версиях загружался только первый skill и получал `/fix-issue 123` как буквальный текст аргумента.

447 

448Claude Code расширяет первый skill плюс до пяти дополнительных, сложенных после него. Расширение останавливается на первом токене, который не является встроенным вызываемым пользователем skill, поэтому skill, который запускается как [forked subagent](#run-skills-in-a-subagent) или тот, чьи аргументы сами могут начинаться с команды slash, такой как `/loop`, также заканчивается там; этот токен и всё, что после него, становятся текстом аргумента для каждого расширенного skill.

449 

446Для доступа к отдельным аргументам по позиции используйте `$ARGUMENTS[N]` или более короткий `$N`:450Для доступа к отдельным аргументам по позиции используйте `$ARGUMENTS[N]` или более короткий `$N`:

447 451 

448```yaml theme={null}452```yaml theme={null}


624| `"user-invocable-only"` | Скрыто | Да |628| `"user-invocable-only"` | Скрыто | Да |

625| `"off"` | Скрыто | Скрыто |629| `"off"` | Скрыто | Скрыто |

626 630 

631Начиная с версии 2.1.199, `"off"` также скрывает skill из списков команд, объявленных клиентам [Remote Control](/ru/remote-control) и вызывающим [Agent SDK](/ru/agent-sdk/slash-commands), а не только из терминального меню `/`. Вызов скрытого skill по его полному имени по-прежнему возвращает ошибку `skillOverrides` вместо его запуска.

632 

627Skill, отсутствующий в `skillOverrides`, рассматривается как `"on"`. Пример ниже сворачивает один skill до его имени и полностью отключает другой:633Skill, отсутствующий в `skillOverrides`, рассматривается как `"on"`. Пример ниже сворачивает один skill до его имени и полностью отключает другой:

628 634 

629```json theme={null}635```json theme={null}

sub-agents.md +85 −65

Details

24 24 

25Claude использует описание каждого subagent для решения о делегировании задач. Когда вы создаёте subagent, напишите чёткое описание, чтобы Claude знал, когда его использовать.25Claude использует описание каждого subagent для решения о делегировании задач. Когда вы создаёте subagent, напишите чёткое описание, чтобы Claude знал, когда его использовать.

26 26 

27Claude Code включает несколько встроенных subagents, таких как **Explore**, **Plan** и **general-purpose**. Вы также можете создавать пользовательские subagents для обработки конкретных задач.27Claude Code включает несколько встроенных subagents, таких как Explore, Plan и general-purpose. Вы также можете создавать пользовательские subagents для обработки конкретных задач.

28 28 

29<h2 id="built-in-subagents">29<h2 id="built-in-subagents">

30 Встроенные subagents30 Встроенные subagents


38 <Tab title="Explore">38 <Tab title="Explore">

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

40 40 

41 * **Model**: Haiku, который быстрый и имеет низкую задержку41 * **Model**: наследуется из основного разговора, ограничен Opus на Claude API, поэтому Explore никогда не работает на более дорогой модели, чем та, которую вы уже выбрали для сессии

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

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

44 44 

45 {/* min-version: 2.1.198 */}Начиная с версии 2.1.198, Explore наследует модель основного разговора вместо того, чтобы всегда работать на Haiku. На Claude API унаследованная модель ограничена Opus: основной разговор на более высоком уровне запускает Explore на Opus, а основной разговор на Sonnet или Haiku запускает Explore на той же модели. На любом другом поставщике, таком как [Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry или Claude Platform on AWS](/ru/third-party-integrations), Explore наследует модель основного разговора напрямую.

46 

47 [Пользовательский или проектный subagent](#choose-the-subagent-scope) с именем `Explore` переопределяет встроенный и сохраняет собственное поле `model`, поэтому определите его с `model: haiku`, чтобы сохранить исследование на модели с более низкой стоимостью.

48 

45 Claude делегирует Explore, когда ему нужно искать или понимать кодовую базу без внесения изменений. Это сохраняет результаты исследования вне контекста основного разговора.49 Claude делегирует Explore, когда ему нужно искать или понимать кодовую базу без внесения изменений. Это сохраняет результаты исследования вне контекста основного разговора.

46 50 

47 При вызове Explore Claude указывает уровень тщательности: **quick** для целевых поисков, **medium** для сбалансированного исследования или **very thorough** для комплексного анализа.51 При вызове Explore Claude указывает уровень тщательности: **quick** для целевых поисков, **medium** для сбалансированного исследования или **very thorough** для комплексного анализа.


77 </Tab>81 </Tab>

78</Tabs>82</Tabs>

79 83 

80Встроенные subagents всегда регистрируются в интерактивных сессиях. Чтобы ограничить их:84Встроенные subagents регистрируются по умолчанию в интерактивных сессиях. Чтобы ограничить их:

81 85 

82* Чтобы заблокировать определённый встроенный тип, добавьте его в `permissions.deny`, как показано в [Отключение определённых subagents](#disable-specific-subagents).86* Чтобы заблокировать определённый встроенный тип, добавьте его в `permissions.deny`, как показано в [Отключение определённых subagents](#disable-specific-subagents).

83* Чтобы предотвратить делегирование Claude к любому subagent, запретите сам инструмент `Agent` с помощью [`permissions.deny`](/ru/permissions#tool-specific-permission-rules).87* Чтобы предотвратить делегирование Claude к любому subagent, запретите сам инструмент `Agent` с помощью [`permissions.deny`](/ru/permissions#tool-specific-permission-rules).

88* {/* min-version: 2.1.198 */}Чтобы удалить только встроенные subagents `Explore` и `Plan`, установите [`CLAUDE_CODE_DISABLE_EXPLORE_PLAN_AGENTS=1`](/ru/env-vars). Claude читает и исследует файлы напрямую вместо делегирования им. Требуется Claude Code версии 2.1.198 или позже.

84* В [неинтерактивном режиме](/ru/headless) и [Agent SDK](/ru/agent-sdk/overview) установите [`CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS=1`](/ru/env-vars) для удаления всех встроенных типов и предоставления только ваших собственных.89* В [неинтерактивном режиме](/ru/headless) и [Agent SDK](/ru/agent-sdk/overview) установите [`CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS=1`](/ru/env-vars) для удаления всех встроенных типов и предоставления только ваших собственных.

85 90 

86Помимо этих встроенных subagents, вы можете создавать свои собственные с пользовательскими приглашениями, ограничениями инструментов, режимами разрешений, hooks и skills. В следующих разделах показано, как начать работу и настроить subagents.91Помимо этих встроенных subagents, вы можете создавать свои собственные с пользовательскими приглашениями, ограничениями инструментов, режимами разрешений, hooks и skills. В следующих разделах показано, как начать работу и настроить subagents.


89 Quickstart: создание вашего первого subagent94 Quickstart: создание вашего первого subagent

90</h2>95</h2>

91 96 

92Subagents определяются в файлах Markdown с YAML frontmatter. Вы можете [создавать их вручную](#write-subagent-files) или использовать команду `/agents`.97Subagents определяются в файлах Markdown с YAML frontmatter. Чтобы создать один, попросите Claude написать его для вас или [напишите файл самостоятельно](#write-subagent-files).

98 

99{/* min-version: 2.1.198 */}Начиная с версии v2.1.198, команда `/agents` больше не открывает интерактивный мастер создания; её запуск выводит напоминание попросить Claude или отредактировать `.claude/agents/` напрямую. Файлы subagent, поля frontmatter и местоположения `.claude/agents/` и `~/.claude/agents/` остаются неизменными; удалён только терминальный мастер.

93 100 

94Это пошаговое руководство проведёт вас через создание subagent уровня пользователя с помощью команды `/agents`. Subagent проверяет код и предлагает улучшения для кодовой базы.101Это пошаговое руководство создаёт subagent уровня пользователя, который проверяет код и предлагает улучшения.

95 102 

96<Steps>103<Steps>

97 <Step title="Откройте интерфейс subagents">104 <Step title="Попросите Claude создать subagent">

98 В Claude Code запустите:105 В Claude Code опишите subagent, который вы хотите создать, и где его сохранить:

99 106 

100 ```text wrap theme={null}107 ```text wrap theme={null}

101 /agents108 Create a personal code-improver subagent in ~/.claude/agents/ that scans

109 files and suggests improvements for readability, performance, and best

110 practices. It should explain each issue, show the current code, and

111 provide an improved version. Make it read-only and have it use Sonnet.

102 ```112 ```

103 </Step>

104 113 

105 <Step title="Выберите местоположение">114 Claude создаёт файл с `name`, `description`, списком `tools`, `model` и системным приглашением.

106 Переключитесь на вкладку **Library**, выберите **Create new agent**, затем выберите **Personal**. Это сохранит subagent в `~/.claude/agents/`, чтобы он был доступен во всех ваших проектах.

107 </Step>115 </Step>

108 116 

109 <Step title="Генерируйте с помощью Claude">117 <Step title="Проверьте файл">

110 Выберите **Generate with Claude**. При появлении запроса опишите subagent:118 Откройте `~/.claude/agents/code-improver.md` и убедитесь, что frontmatter соответствует тому, что вы запросили. Результат выглядит так:

111 119 

112 ```text wrap theme={null}120 ```markdown theme={null}

113 A code improvement agent that scans files and suggests improvements121 ---

114 for readability, performance, and best practices. It should explain122 name: code-improver

115 each issue, show the current code, and provide an improved version.123 description: Scans files and suggests improvements for readability, performance, and best practices. Use after writing or modifying code.

124 tools: Read, Grep, Glob

125 model: sonnet

126 ---

127 

128 You are a code improvement specialist. For each issue you find, explain

129 the problem, show the current code, and provide an improved version.

116 ```130 ```

117 131 

118 Claude генерирует идентификатор, описание и системное приглашение для вас.132 Поскольку файл находится в `~/.claude/agents/`, subagent доступен в каждом проекте на вашей машине. Чтобы ограничить его одним проектом, переместите его в каталог `.claude/agents/` этого проекта. [Выберите область действия subagent](#choose-the-subagent-scope) сравнивает эти два варианта.

119 </Step>

120 

121 <Step title="Выберите инструменты">

122 Для проверяющего, доступного только для чтения, отмените выбор всего, кроме **Read-only tools**. Если вы оставите все инструменты выбранными, subagent наследует все инструменты, доступные основному разговору.

123 </Step>

124 

125 <Step title="Выберите модель">

126 Выберите, какую модель использует subagent. Для этого примера агента выберите **Sonnet**, который обеспечивает баланс между возможностями и скоростью анализа паттернов кода.

127 </Step>

128 

129 <Step title="Выберите цвет">

130 Выберите цвет фона для subagent. Это помогает вам определить, какой subagent работает в пользовательском интерфейсе.

131 </Step>

132 

133 <Step title="Настройте память">

134 Выберите **User scope**, чтобы дать subagent [постоянный каталог памяти](#enable-persistent-memory) в `~/.claude/agent-memory/`. Subagent использует это для накопления идей в разговорах, таких как паттерны кодовой базы и повторяющиеся проблемы. Выберите **None**, если вы не хотите, чтобы subagent сохранял обучение.

135 </Step>133 </Step>

136 134 

137 <Step title="Сохраните и попробуйте">135 <Step title="Попробуйте">

138 Просмотрите сводку конфигурации. Нажмите `s` или `Enter` для сохранения, или нажмите `e` для сохранения и редактирования файла в вашем редакторе. Subagent доступен немедленно. Попробуйте:136 Попросите Claude делегировать новому subagent:

139 137 

140 ```text wrap theme={null}138 ```text wrap theme={null}

141 Use the code-improver agent to suggest improvements in this project139 Use the code-improver agent to suggest improvements in this project

142 ```140 ```

143 141 

144 Claude делегирует вашему новому subagent, который сканирует кодовую базу и возвращает предложения по улучшению.142 Claude делегирует вашему новому subagent, который сканирует кодовую базу и возвращает предложения по улучшению.

143 

144 Если Claude не может найти новый subagent, перезагрузите Claude Code и попробуйте снова. Это происходит только когда `~/.claude/agents/` не существовал до начала сеанса, потому что работающий сеанс не обнаруживает вновь созданный каталог `agents`.

145 </Step>145 </Step>

146</Steps>146</Steps>

147 147 

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

149 149 

150Вы также можете создавать subagents вручную как файлы Markdown, определять их через флаги CLI или распространять их через plugins. В следующих разделах рассматриваются все параметры конфигурации.150Вы также можете писать файлы subagent вручную, определять их через флаги CLI или распространять их через plugins. В следующих разделах рассматриваются все параметры конфигурации.

151 

152<Note>

153 На Claude Code v2.1.197 и более ранних версиях `/agents` открывает интерактивный мастер с вкладкой **Running**, которая отображает активные subagents, и вкладкой **Library** для их создания, редактирования и удаления. {/* max-version: 2.1.197 */}

154</Note>

151 155 

152<h2 id="configure-subagents">156<h2 id="configure-subagents">

153 Настройка subagents157 Настройка subagents

154</h2>158</h2>

155 159 

156<h3 id="use-the-/agents-command">160Местоположение файла subagent определяет, кому он доступен, а его frontmatter определяет, что он может делать. В этом разделе рассматривается, где находятся файлы subagent и каждое поле, которое они поддерживают.

157 Используйте команду /agents

158</h3>

159 

160Команда `/agents` открывает интерфейс с вкладками для управления subagents. Вкладка **Running** показывает активные и недавно завершённые subagents и позволяет вам открывать или останавливать их. Вкладка **Library** позволяет вам:

161 

162* Просматривать все доступные subagents (встроенные, пользовательские, проектные и из plugins)

163* Создавать новые subagents с помощью управляемой установки или генерации Claude

164* Редактировать существующую конфигурацию subagent и доступ к инструментам

165* Удалять пользовательские subagents

166* Видеть, какие subagents активны при наличии дубликатов

167 

168Это рекомендуемый способ создания и управления subagents. Для ручного создания или автоматизации вы также можете добавлять файлы subagent напрямую.

169 161 

170<h3 id="choose-the-subagent-scope">162<h3 id="choose-the-subagent-scope">

171 Выберите область subagent163 Выберите область subagent

172</h3>164</h3>

173 165 

174Subagents — это файлы Markdown с YAML frontmatter. Сохраняйте их в разных местах в зависимости от области. Когда несколько subagents имеют одно и то же имя, Claude Code использует тот, который находится в местоположении с более высоким приоритетом.166Сохраняйте файлы subagent в разных местах в зависимости от области. Когда несколько subagents имеют одно и то же имя, Claude Code использует тот, который находится в местоположении с более высоким приоритетом.

175 167 

176| Location | Scope | Priority | Как создать |168| Location | Scope | Priority | Как создать |

177| :-------------------------- | :----------------- | :------------- | :------------------------------------------------ |169| :-------------------------- | :----------------- | :------------- | :------------------------------------------------ |

178| Managed settings | Организация | 1 (наивысший) | Развёрнуто через [managed settings](/ru/settings) |170| Managed settings | Организация | 1 (наивысший) | Развёрнуто через [managed settings](/ru/settings) |

179| `--agents` CLI flag | Текущая сессия | 2 | Передайте JSON при запуске Claude Code |171| `--agents` CLI flag | Текущая сессия | 2 | Передайте JSON при запуске Claude Code |

180| `.claude/agents/` | Текущий проект | 3 | Интерактивно или вручную |172| `.claude/agents/` | Текущий проект | 3 | Попросите Claude или создайте файл вручную |

181| `~/.claude/agents/` | Все ваши проекты | 4 | Интерактивно или вручную |173| `~/.claude/agents/` | Все ваши проекты | 4 | Попросите Claude или создайте файл вручную |

182| Директория `agents/` plugin | Где включен plugin | 5 (наименьший) | Установлено с [plugins](/ru/plugins) |174| Директория `agents/` plugin | Где включен plugin | 5 (наименьший) | Установлено с [plugins](/ru/plugins) |

183 175 

184**Project subagents** (`.claude/agents/`) идеальны для subagents, специфичных для кодовой базы. Проверьте их в систему контроля версий, чтобы ваша команда могла использовать и улучшать их совместно.176**Project subagents** (`.claude/agents/`) идеальны для subagents, специфичных для кодовой базы. Проверьте их в систему контроля версий, чтобы ваша команда могла использовать и улучшать их совместно.


239 231 

240**Managed subagents** развёртываются администраторами организации. Поместите файлы markdown в `.claude/agents/` внутри [директории managed settings](/ru/settings#settings-files), используя тот же формат frontmatter, что и project и user subagents. Managed определения имеют приоритет над project и user subagents с тем же именем.232**Managed subagents** развёртываются администраторами организации. Поместите файлы markdown в `.claude/agents/` внутри [директории managed settings](/ru/settings#settings-files), используя тот же формат frontmatter, что и project и user subagents. Managed определения имеют приоритет над project и user subagents с тем же именем.

241 233 

242**Plugin subagents** поступают из [plugins](/ru/plugins), которые вы установили. Они появляются в `/agents` рядом с вашими пользовательскими subagents. См. [справку по компонентам plugin](/ru/plugins-reference#agents) для деталей создания plugin subagents.234**Plugin subagents** поступают из [plugins](/ru/plugins), которые вы установили. Они загружаются вместе с вашими пользовательскими subagents и появляются в typeahead @-упоминания под их scoped name. См. [справку по компонентам plugin](/ru/plugins-reference#agents) для деталей создания plugin subagents.

243 235 

244<Note>236<Note>

245 По соображениям безопасности plugin subagents не поддерживают поля frontmatter `hooks`, `mcpServers` или `permissionMode`. Эти поля игнорируются при загрузке агентов из plugin. Если они вам нужны, скопируйте файл агента в `.claude/agents/` или `~/.claude/agents/`. Вы также можете добавить правила в [`permissions.allow`](/ru/settings#permission-settings) в `settings.json` или `settings.local.json`, но эти правила применяются ко всей сессии, а не только к plugin subagent.237 По соображениям безопасности plugin subagents не поддерживают поля frontmatter `hooks`, `mcpServers` или `permissionMode`. Эти поля игнорируются при загрузке агентов из plugin. Если они вам нужны, скопируйте файл агента в `.claude/agents/` или `~/.claude/agents/`. Вы также можете добавить правила в [`permissions.allow`](/ru/settings#permission-settings) в `settings.json` или `settings.local.json`, но эти правила применяются ко всей сессии, а не только к plugin subagent.


254Файлы subagent используют YAML frontmatter для конфигурации, за которым следует системное приглашение в Markdown:246Файлы subagent используют YAML frontmatter для конфигурации, за которым следует системное приглашение в Markdown:

255 247 

256<Note>248<Note>

257 Subagents загружаются при запуске сессии. Если вы добавляете или редактируете файл subagent напрямую на диск, перезагрузите сессию для его загрузки. Subagents, созданные через интерфейс `/agents`, вступают в силу немедленно без перезагрузки.249 Claude Code наблюдает за `~/.claude/agents/` и `.claude/agents/`. Когда вы добавляете или редактируете файл subagent на диск, или просите Claude написать его для вас, Claude Code обнаруживает изменение в течение нескольких секунд и следующее делегирование использует обновленное определение без необходимости перезагрузки.

250 

251 Два случая по-прежнему требуют перезагрузки:

252 

253 * Наблюдатель охватывает только директории, которые существовали при запуске сессии, поэтому после создания первого файла агента области в новой директории `agents`, перезагрузитесь для его загрузки.

254 * Сессии, запущенные с `--disable-slash-commands`, вообще не наблюдают эти директории.

258</Note>255</Note>

259 256 

260```markdown theme={null}257```markdown theme={null}


292| `mcpServers` | Нет | [MCP servers](/ru/mcp) доступные этому subagent. Каждая запись — это либо имя сервера, ссылающееся на уже настроенный сервер (например, `"slack"`), либо встроенное определение с именем сервера в качестве ключа и полной [конфигурацией MCP server](/ru/mcp#installing-mcp-servers) в качестве значения. Игнорируется для [plugin subagents](#choose-the-subagent-scope) |289| `mcpServers` | Нет | [MCP servers](/ru/mcp) доступные этому subagent. Каждая запись — это либо имя сервера, ссылающееся на уже настроенный сервер (например, `"slack"`), либо встроенное определение с именем сервера в качестве ключа и полной [конфигурацией MCP server](/ru/mcp#installing-mcp-servers) в качестве значения. Игнорируется для [plugin subagents](#choose-the-subagent-scope) |

293| `hooks` | Нет | [Lifecycle hooks](#define-hooks-for-subagents) в области этого subagent. Игнорируется для [plugin subagents](#choose-the-subagent-scope) |290| `hooks` | Нет | [Lifecycle hooks](#define-hooks-for-subagents) в области этого subagent. Игнорируется для [plugin subagents](#choose-the-subagent-scope) |

294| `memory` | Нет | [Область постоянной памяти](#enable-persistent-memory): `user`, `project` или `local`. Включает кросс-сессионное обучение |291| `memory` | Нет | [Область постоянной памяти](#enable-persistent-memory): `user`, `project` или `local`. Включает кросс-сессионное обучение |

295| `background` | Нет | Установите на `true`, чтобы всегда запускать этот subagent как [фоновую задачу](#run-subagents-in-foreground-or-background). По умолчанию: `false` |292| `background` | Нет | Установите на `true`, чтобы всегда запускать этот subagent как [фоновую задачу](#run-subagents-in-foreground-or-background), даже когда Claude нуждается в его результате прямо сейчас. Если не установлено, Claude выбирает, и {/* min-version: 2.1.198 */}начиная с версии 2.1.198 он запускает subagents в фоне по умолчанию |

296| `effort` | Нет | Уровень усилий, когда этот subagent активен. Переопределяет уровень усилий сессии. По умолчанию: наследуется из сессии. Параметры: `low`, `medium`, `high`, `xhigh`, `max`; доступные уровни зависят от модели |293| `effort` | Нет | Уровень усилий, когда этот subagent активен. Переопределяет уровень усилий сессии. По умолчанию: наследуется из сессии. Параметры: `low`, `medium`, `high`, `xhigh`, `max`; доступные уровни зависят от модели |

297| `isolation` | Нет | Установите на `worktree`, чтобы запустить subagent во временном [git worktree](/ru/worktrees), дав ему изолированную копию репозитория, разветвлённую по умолчанию от вашей [ветки по умолчанию](/ru/worktrees#choose-the-base-branch), а не от `HEAD` родительской сессии. Worktree автоматически очищается, если subagent не вносит изменения |294| `isolation` | Нет | Установите на `worktree`, чтобы запустить subagent во временном [git worktree](/ru/worktrees), дав ему изолированную копию репозитория, разветвлённую по умолчанию от вашей [ветки по умолчанию](/ru/worktrees#choose-the-base-branch), а не от `HEAD` родительской сессии. Worktree автоматически очищается, если subagent не вносит изменения |

298| `color` | Нет | Цвет отображения для subagent в списке задач и транскрипте. Принимает `red`, `blue`, `green`, `yellow`, `purple`, `orange`, `pink` или `cyan` |295| `color` | Нет | Цвет отображения для subagent в списке задач и транскрипте. Принимает `red`, `blue`, `green`, `yellow`, `purple`, `orange`, `pink` или `cyan` |


320 317 

321Переменная окружения, параметр для конкретного вызова и значения frontmatter проверяются на соответствие списку разрешений [`availableModels`](/ru/model-config#restrict-model-selection) вашей организации. Значение, которое разрешается в исключённую модель, не используется, и subagent вместо этого работает на унаследованной модели.318Переменная окружения, параметр для конкретного вызова и значения frontmatter проверяются на соответствие списку разрешений [`availableModels`](/ru/model-config#restrict-model-selection) вашей организации. Значение, которое разрешается в исключённую модель, не используется, и subagent вместо этого работает на унаследованной модели.

322 319 

320{/* min-version: 2.1.198 */}Начиная с версии 2.1.198, subagents также наследуют конфигурацию [extended thinking](/ru/model-config#extended-thinking) основного разговора: если thinking включен в вашей сессии, он включен для subagent, и если он выключен, он остаётся выключенным. Нет параметра thinking для каждого subagent. До версии 2.1.198 subagents запускались с отключённым extended thinking независимо от параметра основного разговора.

321 

323<h3 id="control-subagent-capabilities">322<h3 id="control-subagent-capabilities">

324 Контролируйте возможности subagent323 Контролируйте возможности subagent

325</h3>324</h3>


432Use the Playwright tools to navigate, screenshot, and interact with pages.431Use the Playwright tools to navigate, screenshot, and interact with pages.

433```432```

434 433 

435Встроенные определения используют ту же схему, что и записи сервера `.mcp.json` (`stdio`, `http`, `sse`, `ws`), ключевые по имени сервера.434Встроенные определения используют ту же схему, что и записи сервера `.mcp.json`, ключевые по имени сервера, и поддерживают типы `stdio`, `http`, `sse` и `ws`.

436 435 

437Чтобы исключить MCP сервер из основного разговора полностью и избежать того, чтобы описания его инструментов потребляли контекст там, определите его встроенным здесь, а не в `.mcp.json`. Subagent получает инструменты; родительский разговор — нет.436Чтобы исключить MCP сервер из основного разговора полностью и избежать того, чтобы описания его инструментов потребляли контекст там, определите его встроенным здесь, а не в `.mcp.json`. Subagent получает инструменты; родительский разговор — нет.

438 437 


528 Советы по постоянной памяти527 Советы по постоянной памяти

529</h5>528</h5>

530 529 

531* `project` — рекомендуемая область по умолчанию. Это делает знания subagent доступными для совместного использования через систему контроля версий. Используйте `user`, когда знания subagent широко применимы в проектах, или `local`, когда знания не должны проверяться в систему контроля версий.530* `project` — рекомендуемая область по умолчанию. Это делает знания subagent доступными для совместного использования через систему контроля версий.

532* Попросите subagent проверить его память перед началом работы: "Review this PR, and check your memory for patterns you've seen before."531* Попросите subagent проверить его память перед началом работы: "Review this PR, and check your memory for patterns you've seen before."

533* Попросите subagent обновить его память после завершения задачи: "Now that you're done, save what you learned to your memory." Со временем это создаёт базу знаний, которая делает subagent более эффективным.532* Попросите subagent обновить его память после завершения задачи: "Now that you're done, save what you learned to your memory." Со временем это создаёт базу знаний, которая делает subagent более эффективным.

534* Включите инструкции по памяти непосредственно в файл markdown subagent, чтобы он активно поддерживал свою собственную базу знаний:533* Включите инструкции по памяти непосредственно в файл markdown subagent, чтобы он активно поддерживал свою собственную базу знаний:


776* **Foreground subagents** блокируют основной разговор до завершения. Запросы разрешений передаются вам по мере их возникновения.775* **Foreground subagents** блокируют основной разговор до завершения. Запросы разрешений передаются вам по мере их возникновения.

777* **Background subagents** работают параллельно, пока вы продолжаете работать. {/* min-version: 2.1.186 */}Начиная с v2.1.186, когда фоновый subagent достигает вызова инструмента, требующего разрешения, приглашение появляется в вашей основной сессии и называет subagent, который спрашивает. Одобрите, чтобы позволить subagent продолжить, или нажмите Esc, чтобы отклонить этот вызов инструмента без остановки subagent. До v2.1.186 фоновые subagents автоматически отклоняли любой вызов инструмента, который иначе потребовал бы приглашения.776* **Background subagents** работают параллельно, пока вы продолжаете работать. {/* min-version: 2.1.186 */}Начиная с v2.1.186, когда фоновый subagent достигает вызова инструмента, требующего разрешения, приглашение появляется в вашей основной сессии и называет subagent, который спрашивает. Одобрите, чтобы позволить subagent продолжить, или нажмите Esc, чтобы отклонить этот вызов инструмента без остановки subagent. До v2.1.186 фоновые subagents автоматически отклоняли любой вызов инструмента, который иначе потребовал бы приглашения.

778 777 

779Claude решает, запускать ли subagents в переднем плане или фоне на основе задачи. Вы также можете:778{/* min-version: 2.1.198 */}Начиная с v2.1.198, subagents работают в фоне по умолчанию. Claude запускает subagent в переднем плане, когда ему нужен результат перед продолжением. По умолчанию изменяется место выполнения subagent, а не то, что ему разрешено делать: фоновые subagents по-прежнему выводят каждый запрос разрешения в вашу основную сессию. До v2.1.198 Claude выбирал между передним планом и фоном на основе задачи.

780 779 

781* Попросить Claude "run this in the background"780Вы также можете управлять этим самостоятельно:

782* Нажать **Ctrl+B** для фонового выполнения работающей задачи781 

782* Попросите Claude запустить задачу в фоне или в переднем плане

783* Нажмите **Ctrl+B** для фонового выполнения работающей задачи

783 784 

784Чтобы отключить всю функциональность фоновых задач, установите переменную окружения `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` на `1`. См. [Environment variables](/ru/env-vars).785Чтобы отключить всю функциональность фоновых задач, установите переменную окружения `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` на `1`. См. [Environment variables](/ru/env-vars).

785 786 

786Когда [`CLAUDE_CODE_FORK_SUBAGENT`](#fork-the-current-conversation) установлена на `1`, каждый spawn subagent работает в фоне независимо от поля `background`. Запросы разрешений от этих фоновых subagents появляются в вашей основной сессии, как описано выше.787Когда [`CLAUDE_CODE_FORK_SUBAGENT`](#fork-the-current-conversation) установлена на `1`, каждый spawn subagent работает в фоне и поле frontmatter `background` не имеет эффекта, потому что режим fork удаляет параметр `run_in_background` из инструмента `Agent`. `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` имеет приоритет над режимом fork и сохраняет spawns subagent в переднем плане.

788 

789<h3 id="api-errors-in-subagents">

790 Ошибки API в subagents

791</h3>

792 

793{/* min-version: 2.1.199 */}Начиная с v2.1.199, subagent, чей запуск заканчивается ошибкой API, такой как лимит использования или повторяющаяся ошибка сервера, сообщает об этом отказе Claude вместо возврата текста ошибки, как если бы это были результаты subagent. То, что получает Claude, зависит от того, где работал subagent:

794 

795* **Foreground**: если лимит скорости, перегрузка или ошибка сервера прерывает subagent, который уже произвёл выходные данные, инструмент Agent возвращает эти частичные выходные данные с примечанием, что subagent был прерван и не завершил свою задачу. В противном случае вызов инструмента завершается с ошибкой [`Agent terminated early due to an API error`](/ru/errors#agent-terminated-early-due-to-an-api-error), за которой следует деталь ошибки.

796* **Background**: subagent помечается как неудачный, и сообщение, которое Claude получает при завершении, называет ошибку API и включает последний выход subagent, поэтому частичная работа не теряется.

797 

798После того как основная ошибка API исчезнет, попросите Claude повторить задачу или [возобновить subagent](#resume-subagents).

787 799 

788<h3 id="common-patterns">800<h3 id="common-patterns">

789 Распространённые паттерны801 Распространённые паттерны


854 866 

855{/* min-version: 2.1.172 */}Начиная с Claude Code v2.1.172, subagent может порождать собственные subagents. Используйте это, когда делегированная задача сама разбивается на параллельные подзадачи, например subagent-рецензент, который отправляет верификатор для каждого обнаружения, так что промежуточный выход никогда не достигает основного разговора. Только резюме subagent верхнего уровня возвращается вам.867{/* min-version: 2.1.172 */}Начиная с Claude Code v2.1.172, subagent может порождать собственные subagents. Используйте это, когда делегированная задача сама разбивается на параллельные подзадачи, например subagent-рецензент, который отправляет верификатор для каждого обнаружения, так что промежуточный выход никогда не достигает основного разговора. Только резюме subagent верхнего уровня возвращается вам.

856 868 

857Вложенный subagent конфигурируется так же, как subagent верхнего уровня и разрешается из тех же [областей видимости](#choose-the-subagent-scope). Панель subagent ниже ввода приглашения показывает полное дерево: каждая строка отображает счётчик `(+N)` потомков, и {/* min-version: 2.1.193 */}начиная с v2.1.193, открытие строки показывает прямых потомков этого subagent с путём обратно к `main`. Вкладка Running в [`/agents`](#use-the-%2Fagents-command) перечисляет работающие subagents как плоский список.869Вложенный subagent конфигурируется так же, как subagent верхнего уровня и разрешается из тех же [областей видимости](#choose-the-subagent-scope).

870 

871Панель subagent ниже ввода приглашения показывает полное дерево: каждая строка отображает счётчик `(+N)` потомков, и {/* min-version: 2.1.193 */}начиная с v2.1.193, открытие строки показывает прямых потомков этого subagent с путём обратно к `main`.

858 872 

859Глубина считается количеством уровней subagent ниже основного разговора, независимо от того, работает ли каждый уровень в [переднем плане или фоне](#run-subagents-in-foreground-or-background). Subagent на глубине пять не получает инструмент Agent и не может порождать дальше. Лимит фиксирован и не конфигурируется.873Глубина считается количеством уровней subagent ниже основного разговора, независимо от того, работает ли каждый уровень в [переднем плане или фоне](#run-subagents-in-foreground-or-background). Subagent на глубине пять не получает инструмент Agent и не может порождать дальше. Лимит фиксирован и не конфигурируется.

860 874 


896 910 

897Когда subagent завершается, Claude получает его ID агента. Встроенные агенты Explore и Plan — это одноразовые и не возвращают ID агента, поэтому они не могут быть возобновлены; используйте `general-purpose` или пользовательский subagent, когда вам нужно продолжить работу.911Когда subagent завершается, Claude получает его ID агента. Встроенные агенты Explore и Plan — это одноразовые и не возвращают ID агента, поэтому они не могут быть возобновлены; используйте `general-purpose` или пользовательский subagent, когда вам нужно продолжить работу.

898 912 

899Claude использует инструмент `SendMessage` с ID агента в качестве поля `to` для возобновления его. Инструмент `SendMessage` всегда доступен для возобновления subagents по ID или имени агента. Структурированные сообщения протокола команды, такие как `shutdown_request` и `plan_approval_response`, требуют включения [agent teams](/ru/agent-teams).913Claude использует инструмент `SendMessage` с ID агента или именем агента в качестве поля `to` для возобновления его. `SendMessage` не требует включения [agent teams](/ru/agent-teams); только структурированные сообщения протокола команды, такие как `shutdown_request` и `plan_approval_response`, это требуют.

900 914 

901Чтобы возобновить subagent, попросите Claude продолжить предыдущую работу:915Чтобы возобновить subagent, попросите Claude продолжить предыдущую работу:

902 916 


910 924 

911Если остановленный subagent получает `SendMessage`, он автоматически возобновляется в фоне без необходимости нового вызова `Agent`.925Если остановленный subagent получает `SendMessage`, он автоматически возобновляется в фоне без необходимости нового вызова `Agent`.

912 926 

927{/* min-version: 2.1.199 */}Начиная с v2.1.199, `SendMessage` проверяет, что имя по-прежнему ссылается на того же агента, которого оно достигло ранее в разговоре. Если более новый агент взял имя, например повторно порождённый фоновый агент, который его переиспользовал, Claude Code отказывает в отправке, а не доставляет его неправильному агенту, и ошибка сообщает, какого агента имя теперь достигает, чтобы Claude мог перенаправить. Чтобы достичь более раннего агента, пока он всё ещё работает, Claude обращается к нему по ID агента из результата spawn. Проверка ограничена текущим разговором и сбрасывается на `/clear`.

928 

929{/* min-version: 2.1.198 */}Начиная с v2.1.198, subagent рассматривает сообщения от агента, который его запустил, как нормальное направление задачи, включая коррекции курса во время выполнения, и действует в соответствии с ними в рамках своих собственных параметров разрешения. Два лимита по-прежнему действуют независимо от того, кто отправил сообщение: ни одно сообщение от любого агента не считается вашим одобрением для ожидающего запроса разрешения, и ни один агент не может изменить параметры разрешения subagent, `CLAUDE.md` или конфигурацию. Только система разрешений или ваши собственные сообщения могут предоставить одобрение.

930 

913Вы также можете попросить Claude ID агента, если хотите ссылаться на него явно, или найти ID в файлах транскрипта в `~/.claude/projects/{project}/{sessionId}/subagents/`. Каждый транскрипт сохраняется как `agent-{agentId}.jsonl`.931Вы также можете попросить Claude ID агента, если хотите ссылаться на него явно, или найти ID в файлах транскрипта в `~/.claude/projects/{project}/{sessionId}/subagents/`. Каждый транскрипт сохраняется как `agent-{agentId}.jsonl`.

914 932 

915Транскрипты subagent сохраняются независимо от основного разговора:933Транскрипты subagent сохраняются независимо от основного разговора:


977| `x` | Отклоните завершённый fork или остановите работающий |995| `x` | Отклоните завершённый fork или остановите работающий |

978| `Esc` | Верните фокус на входное приглашение |996| `Esc` | Верните фокус на входное приглашение |

979 997 

998С открытым транскриптом fork или subagent, последующие сообщения и [skills](/ru/skills) идут к этому агенту, но встроенные команды по-прежнему работают в вашем основном разговоре. {/* min-version: 2.1.199 */}Начиная с v2.1.199, ввод `/model` или `/fast` в этом представлении показывает уведомление о том, что это изменяет модель основного разговора или режим быстрого выполнения, а не просмотренного агента, вместо того чтобы запускать его молча.

999 

980<h3 id="how-forks-differ-from-named-subagents">1000<h3 id="how-forks-differ-from-named-subagents">

981 Как forks отличаются от именованных subagents1001 Как forks отличаются от именованных subagents

982</h3>1002</h3>


1020 Проверяющий кода1040 Проверяющий кода

1021</h3>1041</h3>

1022 1042 

1023Subagent только для чтения, который проверяет код без его модификации. Этот пример показывает, как спроектировать сфокусированный subagent с ограниченным доступом к инструментам (нет Edit или Write) и подробным приглашением, которое точно указывает, что искать и как форматировать выход.1043Subagent только для чтения, который проверяет код без его модификации. Этот пример показывает, как спроектировать сфокусированный subagent с ограниченным доступом к инструментам, который исключает Edit и Write, и подробным приглашением, которое точно указывает, что искать и как форматировать выход.

1024 1044 

1025```markdown theme={null}1045```markdown theme={null}

1026---1046---

Details

196 196 

197* [Claude for Teams или Enterprise](/ru/authentication#claude-for-teams-or-enterprise)197* [Claude for Teams или Enterprise](/ru/authentication#claude-for-teams-or-enterprise)

198* [Anthropic Console](/ru/authentication#claude-console-authentication)198* [Anthropic Console](/ru/authentication#claude-console-authentication)

199* [Claude apps gateway](/ru/claude-apps-gateway), самостоятельно размещаемый шлюз, который добавляет вход через IdP перед Amazon Bedrock, Google Vertex AI, Microsoft Foundry или Anthropic API199* [Claude apps gateway](/ru/claude-apps-gateway), самостоятельно размещаемый шлюз, который добавляет вход через IdP перед Amazon Bedrock, Claude Platform on AWS, Google Vertex AI, Microsoft Foundry или Anthropic API

200* [Amazon Bedrock](/ru/amazon-bedrock)200* [Amazon Bedrock](/ru/amazon-bedrock)

201* [Claude Platform on AWS](/ru/claude-platform-on-aws)201* [Claude Platform on AWS](/ru/claude-platform-on-aws)

202* [Google Vertex AI](/ru/google-vertex-ai)202* [Google Vertex AI](/ru/google-vertex-ai)

tools-reference.md +22 −12

Details

11Чтобы добавить пользовательские инструменты, подключите [MCP server](/ru/mcp). Чтобы расширить Claude с помощью переиспользуемых рабочих процессов на основе подсказок, напишите [skill](/ru/skills), который работает через существующий инструмент `Skill` вместо добавления новой записи инструмента.11Чтобы добавить пользовательские инструменты, подключите [MCP server](/ru/mcp). Чтобы расширить Claude с помощью переиспользуемых рабочих процессов на основе подсказок, напишите [skill](/ru/skills), который работает через существующий инструмент `Skill` вместо добавления новой записи инструмента.

12 12 

13| Инструмент | Описание | Требуется разрешение |13| Инструмент | Описание | Требуется разрешение |

14| :--------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------- |14| :--------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------- |

15| `Agent` | Создает [subagent](/ru/sub-agents) с собственным контекстным окном для выполнения задачи. См. [поведение инструмента Agent](#agent-tool-behavior) | Нет |15| `Agent` | Создает [subagent](/ru/sub-agents) с собственным контекстным окном для выполнения задачи. См. [поведение инструмента Agent](#agent-tool-behavior) | Нет |

16| `Artifact` | Публикует HTML или Markdown файл как [artifact](/ru/artifacts): приватную интерактивную страницу на claude.ai. На планах Team и Enterprise вы можете делиться ею внутри вашей организации. {/* plan-availability: feature=artifacts plans=pro,max,team,enterprise providers=anthropic */}Требует план Pro, Max, Team или Enterprise и аутентификацию `/login`; см. [Доступность](/ru/artifacts#availability) | Да |16| `Artifact` | Публикует HTML или Markdown файл как [artifact](/ru/artifacts): приватную интерактивную страницу на claude.ai. На планах Team и Enterprise вы можете делиться ею внутри вашей организации. {/* plan-availability: feature=artifacts plans=pro,max,team,enterprise providers=anthropic */}Требует план Pro, Max, Team или Enterprise и аутентификацию `/login`; см. [Доступность](/ru/artifacts#availability) | Да |

17| `AskUserQuestion` | Задает вопросы с несколькими вариантами ответов для сбора требований или уточнения неоднозначности | Нет |17| `AskUserQuestion` | Задает вопросы с несколькими вариантами ответов для сбора требований или уточнения неоднозначности. {/* min-version: 2.1.198 */}Начиная с версии 2.1.198, если вы не ответите в течение 60 секунд, диалог закроется самостоятельно: он отправит все уже выбранные вами параметры и сообщит Claude, что вы можете быть вдали от клавиатуры, поэтому Claude действует по собственному суждению и может переспросить позже. Обратный отсчет появляется в течение последних 20 секунд. Любое нажатие клавиши держит диалог открытым, как и сфокусированное окно на терминалах, которые сообщают о фокусе. Установите переменную окружения [`CLAUDE_AFK_TIMEOUT_MS`](/ru/env-vars#variables) для изменения времени ожидания Claude Code или установите большое значение, например `86400000`, 24 часа, чтобы держать вопросы открытыми, пока вас нет. Это время ожидания применяется только к вопросам с несколькими вариантами ответов `AskUserQuestion`; подсказки разрешений, включая одобрение плана, никогда не разрешаются автоматически при неактивности | Нет |

18| `Bash` | Выполняет команды оболочки в вашей среде. См. [поведение инструмента Bash](#bash-tool-behavior) | Да |18| `Bash` | Выполняет команды оболочки в вашей среде. См. [поведение инструмента Bash](#bash-tool-behavior) | Да |

19| `CronCreate` | Планирует повторяющуюся или одноразовую подсказку в текущем сеансе. Задачи привязаны к сеансу и восстанавливаются при `--resume` или `--continue`, если не истекли. См. [запланированные задачи](/ru/scheduled-tasks) | Нет |19| `CronCreate` | Планирует повторяющуюся или одноразовую подсказку в текущем сеансе. Задачи привязаны к сеансу и восстанавливаются при `--resume` или `--continue`, если не истекли. См. [запланированные задачи](/ru/scheduled-tasks) | Нет |

20| `CronDelete` | Отменяет запланированную задачу по ID | Нет |20| `CronDelete` | Отменяет запланированную задачу по ID | Нет |


35| `Read` | Читает содержимое файлов. См. [поведение инструмента Read](#read-tool-behavior) | Нет |35| `Read` | Читает содержимое файлов. См. [поведение инструмента Read](#read-tool-behavior) | Нет |

36| `ReadMcpResourceTool` | Читает конкретный ресурс MCP по URI | Нет |36| `ReadMcpResourceTool` | Читает конкретный ресурс MCP по URI | Нет |

37| `RemoteTrigger` | Создает, обновляет, запускает и выводит список [Routines](/ru/routines) на claude.ai. Поддерживает команду `/schedule`. {/* plan-availability: feature=routines plans=pro,max,team,enterprise providers=anthropic */}Routines находятся на claude.ai и требуют план Pro, Max, Team или Enterprise, поэтому этот инструмент недоступен из Amazon Bedrock, Google Vertex AI или Microsoft Foundry | Нет |37| `RemoteTrigger` | Создает, обновляет, запускает и выводит список [Routines](/ru/routines) на claude.ai. Поддерживает команду `/schedule`. {/* plan-availability: feature=routines plans=pro,max,team,enterprise providers=anthropic */}Routines находятся на claude.ai и требуют план Pro, Max, Team или Enterprise, поэтому этот инструмент недоступен из Amazon Bedrock, Google Vertex AI или Microsoft Foundry | Нет |

38| `ReportFindings` | Сообщает о результатах проверки кода как структурированный список с файлом, резюме и сценарием сбоя для каждого результата, чтобы Claude Code мог их отобразить вместо вывода в виде текста. Claude вызывает его, когда активные инструкции проверки кода говорят ему это сделать. {/* min-version: 2.1.196 */}Требует Claude Code v2.1.196 или позже | Нет |38| `ReportFindings` | Сообщает о результатах проверки кода как структурированный список с файлом, резюме и сценарием сбоя для каждого результата, чтобы Claude Code мог их отобразить вместо вывода в виде текста. Claude вызывает его, когда активные инструкции проверки кода говорят ему это сделать. {/* min-version: 2.1.196 */}Требует Claude Code v2.1.196 или позже. {/* min-version: 2.1.199 */}Начиная с версии 2.1.199, результат также может содержать необязательный слаг `category`, такой как `correctness` или `test-coverage`, показанный рядом с расположением файла в отображаемом списке | Нет |

39| `ScheduleWakeup` | Переносит следующую итерацию [самостоятельного `/loop`](/ru/scheduled-tasks#let-claude-choose-the-interval). Claude вызывает это в конце каждой итерации, чтобы выбрать, когда запустится следующая, между одной минутой и одним часом; вы не вызываете это напрямую. Ожидающее пробуждение появляется в `session_crons` в [входе Stop hook](/ru/hooks#stop-input). {/* plan-availability: feature=loop-dynamic providers=anthropic */}Недоступно на Amazon Bedrock, Google Vertex AI или Microsoft Foundry, где `/loop` подсказка без интервала работает по фиксированному расписанию | Нет |39| `ScheduleWakeup` | Переносит следующую итерацию [самостоятельного `/loop`](/ru/scheduled-tasks#let-claude-choose-the-interval). Claude вызывает это в конце каждой итерации, чтобы выбрать, когда запустится следующая, между одной минутой и одним часом; вы не вызываете это напрямую. Ожидающее пробуждение появляется в `session_crons` в [входе Stop hook](/ru/hooks#stop-input). {/* plan-availability: feature=loop-dynamic providers=anthropic */}Недоступно на Amazon Bedrock, Google Vertex AI или Microsoft Foundry, где `/loop` подсказка без интервала работает по фиксированному расписанию | Нет |

40| `SendMessage` | Отправляет сообщение члену [команды агентов](/ru/agent-teams), или [возобновляет subagent](/ru/sub-agents#resume-subagents) по его ID агента. Остановленные subagents автоматически возобновляются в фоне. Структурированные сообщения протокола команды требуют команды агентов | Нет |40| `SendMessage` | Отправляет сообщение члену [команды агентов](/ru/agent-teams), или [возобновляет subagent](/ru/sub-agents#resume-subagents) по его ID агента или имени. Остановленные subagents автоматически возобновляются в фоне. Структурированные сообщения протокола команды требуют команды агентов. Получатель никогда не рассматривает сообщение от другого агента как ваше согласие или одобрение. {/* min-version: 2.1.198 */}Начиная с версии 2.1.198, subagent рассматривает сообщение от агента, который его запустил, как обычное направление задачи, а не как запрос от коллеги. {/* min-version: 2.1.199 */}Начиная с версии 2.1.199, отправка на имя, которое теперь разрешается в другого агента, чем раньше в разговоре, отклоняется вместо доставки; см. [Возобновление subagents](/ru/sub-agents#resume-subagents) | Нет |

41| `SendUserFile` | Отправляет файлы из сеанса вам с необязательной подписью, чтобы созданный отчет, диаграмма, снимок экрана или построенный артефакт достигли вашего устройства вместо того, чтобы только упоминаться в стенограмме. {/* min-version: 2.1.196 */}Начиная с версии 2.1.196, необязательный ввод `display` управляет представлением: `render` открывает файл встроенным образом в клиенте, `attach` показывает только карточку загрузки, и когда не установлено, клиент решает по типу файла. Доступно при подключении клиента [Remote Control](/ru/remote-control) или когда сеанс работает в управляемой облачной среде, такой как [Claude Code в веб-версии](/ru/claude-code-on-the-web). Доставка осуществляется через инфраструктуру, размещенную на Anthropic, поэтому инструмент недоступен на Amazon Bedrock, Google Vertex AI или Microsoft Foundry | Нет |41| `SendUserFile` | Отправляет файлы из сеанса вам с необязательной подписью, чтобы созданный отчет, диаграмма, снимок экрана или построенный артефакт достигли вашего устройства вместо того, чтобы только упоминаться в стенограмме. {/* min-version: 2.1.196 */}Начиная с версии 2.1.196, необязательный ввод `display` управляет представлением: `render` открывает файл встроенным образом в клиенте, `attach` показывает только карточку загрузки, и когда не установлено, клиент решает по типу файла. Доступно при подключении клиента [Remote Control](/ru/remote-control) или когда сеанс работает в управляемой облачной среде, такой как [Claude Code в веб-версии](/ru/claude-code-on-the-web). Доставка осуществляется через инфраструктуру, размещенную на Anthropic, поэтому инструмент недоступен на Amazon Bedrock, Google Vertex AI или Microsoft Foundry | Нет |

42| `ShareOnboardingGuide` | {/* plan-availability: feature=onboarding-guide-share plans=pro,max,team,enterprise providers=anthropic */}Загружает `ONBOARDING.md` и возвращает ссылку для общего доступа, которую товарищи по команде могут открыть в Claude Code. Вызывается из `/team-onboarding` после написания руководства. Доступно для подписчиков claude.ai на планах Pro, Max, Team и Enterprise | Да |42| `ShareOnboardingGuide` | {/* plan-availability: feature=onboarding-guide-share plans=pro,max,team,enterprise providers=anthropic */}Загружает `ONBOARDING.md` и возвращает ссылку для общего доступа, которую товарищи по команде могут открыть в Claude Code. Вызывается из `/team-onboarding` после написания руководства. Доступно для подписчиков claude.ai на планах Pro, Max, Team и Enterprise | Да |

43| `Skill` | Выполняет [skill](/ru/skills#control-who-invokes-a-skill) в основном разговоре | Да |43| `Skill` | Выполняет [skill](/ru/skills#control-who-invokes-a-skill) в основном разговоре | Да |


45| `TaskGet` | Получает полные сведения для конкретной задачи | Нет |45| `TaskGet` | Получает полные сведения для конкретной задачи | Нет |

46| `TaskList` | Выводит список всех задач с их текущим статусом | Нет |46| `TaskList` | Выводит список всех задач с их текущим статусом | Нет |

47| `TaskOutput` | (Устарело) Получает вывод из фоновой задачи. Предпочитайте `Read` на пути к файлу вывода задачи | Нет |47| `TaskOutput` | (Устарело) Получает вывод из фоновой задачи. Предпочитайте `Read` на пути к файлу вывода задачи | Нет |

48| `TaskStop` | Завершает выполняющуюся фоновую задачу по ID | Нет |48| `TaskStop` | Завершает выполняющуюся фоновую задачу по ID. {/* min-version: 2.1.198 */}Начиная с версии 2.1.198, также принимает [товарища по команде агентов](/ru/agent-teams) или именованного фонового агента по ID агента или имени | Нет |

49| `TaskUpdate` | Обновляет статус задачи, зависимости, сведения или удаляет задачи | Нет |49| `TaskUpdate` | Обновляет статус задачи, зависимости, сведения или удаляет задачи | Нет |

50| `TodoWrite` | {/* min-version: 2.1.142 */}Управляет контрольным списком задач сеанса. Отключено по умолчанию начиная с версии 2.1.142 в пользу `TaskCreate`, `TaskGet`, `TaskList` и `TaskUpdate`. Установите `CLAUDE_CODE_ENABLE_TASKS=0` для повторного включения | Нет |50| `TodoWrite` | {/* min-version: 2.1.142 */}Управляет контрольным списком задач сеанса. Отключено по умолчанию начиная с версии 2.1.142 в пользу `TaskCreate`, `TaskGet`, `TaskList` и `TaskUpdate`. Установите `CLAUDE_CODE_ENABLE_TASKS=0` для повторного включения | Нет |

51| `ToolSearch` | Ищет и загружает отложенные инструменты, когда включен [поиск инструментов](/ru/mcp#scale-with-mcp-tool-search) | Нет |51| `ToolSearch` | Ищет и загружает отложенные инструменты, когда включен [поиск инструментов](/ru/mcp#scale-with-mcp-tool-search) | Нет |

52| `WaitForMcpServers` | {/* min-version: 2.1.142 */}Ожидает один или несколько [MCP servers](/ru/mcp), которые все еще подключаются в фоне, чтобы запрос мог использовать их инструменты без перезагрузки сеанса. Claude вызывает его, когда требуемый сервер еще не подключен. Появляется только когда [поиск инструментов](/ru/mcp#scale-with-mcp-tool-search) отключен, так как `ToolSearch` обрабатывает ожидание, когда он включен | Нет |52| `WaitForMcpServers` | Ожидает один или несколько [MCP servers](/ru/mcp), которые все еще подключаются в фоне, чтобы запрос мог использовать их инструменты без перезагрузки сеанса. Claude вызывает его, когда требуемый сервер еще не подключен. Появляется только когда [поиск инструментов](/ru/mcp#scale-with-mcp-tool-search) отключен, так как `ToolSearch` обрабатывает ожидание, когда он включен | Нет |

53| `WebFetch` | Получает содержимое с указанного URL. См. [поведение инструмента WebFetch](#webfetch-tool-behavior) | Да |53| `WebFetch` | Получает содержимое с указанного URL. См. [поведение инструмента WebFetch](#webfetch-tool-behavior) | Да |

54| `WebSearch` | Выполняет веб-поиск. См. [поведение инструмента WebSearch](#websearch-tool-behavior) | Да |54| `WebSearch` | Выполняет веб-поиск. См. [поведение инструмента WebSearch](#websearch-tool-behavior) | Да |

55| `Workflow` | Запускает [динамический рабочий процесс](/ru/workflows): скрипт, который организует множество subagents в фоне и возвращает один консолидированный результат | Да |55| `Workflow` | Запускает [динамический рабочий процесс](/ru/workflows): скрипт, который организует множество subagents в фоне и возвращает один консолидированный результат | Да |


91 Поведение инструмента Agent91 Поведение инструмента Agent

92</h2>92</h2>

93 93 

94Инструмент Agent создает subagent в отдельном контекстном окне. Subagent самостоятельно выполняет свою задачу, а затем возвращает один текстовый результат в родительский разговор. Родитель не видит промежуточные вызовы инструментов или выходные данные subagent, только этот финальный результат. Чтобы ограничить количество ходов, которые выполняет subagent, установите `maxTurns` в [определении subagent](/ru/sub-agents#supported-frontmatter-fields).94Инструмент Agent создает subagent в отдельном контекстном окне. Subagent самостоятельно выполняет свою задачу, а затем возвращает один текстовый результат в родительский разговор. Родитель не видит промежуточные вызовы инструментов или выходные данные subagent, только этот финальный результат.

95 

96Чтобы ограничить количество ходов, которые выполняет subagent, установите `maxTurns` в [определении subagent](/ru/sub-agents#supported-frontmatter-fields).

95 97 

96Тот же инструмент Agent также запускает [forked subagents](/ru/sub-agents#fork-the-current-conversation) при включении режима fork. Fork наследует полный родительский разговор вместо начала с нуля, всегда работает в фоне и по-прежнему отображает подсказки разрешений в вашем терминале. Остальная часть этого раздела описывает именованные subagents.98Тот же инструмент Agent также запускает [forked subagents](/ru/sub-agents#fork-the-current-conversation) при включении режима fork. Fork наследует полный родительский разговор вместо начала с нуля, всегда работает в фоне и по-прежнему отображает подсказки разрешений в вашем терминале. Остальная часть этого раздела описывает именованные subagents.

97 99 


102* **Только `disallowedTools`**: subagent получает каждый инструмент родителя, кроме перечисленных.104* **Только `disallowedTools`**: subagent получает каждый инструмент родителя, кроме перечисленных.

103* **Оба установлены**: `disallowedTools` имеет приоритет. Инструмент, указанный в обоих, удаляется.105* **Оба установлены**: `disallowedTools` имеет приоритет. Инструмент, указанный в обоих, удаляется.

104 106 

105Запуск subagent сам по себе не запрашивает разрешение. Вызовы инструментов subagent проверяются против ваших правил разрешений по мере его работы:107Запуск subagent сам по себе не запрашивает разрешение. Claude Code проверяет вызовы инструментов subagent против ваших правил разрешений по мере его работы.

108 

109{/* min-version: 2.1.198 */}Начиная с версии 2.1.198, subagents работают в фоне по умолчанию; Claude запускает один на переднем плане, когда ему нужен результат перед продолжением.

106 110 

107* **Foreground subagents** показывают те же подсказки разрешений, которые вы видели бы в основном разговоре, в момент каждого вызова инструмента.111* **Foreground subagents** показывают те же подсказки разрешений, которые вы видели бы в основном разговоре, в момент каждого вызова инструмента.

108* **Background subagents** {/* min-version: 2.1.186 */}отображают подсказки разрешений в вашем основном сеансе начиная с версии 2.1.186. Подсказка указывает, какой subagent запрашивает разрешение, и нажатие Esc отклоняет этот вызов инструмента без остановки subagent. До версии 2.1.186 background subagents автоматически отклоняли любой вызов инструмента, который иначе запросил бы подсказку, и продолжали работу без этого инструмента.112* **Background subagents** {/* min-version: 2.1.186 */}отображают подсказки разрешений в вашем основном сеансе начиная с версии 2.1.186. Подсказка указывает, какой subagent запрашивает разрешение, и нажатие Esc отклоняет этот вызов инструмента без остановки subagent. До версии 2.1.186 background subagents автоматически отклоняли любой вызов инструмента, который иначе запросил бы подсказку, и продолжали работу без этого инструмента.


266 Инструмент PowerShell270 Инструмент PowerShell

267</h2>271</h2>

268 272 

269Инструмент PowerShell позволяет Claude запускать команды PowerShell изначально. На Windows это означает, что команды выполняются в PowerShell вместо маршрутизации через Git Bash. На Windows без Git Bash инструмент включается автоматически. На Windows с установленным Git Bash инструмент развертывается постепенно. На Linux, macOS и WSL инструмент является добровольным.273Инструмент PowerShell позволяет Claude запускать команды PowerShell изначально. На Windows это означает, что команды выполняются в PowerShell вместо маршрутизации через Git Bash. Доступность инструмента зависит от вашей платформы:

274 

275* **Windows без Git Bash**: инструмент включается автоматически.

276* **Windows с установленным Git Bash**: инструмент развертывается постепенно.

277* **Linux, macOS и WSL**: инструмент является добровольным.

270 278 

271<h3 id="enable-the-powershell-tool">279<h3 id="enable-the-powershell-tool">

272 Включение инструмента PowerShell280 Включение инструмента PowerShell


286 294 

287На Windows Claude Code автоматически обнаруживает `pwsh.exe` для PowerShell 7+ с резервным вариантом `powershell.exe` для PowerShell 5.1. Когда инструмент включен, Claude рассматривает PowerShell как основную оболочку. Инструмент Bash остается доступным для POSIX-скриптов при установленном Git Bash.295На Windows Claude Code автоматически обнаруживает `pwsh.exe` для PowerShell 7+ с резервным вариантом `powershell.exe` для PowerShell 5.1. Когда инструмент включен, Claude рассматривает PowerShell как основную оболочку. Инструмент Bash остается доступным для POSIX-скриптов при установленном Git Bash.

288 296 

289Claude Code запускает PowerShell с `-ExecutionPolicy Bypass` только в области процесса, поэтому скрипты `.ps1` и импорт модулей работают на стандартных установках Windows без изменения политики машины. Обход области процесса не переопределяет Group Policy `MachinePolicy` или `UserPolicy`, поэтому блокировки на уровне предприятия по-прежнему применяются. Чтобы соблюдать эффективную политику выполнения машины, установите `CLAUDE_CODE_POWERSHELL_RESPECT_EXECUTION_POLICY=1`.297Claude Code запускает PowerShell с `-ExecutionPolicy Bypass` только в области процесса, поэтому скрипты `.ps1` и импорт модулей работают на стандартных установках Windows без изменения политики машины. Обход области процесса не переопределяет Group Policy `MachinePolicy` или `UserPolicy`, поэтому политики на уровне предприятия по-прежнему применяются. Чтобы соблюдать эффективную политику выполнения машины, установите `CLAUDE_CODE_POWERSHELL_RESPECT_EXECUTION_POLICY=1`.

290 298 

291<h3 id="shell-selection-in-settings-hooks-and-skills">299<h3 id="shell-selection-in-settings-hooks-and-skills">

292 Выбор оболочки в параметрах, hooks и skills300 Выбор оболочки в параметрах, hooks и skills


346 354 

347Явное правило `WebFetch(domain:...)` в `deny`, `ask` или `allow` имеет приоритет над предварительно одобренным набором, поэтому вы можете заблокировать предварительно одобренный домен или потребовать для него подсказку.355Явное правило `WebFetch(domain:...)` в `deny`, `ask` или `allow` имеет приоритет над предварительно одобренным набором, поэтому вы можете заблокировать предварительно одобренный домен или потребовать для него подсказку.

348 356 

349WebFetch устанавливает заголовок `User-Agent`, начинающийся с `Claude-User`, и заголовок `Accept`, который предпочитает Markdown перед HTML, чтобы серверы, поддерживающие согласование содержимого, могли возвращать Markdown напрямую. [Sandbox](/ru/sandboxing) правила сети настраиваются отдельно, поэтому домен, который вы хотите, чтобы процесс в песочнице достиг, по-прежнему нуждается в явном правиле разрешения песочницы.357WebFetch устанавливает заголовок `User-Agent`, начинающийся с `Claude-User`, и заголовок `Accept`, который предпочитает Markdown перед HTML, чтобы серверы, поддерживающие согласование содержимого, могли возвращать Markdown напрямую.

358 

359Вы настраиваете [sandbox](/ru/sandboxing) правила сети отдельно, поэтому домен, который вы хотите, чтобы процесс в песочнице достиг, по-прежнему нуждается в явном правиле разрешения песочницы.

350 360 

351<h2 id="websearch-tool-behavior">361<h2 id="websearch-tool-behavior">

352 Поведение инструмента WebSearch362 Поведение инструмента WebSearch


361Правила разрешений WebSearch не принимают спецификатор. Запись `WebSearch` в `allow` или `deny` — это единственная форма.371Правила разрешений WebSearch не принимают спецификатор. Запись `WebSearch` в `allow` или `deny` — это единственная форма.

362 372 

363<Note>373<Note>

364 WebSearch доступен на Claude API и Microsoft Foundry. На Google Cloud Vertex AI он работает с моделями Claude 4 и более поздними версиями, включая Opus, Sonnet и Haiku. Amazon Bedrock не предоставляет инструмент веб-поиска на стороне сервера.374 WebSearch доступен на Claude API, [Claude Platform on AWS](/ru/claude-platform-on-aws) и Microsoft Foundry. На Google Cloud Vertex AI он работает с моделями Claude 4 и более поздними версиями, включая Opus, Sonnet и Haiku. Amazon Bedrock не предоставляет инструмент веб-поиска на стороне сервера.

365</Note>375</Note>

366 376 

367<h2 id="write-tool-behavior">377<h2 id="write-tool-behavior">

worktrees.md +2 −0

Details

36 36 

37Вы также можете попросить Claude "работать в worktree" во время сеанса, и он создаст один с помощью инструмента [`EnterWorktree`](/ru/tools-reference). После входа в worktree Claude может переключиться непосредственно на другой worktree в `.claude/worktrees/`, вызвав `EnterWorktree` с целевым путём. Предыдущий worktree остаётся на диске нетронутым.37Вы также можете попросить Claude "работать в worktree" во время сеанса, и он создаст один с помощью инструмента [`EnterWorktree`](/ru/tools-reference). После входа в worktree Claude может переключиться непосредственно на другой worktree в `.claude/worktrees/`, вызвав `EnterWorktree` с целевым путём. Предыдущий worktree остаётся на диске нетронутым.

38 38 

39{/* min-version: 2.1.198 */}Начиная с версии 2.1.198, вход или выход из worktree также перемещает стенограмму сеанса в хранилище проекта этого каталога, так же как это делает [`/cd`](/ru/commands), поэтому `/desktop` и `--resume` находят сеанс там после этого. Worktrees, созданные hook [`WorktreeCreate`](#non-git-version-control), исключены и сохраняют стенограмму в каталоге запуска.

40 

39Перед использованием `--worktree` интерактивно в каталоге в первый раз примите диалог доверия рабочей области, запустив `claude` один раз в этом каталоге. Если доверие ещё не было принято, `--worktree` завершится с ошибкой и предложит вам сначала запустить `claude` в каталоге. Неинтерактивные запуски с `-p` пропускают [проверку доверия](/ru/security), поэтому `claude -p --worktree` продолжает работу без неё.41Перед использованием `--worktree` интерактивно в каталоге в первый раз примите диалог доверия рабочей области, запустив `claude` один раз в этом каталоге. Если доверие ещё не было принято, `--worktree` завершится с ошибкой и предложит вам сначала запустить `claude` в каталоге. Неинтерактивные запуски с `-p` пропускают [проверку доверия](/ru/security), поэтому `claude -p --worktree` продолжает работу без неё.

40 42 

41<Tip>43<Tip>