SpyBara
Go Premium

Documentation 2026-05-13 23:01 UTC to 2026-05-14 17:02 UTC

22 files changed +417 −93. View all changes and history on the product overview
2026
Sun 31 06:39 Sat 30 06:23 Fri 29 06:38 Thu 28 06:37 Wed 27 06:42 Tue 26 06:33 Sun 24 06:25 Sat 23 06:18 Fri 22 06:33 Thu 21 06:36 Wed 20 06:35 Tue 19 06:34 Mon 18 23:59 Sun 17 01:01 Fri 15 22:58 Thu 14 17:02 Wed 13 23:01 Tue 12 22:57 Mon 11 23:00 Sun 10 23:03 Sat 9 04:57 Fri 8 22:00 Thu 7 22:59 Tue 5 23:00 Mon 4 22:58 Sat 2 18:14 Fri 1 18:19
Details

235 235 

236Ваш callback возвращает объект с двумя категориями полей:236Ваш callback возвращает объект с двумя категориями полей:

237 237 

238* **Поля верхнего уровня** контролируют разговор: `systemMessage` внедряет сообщение в разговор, видимое модели, и `continue` (`continue_` в Python) определяет, продолжает ли агент работать после этого hook.238* **Поля верхнего уровня** работают одинаково для каждого события: `systemMessage` показывает сообщение пользователю, и `continue` (`continue_` в Python) определяет, продолжает ли агент работать после этого hook.

239* **`hookSpecificOutput`** контролирует текущую операцию. Поля внутри зависят от типа события hook. Для hooks `PreToolUse` здесь вы устанавливаете `permissionDecision` (`"allow"`, `"deny"`, `"ask"` или `"defer"`), `permissionDecisionReason` и `updatedInput`. Возврат `"defer"` завершает запрос, чтобы вы могли [возобновить его позже](/ru/hooks#defer-a-tool-call-for-later). Для hooks `PostToolUse` вы можете установить `additionalContext` для добавления информации к результату инструмента, или `updatedToolOutput` для полной замены выходных данных инструмента перед тем, как Claude их увидит.239* **`hookSpecificOutput`** контролирует текущую операцию. Поля внутри зависят от типа события hook. Для hooks `PreToolUse` здесь вы устанавливаете `permissionDecision` (`"allow"`, `"deny"`, `"ask"` или `"defer"`), `permissionDecisionReason` и `updatedInput`. Возврат `"defer"` завершает запрос, чтобы вы могли [возобновить его позже](/ru/hooks#defer-a-tool-call-for-later). Для hooks `PostToolUse` вы можете установить `additionalContext` для добавления информации к результату инструмента, или `updatedToolOutput` для полной замены выходных данных инструмента перед тем, как Claude их увидит.

240 240 

241Возвращайте `{}` для разрешения операции без изменений. SDK callback hooks используют тот же формат вывода JSON, что и [hooks команд shell Claude Code](/ru/hooks#json-output), который документирует каждое поле и опцию, специфичную для события. Для определений типов SDK см. справочники [TypeScript](/ru/agent-sdk/typescript#synchookjsonoutput) и [Python](/ru/agent-sdk/python#synchookjsonoutput) SDK.241Возвращайте `{}` для разрешения операции без изменений. SDK callback hooks используют тот же формат вывода JSON, что и [hooks команд shell Claude Code](/ru/hooks#json-output), который документирует каждое поле и опцию, специфичную для события. Для определений типов SDK см. справочники [TypeScript](/ru/agent-sdk/typescript#synchookjsonoutput) и [Python](/ru/agent-sdk/python#synchookjsonoutput) SDK.


331 331 

332### Добавление контекста и блокировка инструмента332### Добавление контекста и блокировка инструмента

333 333 

334Этот пример блокирует любую попытку записи в каталог `/etc` и использует два поля вывода вместе: `permissionDecision: 'deny'` останавливает вызов инструмента, в то время как `systemMessage` внедряет напоминание в разговор, чтобы агент получил контекст о том, почему операция была заблокирована, и избежал повторной попытки:334Этот пример блокирует записи в каталог `/etc` и объясняет причину как модели, так и пользователю:

335 

336* `permissionDecision: 'deny'` останавливает вызов инструмента.

337* `permissionDecisionReason` сообщает модели причину, чтобы она избежала повторной попытки.

338* `systemMessage` показывает пользователю, что произошло.

335 339 

336<CodeGroup>340<CodeGroup>

337 ```python Python theme={null}341 ```python Python theme={null}


340 344 

341 if file_path.startswith("/etc"):345 if file_path.startswith("/etc"):

342 return {346 return {

343 # Top-level field: inject guidance into the conversation347 # Top-level field: message shown to the user

344 "systemMessage": "Remember: system directories like /etc are protected.",348 "systemMessage": "Remember: system directories like /etc are protected.",

345 # hookSpecificOutput: block the operation349 # hookSpecificOutput: block the operation

346 "hookSpecificOutput": {350 "hookSpecificOutput": {


360 364 

361 if (filePath?.startsWith("/etc")) {365 if (filePath?.startsWith("/etc")) {

362 return {366 return {

363 // Top-level field: inject guidance into the conversation367 // Top-level field: message shown to the user

364 systemMessage: "Remember: system directories like /etc are protected.",368 systemMessage: "Remember: system directories like /etc are protected.",

365 // hookSpecificOutput: block the operation369 // hookSpecificOutput: block the operation

366 hookSpecificOutput: {370 hookSpecificOutput: {


807 811 

808### systemMessage не появляется в выводе812### systemMessage не появляется в выводе

809 813 

810Поле `systemMessage` добавляет контекст в разговор, который видит модель, но оно может не появиться во всех режимах вывода SDK. Если вам нужно вывести решения hook в ваше приложение, логируйте их отдельно или используйте выделенный канал вывода.814Поле `systemMessage` показывает сообщение пользователю, а не модели. По умолчанию SDK не выводит выходные данные hook в поток сообщений, поэтому сообщение может не появиться, если вы не установите `includeHookEvents` (`include_hook_events` в Python). Для передачи контекста модели вместо этого верните [`additionalContext`](/ru/hooks#add-context-for-claude).

815 

816Если вам нужно надежно вывести решения hook в ваше приложение, логируйте их отдельно или используйте выделенный канал вывода.

811 817 

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

813 819 

Details

1860Возвращает [`HookJSONOutput`](#hookjsonoutput), который может содержать:1860Возвращает [`HookJSONOutput`](#hookjsonoutput), который может содержать:

1861 1861 

1862* `decision`: `"block"` для блокировки действия1862* `decision`: `"block"` для блокировки действия

1863* `systemMessage`: Системное сообщение для добавления в стенограмму1863* `systemMessage`: Предупреждающее сообщение, показываемое пользователю

1864* `hookSpecificOutput`: Вывод, специфичный для hooks1864* `hookSpecificOutput`: Вывод, специфичный для hooks

1865 1865 

1866### `HookContext`1866### `HookContext`


2645 2645 

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

2647 2647 

2648<Note>

2649 `TodoWrite` устарел и будет удален в будущем выпуске. Используйте вместо этого `TaskCreate`, `TaskGet`, `TaskUpdate` и `TaskList`. Установите `CLAUDE_CODE_ENABLE_TASKS=1` для включения. См. [Миграция на инструменты Task](/ru/agent-sdk/todo-tracking#migrate-to-task-tools) для того, как отслеживать изменения кода.

2650</Note>

2651 

2648**Ввод:**2652**Ввод:**

2649 2653 

2650```python theme={null}2654```python theme={null}


2668}2672}

2669```2673```

2670 2674 

2675### TaskCreate

2676 

2677**Имя инструмента:** `TaskCreate`

2678 

2679**Ввод:**

2680 

2681```python theme={null}

2682{

2683 "subject": str, # Краткое название задачи

2684 "description": str, # Подробное описание задачи

2685 "activeForm": str | None, # Метка в настоящем времени, показываемая во время выполнения

2686 "metadata": dict | None, # Произвольные метаданные вызывающей стороны

2687}

2688```

2689 

2690**Вывод:**

2691 

2692```python theme={null}

2693{

2694 "task": {"id": str, "subject": str}, # Созданная задача с назначенным ID

2695}

2696```

2697 

2698### TaskUpdate

2699 

2700**Имя инструмента:** `TaskUpdate`

2701 

2702**Ввод:**

2703 

2704```python theme={null}

2705{

2706 "taskId": str, # ID задачи для обновления

2707 "status": Literal["pending", "in_progress", "completed", "deleted"] | None,

2708 "subject": str | None,

2709 "description": str | None,

2710 "activeForm": str | None,

2711 "addBlocks": list[str] | None, # ID задач, которые эта задача теперь блокирует

2712 "addBlockedBy": list[str] | None, # ID задач, которые теперь блокируют эту задачу

2713 "owner": str | None,

2714 "metadata": dict | None,

2715}

2716```

2717 

2718**Вывод:**

2719 

2720```python theme={null}

2721{

2722 "success": bool,

2723 "taskId": str,

2724 "updatedFields": list[str], # Названия полей, которые изменились

2725 "error": str | None,

2726 "statusChange": {"from": str, "to": str} | None,

2727}

2728```

2729 

2730### TaskGet

2731 

2732**Имя инструмента:** `TaskGet`

2733 

2734**Ввод:**

2735 

2736```python theme={null}

2737{

2738 "taskId": str, # ID задачи для чтения

2739}

2740```

2741 

2742**Вывод:**

2743 

2744```python theme={null}

2745{

2746 "task": {

2747 "id": str,

2748 "subject": str,

2749 "description": str,

2750 "status": Literal["pending", "in_progress", "completed"],

2751 "blocks": list[str],

2752 "blockedBy": list[str],

2753 } | None, # None, когда ID не найден

2754}

2755```

2756 

2757### TaskList

2758 

2759**Имя инструмента:** `TaskList`

2760 

2761**Ввод:**

2762 

2763```python theme={null}

2764{}

2765```

2766 

2767**Вывод:**

2768 

2769```python theme={null}

2770{

2771 "tasks": [

2772 {

2773 "id": str,

2774 "subject": str,

2775 "status": Literal["pending", "in_progress", "completed"],

2776 "owner": str | None,

2777 "blockedBy": list[str],

2778 }

2779 ],

2780}

2781```

2782 

2671### BashOutput2783### BashOutput

2672 2784 

2673**Имя инструмента:** `BashOutput`2785**Имя инструмента:** `BashOutput`

Details

389| `fallbackModel` | `string` | `undefined` | Модель для использования, если основная не работает |389| `fallbackModel` | `string` | `undefined` | Модель для использования, если основная не работает |

390| `forkSession` | `boolean` | `false` | При возобновлении с `resume` разветвитесь на новый ID сессии вместо продолжения исходной сессии |390| `forkSession` | `boolean` | `false` | При возобновлении с `resume` разветвитесь на новый ID сессии вместо продолжения исходной сессии |

391| `hooks` | `Partial<Record<`[`HookEvent`](#hookevent)`, `[`HookCallbackMatcher`](#hookcallbackmatcher)`[]>>` | `{}` | Обратные вызовы hooks для событий |391| `hooks` | `Partial<Record<`[`HookEvent`](#hookevent)`, `[`HookCallbackMatcher`](#hookcallbackmatcher)`[]>>` | `{}` | Обратные вызовы hooks для событий |

392| `includeHookEvents` | `boolean` | `false` | Включите события жизненного цикла hooks в поток сообщений как [`SDKHookStartedMessage`](#sdkhookstartedmessage), [`SDKHookProgressMessage`](#sdkhookprogressmessage) и [`SDKHookResponseMessage`](#sdkhookresponsemessage) |

392| `includePartialMessages` | `boolean` | `false` | Включите события частичных сообщений |393| `includePartialMessages` | `boolean` | `false` | Включите события частичных сообщений |

393| `maxBudgetUsd` | `number` | `undefined` | Остановите запрос, когда оценка стоимости на стороне клиента достигнет этого значения USD. Сравнивается с той же оценкой, что и `total_cost_usd`; см. [Отслеживание стоимости и использования](/ru/agent-sdk/cost-tracking) для предостережений точности |394| `maxBudgetUsd` | `number` | `undefined` | Остановите запрос, когда оценка стоимости на стороне клиента достигнет этого значения USD. Сравнивается с той же оценкой, что и `total_cost_usd`; см. [Отслеживание стоимости и использования](/ru/agent-sdk/cost-tracking) для предостережений точности |

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


1596 | ReadMcpResourceInput1597 | ReadMcpResourceInput

1597 | SubscribeMcpResourceInput1598 | SubscribeMcpResourceInput

1598 | SubscribePollingInput1599 | SubscribePollingInput

1600 | TaskCreateInput

1601 | TaskGetInput

1602 | TaskListInput

1599 | TaskStopInput1603 | TaskStopInput

1604 | TaskUpdateInput

1600 | TodoWriteInput1605 | TodoWriteInput

1601 | UnsubscribeMcpResourceInput1606 | UnsubscribeMcpResourceInput

1602 | UnsubscribePollingInput1607 | UnsubscribePollingInput


1850**Имя tool:** `TaskCreate`1855**Имя tool:** `TaskCreate`

1851 1856 

1852```typescript theme={null}1857```typescript theme={null}

1853// Пока не экспортируется из SDK; определите локально.

1854type TaskCreateInput = {1858type TaskCreateInput = {

1855 subject: string;1859 subject: string;

1856 description: string;1860 description: string;


1866**Имя tool:** `TaskUpdate`1870**Имя tool:** `TaskUpdate`

1867 1871 

1868```typescript theme={null}1872```typescript theme={null}

1869// Пока не экспортируется из SDK; определите локально.

1870type TaskUpdateInput = {1873type TaskUpdateInput = {

1871 taskId: string;1874 taskId: string;

1872 status?: "pending" | "in_progress" | "completed" | "deleted";1875 status?: "pending" | "in_progress" | "completed" | "deleted";


1887**Имя tool:** `TaskGet`1890**Имя tool:** `TaskGet`

1888 1891 

1889```typescript theme={null}1892```typescript theme={null}

1890// Пока не экспортируется из SDK; определите локально.

1891type TaskGetInput = {1893type TaskGetInput = {

1892 taskId: string;1894 taskId: string;

1893};1895};


1900**Имя tool:** `TaskList`1902**Имя tool:** `TaskList`

1901 1903 

1902```typescript theme={null}1904```typescript theme={null}

1903// Пока не экспортируется из SDK; определите локально.

1904type TaskListInput = {};1905type TaskListInput = {};

1905```1906```

1906 1907 


1983 | MonitorOutput1984 | MonitorOutput

1984 | NotebookEditOutput1985 | NotebookEditOutput

1985 | ReadMcpResourceOutput1986 | ReadMcpResourceOutput

1987 | TaskCreateOutput

1988 | TaskGetOutput

1989 | TaskListOutput

1986 | TaskStopOutput1990 | TaskStopOutput

1991 | TaskUpdateOutput

1987 | TodoWriteOutput1992 | TodoWriteOutput

1988 | WebFetchOutput1993 | WebFetchOutput

1989 | WebSearchOutput;1994 | WebSearchOutput;


2347**Имя tool:** `TaskCreate`2352**Имя tool:** `TaskCreate`

2348 2353 

2349```typescript theme={null}2354```typescript theme={null}

2350// Not yet exported from the SDK; define locally.

2351type TaskCreateOutput = {2355type TaskCreateOutput = {

2352 task: {2356 task: {

2353 id: string;2357 id: string;


2363**Имя tool:** `TaskUpdate`2367**Имя tool:** `TaskUpdate`

2364 2368 

2365```typescript theme={null}2369```typescript theme={null}

2366// Not yet exported from the SDK; define locally.

2367type TaskUpdateOutput = {2370type TaskUpdateOutput = {

2368 success: boolean;2371 success: boolean;

2369 taskId: string;2372 taskId: string;


2383**Имя tool:** `TaskGet`2386**Имя tool:** `TaskGet`

2384 2387 

2385```typescript theme={null}2388```typescript theme={null}

2386// Not yet exported from the SDK; define locally.

2387type TaskGetOutput = {2389type TaskGetOutput = {

2388 task: {2390 task: {

2389 id: string;2391 id: string;


2403**Имя tool:** `TaskList`2405**Имя tool:** `TaskList`

2404 2406 

2405```typescript theme={null}2407```typescript theme={null}

2406// Not yet exported from the SDK; define locally.

2407type TaskListOutput = {2408type TaskListOutput = {

2408 tasks: Array<{2409 tasks: Array<{

2409 id: string;2410 id: string;

agent-view.md +43 −5

Details

46 </Step>46 </Step>

47 47 

48 <Step title="Отправить сеанс">48 <Step title="Отправить сеанс">

49 Введите подсказку, описывающую задачу, и нажмите `Enter`. Запускается новый фоновый сеанс для этой задачи и появляется как строка, показывающая, работает ли он, ждёт ли вас или завершён. Новый сеанс использует модель, показанную в заголовке agent view, и тот же [режим разрешений](#permission-mode-and-settings), который вы получили бы при запуске `claude` в этом каталоге.49 Введите подсказку, описывающую задачу, и нажмите `Enter`. Запускается новый фоновый сеанс для этой задачи и появляется как строка, показывающая, работает ли он, ждёт ли вас или завершён. Новый сеанс использует модель, показанную в заголовке agent view, и тот же [режим разрешений](#permission-mode-model-and-effort), который вы получили бы при запуске `claude` в этом каталоге.

50 50 

51 Каждая подсказка, которую вы вводите здесь, запускает свой собственный новый сеанс. Ввод другой подсказки и нажатие `Enter` запускает второй сеанс рядом с первым, а не отправляет ему продолжение. Таким образом вы можете запустить несколько параллельно.51 Каждая подсказка, которую вы вводите здесь, запускает свой собственный новый сеанс. Ввод другой подсказки и нажатие `Enter` запускает второй сеанс рядом с первым, а не отправляет ему продолжение. Таким образом вы можете запустить несколько параллельно.

52 52 


74 74 

75Список охватывает каждый фоновый сеанс, который вы запустили, во всех ваших проектах. Сеанс, работающий в одном репозитории, и другой в другом worktree, оба появляются здесь, независимо от того, из какого каталога вы открыли agent view. Интерактивные сеансы, открытые в других терминалах, не появляются до тех пор, пока вы не [отправите их в фон](#from-inside-a-session). [Subagents](/ru/sub-agents) и [teammates](/ru/agent-teams), которых порождает сеанс, не указаны как отдельные строки.75Список охватывает каждый фоновый сеанс, который вы запустили, во всех ваших проектах. Сеанс, работающий в одном репозитории, и другой в другом worktree, оба появляются здесь, независимо от того, из какого каталога вы открыли agent view. Интерактивные сеансы, открытые в других терминалах, не появляются до тех пор, пока вы не [отправите их в фон](#from-inside-a-session). [Subagents](/ru/sub-agents) и [teammates](/ru/agent-teams), которых порождает сеанс, не указаны как отдельные строки.

76 76 

77Чтобы ограничить представление одним проектом, запустите с помощью `claude agents --cwd <path>`. Только сеансы, запущенные в этом каталоге, появляются, включая любые работающие в [worktree](/ru/worktrees), отправленном из него.

78 

77```text theme={null}79```text theme={null}

78Pinned80Pinned

79 ✽ clawd walk cycle Write assets/sprites/clawd-walk.png 3m81 ✽ clawd walk cycle Write assets/sprites/clawd-walk.png 3m


285 287 

286### Set the model288### Set the model

287 289 

288Имя модели, показанное в заголовке agent view, является стандартом отправки. Новые сеансы, которые вы запускаете из входа, используют эту модель, которая является тем же параметром, который [`/model`](/ru/model-config) контролирует в любом сеансе.290Имя модели, показанное в заголовке agent view, является стандартом отправки. Новые сеансы, которые вы запускаете из входа, используют эту модель, которая является тем же параметром, который [`/model`](/ru/model-config) контролирует в любом сеансе. Чтобы переопределить его для всего сеанса agent view, передайте `--model` при открытии agent view. См. [Permission mode, model, and effort](#permission-mode-model-and-effort).

289 291 

290Каждый фоновый сеанс может работать на другой модели. Чтобы переопределить его для одного сеанса:292Каждый фоновый сеанс может работать на другой модели. Чтобы переопределить его для одного сеанса:

291 293 


293* Подключитесь к работающему сеансу и запустите `/model` там. Изменение сохраняется, если сеанс перезапущен.295* Подключитесь к работающему сеансу и запустите `/model` там. Изменение сохраняется, если сеанс перезапущен.

294* Отправьте [subagent](/ru/sub-agents), чей frontmatter устанавливает поле `model`.296* Отправьте [subagent](/ru/sub-agents), чей frontmatter устанавливает поле `model`.

295 297 

296### Permission mode and settings298### Permission mode, model, and effort

299 

300Отправленный сеанс читает свои [settings](/ru/settings) из каталога, в котором он запускается, так же как если бы вы запустили `claude` там.

301 

302[Permission mode](/ru/permissions) зависит от того, как вы запустили сеанс. Переведение существующего сеанса в фон с помощью `/bg` или `←` сохраняет текущий permission mode, поэтому сеанс, который вы переключили на `acceptEdits` или `auto`, остаётся в этом режиме после отключения. Отправка из входа agent view или запуск `claude --bg` из вашей оболочки использует `defaultMode` из settings этого каталога или `permissionMode` из frontmatter отправленного [subagent](/ru/sub-agents#supported-frontmatter-fields).

303 

304Чтобы установить стандартные значения для каждого сеанса, который вы отправляете из agent view, передайте любой из `--permission-mode`, `--model` или `--effort` при открытии его:

305 

306```bash theme={null}

307claude agents --permission-mode plan --model opus --effort high

308```

309 

310<Note>

311 Передача `--permission-mode`, `--model` или `--effort` в `claude agents` требует Claude Code v2.1.142 или позже. Более ранние версии отклоняют эти флаги с ошибкой unknown-option.

312</Note>

297 313 

298Отправленный сеанс читает свои [settings](/ru/settings) и [permission mode](/ru/permissions) из каталога, в котором он запускается, так же как если бы вы запустили `claude` там. Отправка из входа agent view не передаёт режим разрешений, поэтому сеанс использует `defaultMode` из settings этого каталога или `permissionMode` из frontmatter отправленного [subagent](/ru/sub-agents#supported-frontmatter-fields).314Активные стандартные значения отображаются в нижнем колонтитуле под входом отправки.

299 315 

300Чтобы установить режим из оболочки, передайте `--permission-mode` с `claude --bg`. Использование `bypassPermissions` или `auto` таким образом отказывается до тех пор, пока вы не примете этот режим, запустив `claude` с ним один раз интерактивно, так как эти режимы позволяют сеансу, который вы не наблюдаете, действовать без одобрения.316Без этих флагов сеанс использует `defaultMode` из settings этого каталога или `permissionMode` из frontmatter отправленного [subagent](/ru/sub-agents#supported-frontmatter-fields), и модель, показанную в заголовке agent view.

317 

318Использование `bypassPermissions` или `auto` отказывается до тех пор, пока вы не примете этот режим, запустив `claude` с ним один раз интерактивно, так как эти режимы позволяют сеансу, который вы не наблюдаете, действовать без одобрения. То же самое применяется независимо от того, передаёте ли вы режим в `claude agents` или в `claude --bg --permission-mode`.

319 

320### Settings, plugins, and MCP servers

321 

322Agent view принимает те же флаги конфигурации, что и `claude` для загрузки settings, plugins, MCP servers и дополнительных каталогов. Каждый флаг применяется к самому agent view и передаётся каждому сеансу, который вы отправляете из него, поэтому plugin или MCP server, который вы загружаете таким образом, доступен в этих сеансах тоже.

323 

324| Флаг | Эффект |

325| :----------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------- |

326| [`--settings <file-or-json>`](/ru/settings) | Переопределить settings для agent view и отправленных сеансов |

327| [`--add-dir <path>`](/ru/permissions#additional-directories-grant-file-access-not-configuration) | Предоставить доступ к файлам дополнительного каталога |

328| [`--plugin-dir <path>`](/ru/plugins) | Загрузить plugin из локального каталога |

329| [`--mcp-config <file-or-json>`](/ru/mcp) | Загрузить MCP servers из файла конфигурации или строки JSON |

330| `--strict-mcp-config` | Использовать только MCP servers из `--mcp-config`, игнорируя другую конфигурацию MCP |

331 

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

333 

334Следующий пример открывает agent view с переопределением settings и одним дополнительным каталогом:

335 

336```bash theme={null}

337claude agents --settings ./ci-settings.json --add-dir ../shared-lib

338```

301 339 

302## Управление сеансами из оболочки340## Управление сеансами из оболочки

303 341 

Details

170 170 

171Claude Code поддерживает автоматическое обновление учетных данных для AWS SSO и корпоративных поставщиков идентификации. Добавьте эти параметры в файл параметров Claude Code (см. [Settings](/ru/settings) для расположения файлов).171Claude Code поддерживает автоматическое обновление учетных данных для AWS SSO и корпоративных поставщиков идентификации. Добавьте эти параметры в файл параметров Claude Code (см. [Settings](/ru/settings) для расположения файлов).

172 172 

173Когда Claude Code обнаруживает, что ваши учетные данные AWS истекли (либо локально на основе их временной метки, либо когда Bedrock возвращает ошибку учетных данных), он автоматически запустит ваши настроенные команды `awsAuthRefresh` и/или `awsCredentialExport` для получения новых учетных данных перед повторной попыткой запроса.173Эти два параметра имеют разные условия срабатывания:

174 

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

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

174 177 

175##### Пример конфигурации178##### Пример конфигурации

176 179 


187 190 

188**`awsAuthRefresh`**: используйте это для команд, которые изменяют директорию `.aws`, такие как обновление учетных данных, кэша SSO или файлов конфигурации. Вывод команды отображается пользователю, но интерактивный ввод не поддерживается. Это хорошо работает для браузерных потоков SSO, где CLI отображает URL или код, и вы завершаете аутентификацию в браузере.191**`awsAuthRefresh`**: используйте это для команд, которые изменяют директорию `.aws`, такие как обновление учетных данных, кэша SSO или файлов конфигурации. Вывод команды отображается пользователю, но интерактивный ввод не поддерживается. Это хорошо работает для браузерных потоков SSO, где CLI отображает URL или код, и вы завершаете аутентификацию в браузере.

189 192 

190**`awsCredentialExport`**: используйте это только если вы не можете изменить `.aws` и должны напрямую вернуть учетные данные. Вывод захватывается молча и не показывается пользователю. Команда должна выводить JSON в этом формате:193**`awsCredentialExport`**: используйте это только если вы не можете изменить `.aws` и должны напрямую вернуть учетные данные. Эта команда запускается всякий раз, когда необходимо обновить учетные данные, а не только когда учетные данные истекли. Вывод захватывается молча и не показывается пользователю. Команда должна выводить JSON в этом формате:

191 194 

192```json theme={null}195```json theme={null}

193{196{

best-practices.md +17 −23

Details

52 Отделите исследование и планирование от реализации, чтобы избежать решения неправильной проблемы.52 Отделите исследование и планирование от реализации, чтобы избежать решения неправильной проблемы.

53</Tip>53</Tip>

54 54 

55Позволение Claude сразу перейти к кодированию может привести к коду, который решает неправильную проблему. Используйте [Plan Mode](/ru/common-workflows#use-plan-mode-for-safe-code-analysis) для отделения исследования от выполнения.55Позволение Claude сразу перейти к кодированию может привести к коду, который решает неправильную проблему. Используйте [Plan Mode](/ru/permission-modes#analyze-before-you-edit-with-plan-mode) для отделения исследования от выполнения.

56 56 

57Рекомендуемый рабочий процесс имеет четыре фазы:57Рекомендуемый рабочий процесс имеет четыре фазы:

58 58 


60 <Step title="Исследуйте">60 <Step title="Исследуйте">

61 Войдите в Plan Mode. Claude читает файлы и отвечает на вопросы без внесения изменений.61 Войдите в Plan Mode. Claude читает файлы и отвечает на вопросы без внесения изменений.

62 62 

63 ```txt claude (Plan Mode) theme={null}63 ```txt claude (plan mode) theme={null}

64 read /src/auth and understand how we handle sessions and login.64 read /src/auth and understand how we handle sessions and login.

65 also look at how we manage environment variables for secrets.65 also look at how we manage environment variables for secrets.

66 ```66 ```


69 <Step title="Планируйте">69 <Step title="Планируйте">

70 Попросите Claude создать подробный план реализации.70 Попросите Claude создать подробный план реализации.

71 71 

72 ```txt claude (Plan Mode) theme={null}72 ```txt claude (plan mode) theme={null}

73 I want to add Google OAuth. What files need to change?73 I want to add Google OAuth. What files need to change?

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

75 ```75 ```


78 </Step>78 </Step>

79 79 

80 <Step title="Реализуйте">80 <Step title="Реализуйте">

81 Переключитесь обратно в Normal Mode и позвольте Claude кодировать, проверяя против его плана.81 Переключитесь из Plan Mode и позвольте Claude кодировать, проверяя против его плана.

82 82 

83 ```txt claude (Normal Mode) theme={null}83 ```txt claude (default mode) theme={null}

84 implement the OAuth flow from your plan. write tests for the84 implement the OAuth flow from your plan. write tests for the

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

86 ```86 ```


89 <Step title="Зафиксируйте">89 <Step title="Зафиксируйте">

90 Попросите Claude зафиксировать с описательным сообщением и создать PR.90 Попросите Claude зафиксировать с описательным сообщением и создать PR.

91 91 

92 ```txt claude (Normal Mode) theme={null}92 ```txt claude (default mode) theme={null}

93 commit with a descriptive message and open a PR93 commit with a descriptive message and open a PR

94 ```94 ```

95 </Step>95 </Step>


396* Используйте `/clear` часто между задачами для полного сброса контекстного окна396* Используйте `/clear` часто между задачами для полного сброса контекстного окна

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

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

399* Для компактирования только части разговора используйте `Esc + Esc` или `/rewind`, выберите контрольную точку сообщения и выберите **Summarize from here**. Это сжимает сообщения с этой точки вперёд, сохраняя более ранний контекст нетронутым.399* Для компактирования только части разговора используйте `Esc + Esc` или `/rewind`, выберите контрольную точку сообщения и выберите **Summarize from here** или **Summarize up to here**. Первый вариант сжимает сообщения с этой точки вперёд, сохраняя более ранний контекст нетронутым; второй сжимает более ранние сообщения, сохраняя недавние в полном объёме. См. [Restore vs. summarize](/ru/checkpointing#restore-vs-summarize).

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

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

402 402 


424### Перемотайте с контрольными точками424### Перемотайте с контрольными точками

425 425 

426<Tip>426<Tip>

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

428</Tip>428</Tip>

429 429 

430Claude автоматически создаёт контрольные точки перед изменениями. Дважды нажмите `Escape` или запустите `/rewind` для открытия меню перемотки. Вы можете восстановить только разговор, восстановить только код, восстановить оба или суммировать из выбранного сообщения. См. [Checkpointing](/ru/checkpointing) для деталей.430Claude автоматически создаёт снимки файлов перед каждым изменением, поэтому контрольная точка может восстановить их. Дважды нажмите `Escape` или запустите `/rewind` для открытия меню перемотки. Вы можете восстановить только разговор, восстановить только код, восстановить оба или суммировать из выбранного сообщения. См. [Checkpointing](/ru/checkpointing) для деталей.

431 431 

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

433 433 


438### Возобновите разговоры438### Возобновите разговоры

439 439 

440<Tip>440<Tip>

441 Запустите `claude --continue` для продолжения с того места, где вы остановились, или `--resume` для выбора из недавних сеансов.441 Назовите сеансы с помощью `/rename` и относитесь к ним как к ветвям: каждый рабочий поток получает свой собственный постоянный контекст.

442</Tip>442</Tip>

443 443 

444Claude Code сохраняет разговоры локально. Когда задача охватывает несколько сеансов, вам не нужно переобъяснять контекст:444Claude Code сохраняет разговоры локально, поэтому когда задача охватывает несколько сеансов, вам не нужно переобъяснять контекст. Запустите `claude --continue` для продолжения с самого последнего сеанса или `claude --resume` для выбора из списка. Дайте сеансам описательные имена, такие как `oauth-migration`, чтобы вы могли найти их позже. См. [Manage sessions](/ru/sessions) для полного набора управления возобновлением, ветвлением и именованием.

445 

446```bash theme={null}

447claude --continue # Resume the most recent conversation

448claude --resume # Select from recent conversations

449```

450 

451Используйте `/rename` для присвоения сеансам описательных имён, таких как `"oauth-migration"` или `"debugging-memory-leak"`, чтобы вы могли найти их позже. Относитесь к сеансам как к ветвям: разные рабочие потоки могут иметь отдельные, постоянные контексты.

452 445 

453***446***

454 447 


464 Используйте `claude -p "prompt"` в CI, pre-commit hooks или скриптах. Добавьте `--output-format stream-json` для потокового вывода JSON.457 Используйте `claude -p "prompt"` в CI, pre-commit hooks или скриптах. Добавьте `--output-format stream-json` для потокового вывода JSON.

465</Tip>458</Tip>

466 459 

467С `claude -p "your prompt"`, вы можете запустить Claude неинтерактивно, без сеанса. Неинтерактивный режим — это как вы интегрируете Claude в CI pipelines, pre-commit hooks или любой автоматизированный рабочий процесс. Форматы вывода позволяют вам анализировать результаты программно: простой текст, JSON или потоковый JSON.460С `claude -p "your prompt"`, вы можете запустить Claude неинтерактивно, без сеанса. [Неинтерактивный режим](/ru/headless) — это как вы интегрируете Claude в CI pipelines, pre-commit hooks или любой автоматизированный рабочий процесс. Форматы вывода позволяют вам анализировать результаты программно: простой текст, JSON или потоковый JSON.

468 461 

469```bash theme={null}462```bash theme={null}

470# One-off queries463# One-off queries


483 Запустите несколько сеансов Claude параллельно для ускорения разработки, запуска изолированных экспериментов или запуска сложных рабочих процессов.476 Запустите несколько сеансов Claude параллельно для ускорения разработки, запуска изолированных экспериментов или запуска сложных рабочих процессов.

484</Tip>477</Tip>

485 478 

486Есть три основных способа запуска параллельных сеансов:479Выберите подход параллелизации, который соответствует тому, сколько координации вы хотите выполнить самостоятельно:

487 480 

488* [Claude Code desktop app](/ru/desktop#work-in-parallel-with-sessions): Управляйте несколькими локальными сеансами визуально. Каждый сеанс получает свой собственный изолированный worktree.481* [Worktrees](/ru/worktrees): запустите отдельные сеансы CLI в изолированных git checkouts, чтобы правки не конфликтовали

489* [Claude Code on the web](/ru/claude-code-on-the-web): Запустите на защищённой облачной инфраструктуре Anthropic в изолированных VMs.482* [Desktop app](/ru/desktop#work-in-parallel-with-sessions): управляйте несколькими локальными сеансами визуально, каждый в своём worktree

490* [Agent teams](/ru/agent-teams): Автоматизированная координация нескольких сеансов с общими задачами, обмена сообщениями и лидера команды.483* [Claude Code on the web](/ru/claude-code-on-the-web): запустите сеансы на облачной инфраструктуре, управляемой Anthropic, в изолированных VMs

484* [Agent teams](/ru/agent-teams): автоматизированная координация нескольких сеансов с общими задачами, обмена сообщениями и лидера команды

491 485 

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

493 487 

checkpointing.md +10 −9

Details

28* **Восстановить беседу**: перемотать к этому сообщению, сохраняя текущий код28* **Восстановить беседу**: перемотать к этому сообщению, сохраняя текущий код

29* **Восстановить код**: отменить изменения файлов, сохраняя беседу29* **Восстановить код**: отменить изменения файлов, сохраняя беседу

30* **Суммировать отсюда**: сжать беседу с этой точки вперёд в краткое резюме, освобождая место в context window30* **Суммировать отсюда**: сжать беседу с этой точки вперёд в краткое резюме, освобождая место в context window

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

31* **Отмена**: вернуться к списку сообщений без внесения изменений32* **Отмена**: вернуться к списку сообщений без внесения изменений

32 33 

33После восстановления беседы или суммирования исходный запрос из выбранного сообщения восстанавливается в поле ввода, чтобы вы могли переотправить или отредактировать его.34После восстановления беседы или выбора "Суммировать отсюда" исходный запрос из выбранного сообщения восстанавливается в поле ввода, чтобы вы могли переотправить или отредактировать его.

35 

36Выбор "Суммировать до этого момента" оставляет вас в конце беседы с пустым полем ввода.

34 37 

35#### Восстановление и суммирование38#### Восстановление и суммирование

36 39 

37Три варианта восстановления отменяют состояние: они отменяют изменения кода, историю беседы или оба. "Суммировать отсюда" работает иначе:40Варианты восстановления отменяют состояние: они отменяют изменения кода, историю беседы или оба. Варианты суммирования сжимают часть беседы в сгенерированное ИИ резюме без изменения файлов на диске:

38 41 

39* Сообщения перед выбранным сообщением остаются нетронутыми42* **Суммировать отсюда**: сообщения перед выбранным сообщением остаются нетронутыми. Выбранное сообщение и всё, что после него, заменяются резюме. Используйте это, чтобы отбросить побочное обсуждение, сохраняя ранний контекст в полной детализации.

40* Выбранное сообщение и все последующие сообщения заменяются компактным резюме, созданным ИИ43* **Суммировать до этого момента**: сообщения перед выбранным сообщением заменяются резюме. Выбранное сообщение и всё, что после него, остаются нетронутыми, и вы остаётесь в конце беседы. Используйте это, чтобы сжать раннее обсуждение настройки, сохраняя недавнюю работу в полной детализации.

41* Никакие файлы на диске не изменяются

42* Исходные сообщения сохраняются в стенограмме сеанса, поэтому Claude может ссылаться на детали при необходимости

43 44 

44Это похоже на `/compact`, но целевое: вместо суммирования всей беседы вы сохраняете ранний контекст в полной детализации и сжимаете только части, которые занимают место. Вы можете ввести дополнительные инструкции для руководства тем, на чём должно сосредоточиться резюме.45В обоих случаях исходные сообщения сохраняются в стенограмме сеанса, поэтому Claude может ссылаться на детали при необходимости. Вы можете ввести дополнительные инструкции для руководства тем, на чём должно сосредоточиться резюме. Это похоже на `/compact`, но целевое: вместо суммирования всей беседы вы выбираете, какую сторону выбранного сообщения сжать.

45 46 

46<Note>47<Note>

47 Суммирование держит вас в одном сеансе и сжимает контекст. Если вы хотите ответвиться и попробовать другой подход, сохраняя исходный сеанс нетронутым, используйте вместо этого [fork](/ru/how-claude-code-works#resume-or-fork-sessions) (`claude --continue --fork-session`).48 Суммирование держит вас в одном сеансе и сжимает контекст. Если вы хотите ответвиться и попробовать другой подход, сохраняя исходный сеанс нетронутым, используйте вместо этого [fork](/ru/sessions#branch-a-session) (`claude --continue --fork-session`).

48</Note>49</Note>

49 50 

50## Типичные случаи использования51## Типичные случаи использования


85## См. также86## См. также

86 87 

87* [Interactive mode](/ru/interactive-mode) - Сочетания клавиш и элементы управления сеансом88* [Interactive mode](/ru/interactive-mode) - Сочетания клавиш и элементы управления сеансом

88* [Built-in commands](/ru/commands) - Доступ к checkpoints с использованием `/rewind`89* [Commands](/ru/commands) - Доступ к checkpoints с использованием `/rewind`

89* [CLI reference](/ru/cli-reference) - Параметры командной строки90* [CLI reference](/ru/cli-reference) - Параметры командной строки

Details

782 782 

783### Remote Control session expired or access denied783### Remote Control session expired or access denied

784 784 

785`--teleport` подключается через ту же инфраструктуру сессии Remote Control, которую используют облачные сессии, поэтому ошибки аутентификации и истечения сессии появляются с формулировкой Remote Control. Вы можете увидеть `Remote Control session has expired` или `Access denied`. Токен соединения имеет короткий срок действия и ограничен вашим аккаунтом.785`--teleport` подключается через ту же инфраструктуру сессии Remote Control, которую используют облачные сессии, поэтому ошибки аутентификации и истечения сессии появляются с формулировкой Remote Control. Вы можете увидеть `Remote Control session expired` или `Access denied`. Токен соединения имеет короткий срок действия и ограничен вашим аккаунтом.

786 786 

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

788* Подтвердите, что вы вошли в один и тот же аккаунт, который владеет сессией788* Подтвердите, что вы вошли в один и тот же аккаунт, который владеет сессией

Details

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

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

26| `claude auth status` | Показать статус аутентификации в формате JSON. Используйте `--text` для удобочитаемого вывода. Выходит с кодом 0, если вы вошли, 1, если нет | `claude auth status` |26| `claude auth status` | Показать статус аутентификации в формате JSON. Используйте `--text` для удобочитаемого вывода. Выходит с кодом 0, если вы вошли, 1, если нет | `claude auth status` |

27| `claude agents` | Открыть [представление агентов](/ru/agent-view) для мониторинга и отправки параллельных фоновых сеансов. Когда вывод передается по конвейеру, вместо этого выводит список настроенных [подагентов](/ru/sub-agents) | `claude agents` |27| `claude agents` | Открыть [представление агентов](/ru/agent-view) для мониторинга и отправки параллельных фоновых сеансов. Используйте `--cwd <path>` для отображения только сеансов, запущенных в этом каталоге | `claude agents` |

28| `claude attach <id>` | Подключиться к [фоновому сеансу](/ru/agent-view#manage-sessions-from-the-shell) в этом терминале | `claude attach 7c5dcf5d` |28| `claude attach <id>` | Подключиться к [фоновому сеансу](/ru/agent-view#manage-sessions-from-the-shell) в этом терминале | `claude attach 7c5dcf5d` |

29| `claude auto-mode defaults` | Вывести встроенные правила классификатора [auto mode](/ru/permission-modes#eliminate-prompts-with-auto-mode) в формате JSON. Используйте `claude auto-mode config` для просмотра вашей эффективной конфигурации с применяемыми параметрами | `claude auto-mode defaults > rules.json` |29| `claude auto-mode defaults` | Вывести встроенные правила классификатора [auto mode](/ru/permission-modes#eliminate-prompts-with-auto-mode) в формате JSON. Используйте `claude auto-mode config` для просмотра вашей эффективной конфигурации с применяемыми параметрами | `claude auto-mode defaults > rules.json` |

30| `claude logs <id>` | Вывести недавний вывод из [фонового сеанса](/ru/agent-view#manage-sessions-from-the-shell) | `claude logs 7c5dcf5d` |30| `claude logs <id>` | Вывести недавний вывод из [фонового сеанса](/ru/agent-view#manage-sessions-from-the-shell) | `claude logs 7c5dcf5d` |

commands.md +1 −1

Details

26 26 

27**Между сеансами.** `/clear` начинает заново с новой задачей, сохраняя память проекта. `/resume` и `/branch` позволяют вернуться к более ранней беседе или создать ветвь. `/teleport` переносит веб-сеанс в этот терминал, а `/remote-control` позволяет продолжить этот локальный сеанс с другого устройства.27**Между сеансами.** `/clear` начинает заново с новой задачей, сохраняя память проекта. `/resume` и `/branch` позволяют вернуться к более ранней беседе или создать ветвь. `/teleport` переносит веб-сеанс в этот терминал, а `/remote-control` позволяет продолжить этот локальный сеанс с другого устройства.

28 28 

29**Когда что-то не так.** `/rewind` откатывает код и беседу к контрольной точке. `/doctor` и `/debug` диагностируют проблемы установки и выполнения, а `/feedback` сообщает об ошибке с контекстом сеанса.29**Когда что-то не так.** `/rewind` откатывает код и беседу к контрольной точке или суммирует часть беседы. `/doctor` и `/debug` диагностируют проблемы установки и выполнения, а `/feedback` сообщает об ошибке с контекстом сеанса.

30 30 

31## Все команды31## Все команды

32 32 

desktop.md +6 −3

Details

148 148 

149### Запуск команд в терминале149### Запуск команд в терминале

150 150 

151Интегрированный терминал позволяет вам запускать команды рядом с вашим сеансом без переключения на другое приложение. Откройте его из меню **Views** или нажмите **Ctrl+\`** на macOS или Windows. Терминал открывается в рабочем каталоге вашего сеанса и делит то же окружение с Claude, поэтому команды, такие как `npm test` или `git status`, видят те же файлы, которые редактирует Claude. Терминал доступен только в локальных сеансах.151Интегрированный терминал позволяет вам запускать команды рядом с вашим сеансом без переключения на другое приложение. Откройте его из меню **Views** или нажмите **Ctrl+\`** на macOS или Windows. Терминал открывается в рабочем каталоге вашего сеанса и делит то же окружение с Claude, поэтому команды, такие как `npm test` или `git status`, видят те же файлы, которые редактирует Claude. Чтобы открыть вторую вкладку терминала, нажмите **+** в заголовке панели терминала или щелкните правой кнопкой мыши на папке в чате, чтобы выбрать **Open in terminal**. Терминал доступен только в локальных сеансах.

152 152 

153### Открытие и редактирование файлов153### Открытие и редактирование файлов

154 154 


284 284 

285Нажмите **+ New session** в боковой панели, или нажмите **Cmd+N** на macOS или **Ctrl+N** на Windows, чтобы работать над несколькими задачами параллельно. Нажмите **Ctrl+Tab** и **Ctrl+Shift+Tab**, чтобы циклически переходить через сеансы в боковой панели. Для Git-репозиториев каждый сеанс получает свою собственную изолированную копию вашего проекта, используя [Git Worktrees](/ru/worktrees), поэтому изменения в одном сеансе не влияют на другие сеансы до тех пор, пока вы их не зафиксируете.285Нажмите **+ New session** в боковой панели, или нажмите **Cmd+N** на macOS или **Ctrl+N** на Windows, чтобы работать над несколькими задачами параллельно. Нажмите **Ctrl+Tab** и **Ctrl+Shift+Tab**, чтобы циклически переходить через сеансы в боковой панели. Для Git-репозиториев каждый сеанс получает свою собственную изолированную копию вашего проекта, используя [Git Worktrees](/ru/worktrees), поэтому изменения в одном сеансе не влияют на другие сеансы до тех пор, пока вы их не зафиксируете.

286 286 

287Чтобы просмотреть два сеанса одновременно, удерживайте **Cmd** на macOS или **Ctrl** на Windows и нажмите на сеанс в боковой панели. Сеанс откроется во втором панели рядом с тем, который у вас уже открыт. Пока разделение активно, нажатие на другой сеанс в боковой панели заменяет ту панель, которая имеет фокус. Нажмите **Cmd+\\** на macOS или **Ctrl+\\** на Windows, чтобы закрыть панель с фокусом и вернуться к одному сеансу.287Чтобы просмотреть два сеанса одновременно, удерживайте **Cmd** на macOS или **Ctrl** на Windows и нажмите на сеанс в боковой панели. Сеанс откроется во второй панели рядом с тем, который у вас уже открыт. Пока разделение активно, нажатие на другой сеанс в боковой панели заменяет ту панель, которая имеет фокус. Нажмите **Cmd+\\** на macOS или **Ctrl+\\** на Windows, чтобы закрыть панель с фокусом и вернуться к одному сеансу.

288 288 

289Worktrees хранятся в `<project-root>/.claude/worktrees/` по умолчанию. Вы можете изменить это на пользовательский каталог в Settings → Claude Code под "Worktree location". Вы также можете установить префикс ветви, который добавляется в начало каждого имени ветви worktree, что полезно для организации веток, созданных Claude. Чтобы удалить worktree после завершения, наведите курсор на сеанс в боковой панели и нажмите значок архива. Чтобы сеансы архивировали себя, когда их pull request объединяется или закрывается, включите **Auto-archive after PR merge or close** в Settings → Claude Code. Auto-archive применяется только к локальным сеансам, которые завершили работу.289Worktrees хранятся в `<project-root>/.claude/worktrees/` по умолчанию. Вы можете изменить это на пользовательский каталог в Settings → Claude Code под "Worktree location". Вы также можете установить префикс ветви, который добавляется в начало каждого имени ветви worktree, что полезно для организации веток, созданных Claude. Чтобы удалить worktree после завершения, наведите курсор на сеанс в боковой панели и нажмите значок архива. Чтобы сеансы архивировали себя, когда их pull request объединяется или закрывается, включите **Auto-archive after PR merge or close** в Settings → Claude Code. Auto-archive применяется только к локальным сеансам, которые завершили работу.

290 290 


296 296 

297Используйте элементы управления в верхней части боковой панели для фильтрации сеансов по статусу, проекту или окружению, и для группировки сеансов по проекту. Чтобы переименовать сеанс, нажмите на название сеанса в панели инструментов в верхней части активного сеанса. Чтобы проверить использование контекста, см. [Проверка использования](#check-usage). Когда контекст заполняется, Claude автоматически суммирует разговор и продолжает работу. Вы также можете ввести `/compact` для запуска суммирования раньше и освобождения пространства контекста. См. [контекстное окно](/ru/how-claude-code-works#the-context-window) для получения подробной информации о том, как работает компактирование.297Используйте элементы управления в верхней части боковой панели для фильтрации сеансов по статусу, проекту или окружению, и для группировки сеансов по проекту. Чтобы переименовать сеанс, нажмите на название сеанса в панели инструментов в верхней части активного сеанса. Чтобы проверить использование контекста, см. [Проверка использования](#check-usage). Когда контекст заполняется, Claude автоматически суммирует разговор и продолжает работу. Вы также можете ввести `/compact` для запуска суммирования раньше и освобождения пространства контекста. См. [контекстное окно](/ru/how-claude-code-works#the-context-window) для получения подробной информации о том, как работает компактирование.

298 298 

299Приложение для рабочего стола отправляет уведомление ОС, когда сеанс Code завершает задачу и вы в данный момент не просматриваете этот сеанс.

300 

299### Задайте боковой вопрос без отклонения сеанса301### Задайте боковой вопрос без отклонения сеанса

300 302 

301Боковой чат позволяет вам задать Claude вопрос, который использует контекст вашего сеанса, но не добавляет ничего обратно в основной разговор. Используйте его, когда вы хотите понять часть кода, проверить предположение или исследовать идею без отклонения сеанса от курса.303Боковой чат позволяет вам задать Claude вопрос, который использует контекст вашего сеанса, но не добавляет ничего обратно в основной разговор. Используйте его, когда вы хотите понять часть кода, проверить предположение или исследовать идею без отклонения сеанса от курса.


598Управляемые параметры переопределяют параметры проекта и пользователя и применяются, когда Desktop порождает сеансы CLI. Вы можете установить эти ключи в файле [управляемых параметров](/ru/settings#settings-precedence) вашей организации или отправить их удалённо через консоль администратора.600Управляемые параметры переопределяют параметры проекта и пользователя и применяются, когда Desktop порождает сеансы CLI. Вы можете установить эти ключи в файле [управляемых параметров](/ru/settings#settings-precedence) вашей организации или отправить их удалённо через консоль администратора.

599 601 

600| Ключ | Описание |602| Ключ | Описание |

601| ------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |603| ------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

602| `permissions.disableBypassPermissionsMode` | установите на `"disable"`, чтобы предотвратить пользователей от включения режима bypass permissions. |604| `permissions.disableBypassPermissionsMode` | установите на `"disable"`, чтобы предотвратить пользователей от включения режима bypass permissions. |

603| `disableAutoMode` | установите на `"disable"`, чтобы предотвратить пользователей от включения режима [Auto](/ru/permission-modes#eliminate-prompts-with-auto-mode). Удаляет Auto из селектора режима. Также принимается под `permissions`. |605| `disableAutoMode` | установите на `"disable"`, чтобы предотвратить пользователей от включения режима [Auto](/ru/permission-modes#eliminate-prompts-with-auto-mode). Удаляет Auto из селектора режима. Также принимается под `permissions`. |

604| `autoMode` | настройте, что классификатор auto mode доверяет и блокирует во всей вашей организации. См. [Configure auto mode](/ru/auto-mode-config). |606| `autoMode` | настройте, что классификатор auto mode доверяет и блокирует во всей вашей организации. См. [Configure auto mode](/ru/auto-mode-config). |

605| `sshConfigs` | предварительно настройте [SSH-соединения](#pre-configure-ssh-connections-for-your-team), которые появляются в раскрывающемся списке окружения. Пользователи не могут редактировать или удалять управляемые соединения. |607| `sshConfigs` | предварительно настройте [SSH-соединения](#pre-configure-ssh-connections-for-your-team), которые появляются в раскрывающемся списке окружения. Пользователи не могут редактировать или удалять управляемые соединения. |

606| `sshHostAllowlist` | ограничьте [SSH-сеансы](#restrict-which-ssh-hosts-users-can-connect-to) хостами, чьё разрешённое имя хоста совпадает с одним из этих шаблонов. Пустой массив отключает SSH-сеансы. Читается только из управляемых параметров. |608| `sshHostAllowlist` | ограничьте [SSH-сеансы](#restrict-which-ssh-hosts-users-can-connect-to) хостами, чьё разрешённое имя хоста совпадает с одним из этих шаблонов. Пустой массив отключает SSH-сеансы. Читается только из управляемых параметров. |

609| `managedMcpServers` | отправьте конфигурации MCP-сервера всем пользователям в развёртывании третьей стороны. Каждая запись указывает транспорт `"http"`, `"sse"` или `"stdio"`, детали подключения и опционально карту `toolPolicy`, которая ограничивает, какие инструменты на этом сервере пользователи могут вызывать. Доступно только в развёртываниях Desktop третьей стороны (3P). |

607 610 

608Управляемый файл параметров, развёрнутый на диск на каждой машине, применяется к сеансам Desktop. Управляемые параметры, отправленные удалённо через консоль администратора, в настоящее время достигают только сеансов CLI и IDE, поэтому для развёртываний Desktop либо распространяйте файл через MDM, либо используйте [элементы управления консоли администратора](#admin-console-controls) выше.611Управляемый файл параметров, развёрнутый на диск на каждой машине, применяется к сеансам Desktop. Управляемые параметры, отправленные удалённо через консоль администратора, в настоящее время достигают только сеансов CLI и IDE, поэтому для развёртываний Desktop либо распространяйте файл через MDM, либо используйте [элементы управления консоли администратора](#admin-console-controls) выше.

609 612 

desktop-scheduled-tasks.md +106 −0 created

Details

1> ## Documentation Index

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

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

4 

5# Планирование повторяющихся задач в Claude Code Desktop

6 

7> Настройте запланированные задачи в Claude Code Desktop для автоматического запуска Claude на регулярной основе для ежедневных проверок кода, аудитов зависимостей или утренних брифингов.

8 

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

10 

11Страница **Routines** приложения Desktop позволяет создавать как локальные запланированные задачи, так и удаленные [routines](/ru/routines). Локальная задача запускается на вашем компьютере с прямым доступом к вашим файлам и инструментам, но срабатывает только при открытом приложении и включенном компьютере. Удаленная routine запускается на управляемой Anthropic облачной инфраструктуре даже при выключенном компьютере и может также срабатывать при вызовах API или событиях GitHub. На этой странице рассматриваются локальные запланированные задачи; для удаленных routines и их параметров срабатывания см. [Routines](/ru/routines).

12 

13## Сравнение параметров планирования

14 

15Claude Code offers three ways to schedule recurring or one-off work:

16 

17| | [Cloud](/en/routines) | [Desktop](/en/desktop-scheduled-tasks) | [`/loop`](/en/scheduled-tasks) |

18| :------------------------- | :----------------------------- | :------------------------------------- | :---------------------------------- |

19| Runs on | Anthropic cloud | Your machine | Your machine |

20| Requires machine on | No | Yes | Yes |

21| Requires open session | No | No | Yes |

22| Persistent across restarts | Yes | Yes | Restored on `--resume` if unexpired |

23| Access to local files | No (fresh clone) | Yes | Yes |

24| MCP servers | Connectors configured per task | [Config files](/en/mcp) and connectors | Inherits from session |

25| Permission prompts | No (runs autonomously) | Configurable per task | Inherits from session |

26| Customizable schedule | Via `/schedule` in the CLI | Yes | Yes |

27| Minimum interval | 1 hour | 1 minute | 1 minute |

28 

29<Tip>

30 Use **cloud tasks** for work that should run reliably without your machine. Use **Desktop tasks** when you need access to local files and tools. Use **`/loop`** for quick polling during a session.

31</Tip>

32 

33<Note>

34 По умолчанию запланированные задачи запускаются в том состоянии, в котором находится ваш рабочий каталог, включая незафиксированные изменения. Включите переключатель worktree при создании задачи, чтобы каждый запуск получил свой изолированный Git worktree, так же как работают [параллельные сеансы](/ru/desktop#work-in-parallel-with-sessions).

35</Note>

36 

37## Создание запланированной задачи

38 

39Нажмите **Routines** на боковой панели, затем нажмите **New routine** и выберите **Local**. Настройте эти поля:

40 

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

42| ------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

43| Name | Идентификатор задачи. Преобразуется в нижний регистр kebab-case и используется как имя папки на диске. Должно быть уникальным среди ваших задач. |

44| Description | Краткое резюме, отображаемое в списке задач. |

45| Instructions | Что должен делать Claude при запуске задачи. Напишите это так же, как вы писали бы любое сообщение в поле подсказки. Поле ввода инструкций включает средства выбора режима разрешений и модели, а ниже вы выбираете рабочую папку и запуск ли в изолированном worktree. |

46| Schedule | Как часто запускается задача. См. [параметры расписания](#schedule-options) ниже. |

47 

48Папка требуется перед сохранением задачи. Если вы еще не доверили эту папку, Desktop предложит вам доверить ее перед сохранением.

49 

50Вы также можете создать задачу, описав то, что вы хотите, в любом сеансе. Например, "set up a daily code review that runs every morning at 9am" создает повторяющуюся задачу, а "remind me at 3pm tomorrow to check the deploy" создает одноразовую задачу, которая отключается после срабатывания.

51 

52## Параметры расписания

53 

54Выберите предустановку из элемента управления Schedule:

55 

56* **Manual**: без расписания, запускается только при нажатии **Run now**. Полезно для сохранения подсказки, которую вы запускаете по требованию

57* **Hourly**: запускается каждый час

58* **Daily**: показывает средство выбора времени, по умолчанию 9:00 AM местного времени

59* **Weekdays**: то же самое, что Daily, но пропускает субботу и воскресенье

60* **Weekly**: показывает средство выбора времени и средство выбора дня

61 

62Для интервалов, которые средство выбора не предлагает, таких как каждые 15 минут, первое число каждого месяца или одноразовый запуск в определенное будущее время, попросите Claude в любом сеансе Desktop установить расписание. Используйте простой язык; например, "schedule a task to run all the tests every 6 hours."

63 

64## Как запускаются запланированные задачи

65 

66Запланированные задачи запускаются на вашем компьютере. Desktop проверяет расписание каждую минуту при открытом приложении и запускает новый сеанс, когда задача наступает, независимо от любых открытых вами ручных сеансов. Каждая задача получает небольшую задержку в несколько минут после запланированного времени для распределения трафика API. Задержка детерминирована: одна и та же задача всегда запускается с одинаковым смещением.

67 

68Когда задача срабатывает, вы получаете уведомление на рабочем столе и новый сеанс появляется в разделе **Scheduled** на боковой панели. Откройте его, чтобы увидеть, что сделал Claude, просмотреть изменения или ответить на запросы разрешений. Сеанс работает как любой другой: Claude может редактировать файлы, запускать команды, создавать коммиты и открывать pull requests.

69 

70Задачи запускаются только при работающем приложении Desktop и включенном компьютере. Если ваш компьютер переходит в спящий режим в запланированное время, запуск пропускается. Чтобы предотвратить переход в режим ожидания, включите **Keep computer awake** в Settings под **Desktop app → General**. Закрытие крышки ноутбука все еще переводит его в спящий режим. Для задач, которые должны запускаться даже при выключенном компьютере, или которые должны срабатывать при вызове API или событии GitHub, создайте удаленную [routine](/ru/routines) вместо этого.

71 

72## Пропущенные запуски

73 

74Когда приложение запускается или компьютер просыпается, Desktop проверяет, пропустила ли каждая задача какие-либо запуски за последние семь дней. Если да, Desktop запускает ровно один наверстывающий запуск для самого недавно пропущенного времени и отбрасывает все остальное. Ежедневная задача, которая пропустила шесть дней, запускается один раз при пробуждении. Desktop показывает уведомление при запуске наверстывающего запуска.

75 

76Помните об этом при написании подсказок. Задача, запланированная на 9 утра, может запуститься в 11 вечера, если ваш компьютер спал весь день. Если время имеет значение, добавьте защиту в саму подсказку, например: "Only review today's commits. If it's after 5pm, skip the review and just post a summary of what was missed."

77 

78## Разрешения для запланированных задач

79 

80Каждая задача имеет свой режим разрешений, который вы устанавливаете при создании или редактировании задачи. Правила разрешения из `~/.claude/settings.json` также применяются к сеансам запланированных задач. Если задача запускается в режиме Ask и должна запустить инструмент, для которого у нее нет разрешения, запуск зависает до вашего одобрения. Сеанс остается открытым на боковой панели, чтобы вы могли ответить позже.

81 

82Чтобы избежать зависания, нажмите **Run now** после создания задачи, следите за запросами разрешений и выберите "always allow" для каждого. Будущие запуски этой задачи автоматически одобряют те же инструменты без запроса. Вы можете просмотреть и отозвать эти одобрения со страницы деталей задачи.

83 

84## Управление запланированными задачами

85 

86Нажмите на задачу в списке **Routines**, чтобы открыть ее страницу деталей. Отсюда вы можете:

87 

88* **Run now**: запустить задачу немедленно без ожидания следующего запланированного времени

89* **Status**: переключаться между Active и Paused для приостановки или возобновления запланированных запусков без удаления задачи

90* **Edit**: изменить инструкции, расписание, папку или другие параметры

91* **Review history**: увидеть каждый прошлый запуск, включая пропущенные запуски. Наведите указатель на пропущенную запись, чтобы увидеть причину: ваш компьютер спал, предыдущий запуск все еще выполнялся, или другие запланированные задачи уже запускались. Нажмите **Show more**, чтобы загрузить более старые записи.

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

93* **Delete**: удалить задачу и архивировать все сеансы, которые она создала. В диалоговом окне подтверждения появляется флажок **Also delete files on disk**; отметьте его, чтобы также удалить файл `SKILL.md` задачи и связанные данные из `~/.claude/scheduled-tasks/`.

94 

95Вы также можете перечислять, создавать, редактировать и приостанавливать задачи, попросив Claude в любом сеансе Desktop. Например, "pause my dependency-audit task" или "show me my scheduled tasks." Чтобы удалить задачу, используйте кнопку **Delete** на ее странице деталей.

96 

97Запланированная задача также может изменять свое собственное расписание или подсказку в рамках запущенного сеанса, используя инструмент MCP `update_scheduled_task`. Это позволяет задаче перепланировать себя на основе того, что она находит, например, перепланировать проверку кода на более раннее время, когда она обнаруживает, что была создана ветка выпуска.

98 

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

100 

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

102 

103* [Routines](/ru/routines): запускайте задачи на управляемой Anthropic инфраструктуре по расписанию, через вызов API или в ответ на события GitHub, даже при выключенном компьютере

104* [Run prompts on a schedule](/ru/scheduled-tasks): планирование с областью действия сеанса с `/loop` в CLI

105* [Claude Code GitHub Actions](/ru/github-actions): запускайте Claude по расписанию в CI вместо на вашем компьютере

106* [Use Claude Code Desktop](/ru/desktop): полное руководство приложения Desktop

env-vars.md +3 −1

Details

45| `ANTHROPIC_SMALL_FAST_MODEL_AWS_REGION` | Переопределить регион AWS для модели класса Haiku при использовании Bedrock или Bedrock Mantle |45| `ANTHROPIC_SMALL_FAST_MODEL_AWS_REGION` | Переопределить регион AWS для модели класса Haiku при использовании Bedrock или Bedrock Mantle |

46| `ANTHROPIC_VERTEX_BASE_URL` | Переопределить URL конечной точки Vertex AI. Используйте для пользовательских конечных точек Vertex или при маршрутизации через [шлюз LLM](/ru/llm-gateway). См. [Google Vertex AI](/ru/google-vertex-ai) |46| `ANTHROPIC_VERTEX_BASE_URL` | Переопределить URL конечной точки Vertex AI. Используйте для пользовательских конечных точек Vertex или при маршрутизации через [шлюз LLM](/ru/llm-gateway). См. [Google Vertex AI](/ru/google-vertex-ai) |

47| `ANTHROPIC_VERTEX_PROJECT_ID` | ID проекта GCP для запросов Vertex AI. Переопределяется `GCLOUD_PROJECT`, `GOOGLE_CLOUD_PROJECT` или проектом в файле учётных данных `GOOGLE_APPLICATION_CREDENTIALS`. См. [Google Vertex AI](/ru/google-vertex-ai) |47| `ANTHROPIC_VERTEX_PROJECT_ID` | ID проекта GCP для запросов Vertex AI. Переопределяется `GCLOUD_PROJECT`, `GOOGLE_CLOUD_PROJECT` или проектом в файле учётных данных `GOOGLE_APPLICATION_CREDENTIALS`. См. [Google Vertex AI](/ru/google-vertex-ai) |

48| `ANTHROPIC_WORKSPACE_ID` | ID рабочей области для [федерации рабочей нагрузки](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation). Установите это, когда ваше правило федерации охватывает более одной рабочей области, чтобы обмен токенов знал, какую рабочую область выбрать |

48| `API_TIMEOUT_MS` | Тайм-аут для запросов API в миллисекундах (по умолчанию: 600000, или 10 минут; максимум: 2147483647). Увеличьте это значение, когда запросы истекают на медленных сетях или при маршрутизации через прокси. Значения выше максимума переполняют базовый таймер и вызывают немедленный отказ запросов |49| `API_TIMEOUT_MS` | Тайм-аут для запросов API в миллисекундах (по умолчанию: 600000, или 10 минут; максимум: 2147483647). Увеличьте это значение, когда запросы истекают на медленных сетях или при маршрутизации через прокси. Значения выше максимума переполняют базовый таймер и вызывают немедленный отказ запросов |

49| `AWS_BEARER_TOKEN_BEDROCK` | Ключ API Bedrock для аутентификации (см. [Ключи API Bedrock](https://aws.amazon.com/blogs/machine-learning/accelerate-ai-development-with-amazon-bedrock-api-keys/)) |50| `AWS_BEARER_TOKEN_BEDROCK` | Ключ API Bedrock для аутентификации (см. [Ключи API Bedrock](https://aws.amazon.com/blogs/machine-learning/accelerate-ai-development-with-amazon-bedrock-api-keys/)) |

50| `BASH_DEFAULT_TIMEOUT_MS` | Тайм-аут по умолчанию для долгоживущих команд bash (по умолчанию: 120000, или 2 минуты) |51| `BASH_DEFAULT_TIMEOUT_MS` | Тайм-аут по умолчанию для долгоживущих команд bash (по умолчанию: 120000, или 2 минуты) |


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

139| `CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS` | Тайм-аут в миллисекундах для операций git при установке или обновлении plugins (по умолчанию: 120000). Увеличьте это значение для больших репозиториев или медленных сетевых соединений. См. [Операции Git истекают](/ru/plugin-marketplaces#git-operations-time-out) |140| `CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS` | Тайм-аут в миллисекундах для операций git при установке или обновлении plugins (по умолчанию: 120000). Увеличьте это значение для больших репозиториев или медленных сетевых соединений. См. [Операции Git истекают](/ru/plugin-marketplaces#git-operations-time-out) |

140| `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE` | Установите на `1`, чтобы сохранить существующий кэш marketplace, когда `git pull` не удаётся, вместо очистки и повторного клонирования. Полезно в автономных или изолированных сетях, где повторное клонирование не удалось бы таким же образом. См. [Обновления Marketplace не удаются в автономных сред](/ru/plugin-marketplaces#marketplace-updates-fail-in-offline-environments) |141| `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE` | Установите на `1`, чтобы сохранить существующий кэш marketplace, когда `git pull` не удаётся, вместо очистки и повторного клонирования. Полезно в автономных или изолированных сетях, где повторное клонирование не удалось бы таким же образом. См. [Обновления Marketplace не удаются в автономных сред](/ru/plugin-marketplaces#marketplace-updates-fail-in-offline-environments) |

142| `CLAUDE_CODE_PLUGIN_PREFER_HTTPS` | Установите на `1`, чтобы клонировать источники plugin GitHub `owner/repo` через HTTPS вместо SSH. Полезно в CI runners, контейнерах или любой среде без настроенного ключа SSH для `github.com` |

141| `CLAUDE_CODE_PLUGIN_SEED_DIR` | Путь к одному или нескольким каталогам seed plugins только для чтения, разделённым `:` на Unix или `;` на Windows. Используйте это, чтобы объединить предварительно заполненный каталог plugins в образ контейнера. Claude Code регистрирует marketplaces из этих каталогов при запуске и использует предварительно кэшированные plugins без повторного клонирования. См. [Предварительное заполнение plugins для контейнеров](/ru/plugin-marketplaces#pre-populate-plugins-for-containers) |143| `CLAUDE_CODE_PLUGIN_SEED_DIR` | Путь к одному или нескольким каталогам seed plugins только для чтения, разделённым `:` на Unix или `;` на Windows. Используйте это, чтобы объединить предварительно заполненный каталог plugins в образ контейнера. Claude Code регистрирует marketplaces из этих каталогов при запуске и использует предварительно кэшированные plugins без повторного клонирования. См. [Предварительное заполнение plugins для контейнеров](/ru/plugin-marketplaces#pre-populate-plugins-for-containers) |

142| `CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST` | Установлено хост-платформами, которые встраивают Claude Code и управляют маршрутизацией поставщика модели от его имени. При установке переменные выбора поставщика, конечной точки и аутентификации, такие как `CLAUDE_CODE_USE_BEDROCK`, `ANTHROPIC_BASE_URL` и `ANTHROPIC_API_KEY` в файлах параметров, игнорируются, поэтому параметры пользователя не могут переопределить маршрутизацию хоста. Автоматический отказ от телеметрии для Bedrock, Vertex и Foundry также пропускается, поэтому телеметрия следует стандартному отказу `DISABLE_TELEMETRY`. См. [Поведение по умолчанию по поставщику API](/ru/data-usage#default-behaviors-by-api-provider) |144| `CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST` | Установлено хост-платформами, которые встраивают Claude Code и управляют маршрутизацией поставщика модели от его имени. При установке переменные выбора поставщика, конечной точки и аутентификации, такие как `CLAUDE_CODE_USE_BEDROCK`, `ANTHROPIC_BASE_URL` и `ANTHROPIC_API_KEY` в файлах параметров, игнорируются, поэтому параметры пользователя не могут переопределить маршрутизацию хоста. Автоматический отказ от телеметрии для Bedrock, Vertex и Foundry также пропускается, поэтому телеметрия следует стандартному отказу `DISABLE_TELEMETRY`. См. [Поведение по умолчанию по поставщику API](/ru/data-usage#default-behaviors-by-api-provider) |

143| `CLAUDE_CODE_PROXY_RESOLVES_HOSTS` | Установите на `1`, чтобы позволить прокси выполнять разрешение DNS вместо вызывающей стороны. Согласитесь для сред, где прокси должен обрабатывать разрешение имён хостов |145| `CLAUDE_CODE_PROXY_RESOLVES_HOSTS` | Установите на `1`, чтобы позволить прокси выполнять разрешение DNS вместо вызывающей стороны. Согласитесь для сред, где прокси должен обрабатывать разрешение имён хостов |


152| `CLAUDE_CODE_SHELL` | Переопределить автоматическое обнаружение оболочки. Полезно, когда ваша оболочка входа отличается от вашей предпочтительной рабочей оболочки (например, `bash` против `zsh`) |154| `CLAUDE_CODE_SHELL` | Переопределить автоматическое обнаружение оболочки. Полезно, когда ваша оболочка входа отличается от вашей предпочтительной рабочей оболочки (например, `bash` против `zsh`) |

153| `CLAUDE_CODE_SHELL_PREFIX` | Префикс команды для обёртывания команд bash, которые порождает Claude Code: вызовы инструмента Bash, команды [hook](/ru/hooks) и команды запуска stdio [MCP server](/ru/mcp). Полезно для логирования или аудита. Пример: установка `/path/to/logger.sh` запускает каждую команду как `/path/to/logger.sh <command>` |155| `CLAUDE_CODE_SHELL_PREFIX` | Префикс команды для обёртывания команд bash, которые порождает Claude Code: вызовы инструмента Bash, команды [hook](/ru/hooks) и команды запуска stdio [MCP server](/ru/mcp). Полезно для логирования или аудита. Пример: установка `/path/to/logger.sh` запускает каждую команду как `/path/to/logger.sh <command>` |

154| `CLAUDE_CODE_SIMPLE` | Установите на `1`, чтобы запустить с минимальным системным приглашением и только инструментами Bash, чтения файлов и редактирования файлов. MCP tools из `--mcp-config` по-прежнему доступны. Отключает автоматическое обнаружение hooks, skills, plugins, MCP servers, автоматическую память и CLAUDE.md. Флаг CLI [`--bare`](/ru/headless#start-faster-with-bare-mode) устанавливает это |156| `CLAUDE_CODE_SIMPLE` | Установите на `1`, чтобы запустить с минимальным системным приглашением и только инструментами Bash, чтения файлов и редактирования файлов. MCP tools из `--mcp-config` по-прежнему доступны. Отключает автоматическое обнаружение hooks, skills, plugins, MCP servers, автоматическую память и CLAUDE.md. Флаг CLI [`--bare`](/ru/headless#start-faster-with-bare-mode) устанавливает это |

155| `CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT` | Установите на `1`, чтобы использовать минимальное системное приглашение и свёрнутые описания инструментов на Opus 4.7. Не влияет на другие модели. Полный набор инструментов, hooks, MCP servers и обнаружение CLAUDE.md остаются включены |157| `CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT` | Установите на `1`, чтобы использовать минимальное системное приглашение и свёрнутые описания инструментов на любой модели. Установите на `0`, `false`, `no` или `off`, чтобы отказаться даже на моделях, где эксперимент или конфигурация сервера в противном случае включили бы это. Полный набор инструментов, hooks, MCP servers и обнаружение CLAUDE.md остаются включены |

156| `CLAUDE_CODE_SKIP_ANTHROPIC_AWS_AUTH` | Пропустить аутентификацию на стороне клиента для [Claude Platform on AWS](/ru/claude-platform-on-aws), для шлюзов, которые подписывают запросы сами |158| `CLAUDE_CODE_SKIP_ANTHROPIC_AWS_AUTH` | Пропустить аутентификацию на стороне клиента для [Claude Platform on AWS](/ru/claude-platform-on-aws), для шлюзов, которые подписывают запросы сами |

157| `CLAUDE_CODE_SKIP_BEDROCK_AUTH` | Пропустить аутентификацию AWS для Bedrock (например, при использовании шлюза LLM) |159| `CLAUDE_CODE_SKIP_BEDROCK_AUTH` | Пропустить аутентификацию AWS для Bedrock (например, при использовании шлюза LLM) |

158| `CLAUDE_CODE_SKIP_FOUNDRY_AUTH` | Пропустить аутентификацию Azure для Microsoft Foundry (например, при использовании шлюза LLM) |160| `CLAUDE_CODE_SKIP_FOUNDRY_AUTH` | Пропустить аутентификацию Azure для Microsoft Foundry (например, при использовании шлюза LLM) |

Details

156 156 

157### Использование skills157### Использование skills

158 158 

159Входной параметр `prompt` принимает как [вызов skill](/ru/skills), так и простой текст:

160 

161* Для skill в каталоге `.claude/skills/` вашего репозитория запустите `actions/checkout` перед шагом action и передайте `/skill-name`.

162* Для skill, упакованного в plugin, установите plugin с помощью входных параметров `plugin_marketplaces` и `plugins` и передайте `/plugin-name:skill-name` с пространством имён.

163 

164Следующий рабочий процесс устанавливает plugin `code-review` и запускает его skill для каждого нового или обновлённого pull request:

165 

159```yaml theme={null}166```yaml theme={null}

160name: Code Review167name: Code Review

161on:168on:


168 - uses: anthropics/claude-code-action@v1175 - uses: anthropics/claude-code-action@v1

169 with:176 with:

170 anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}177 anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}

171 prompt: "Review this pull request for code quality, correctness, and security. Analyze the diff, then post your findings as review comments."178 plugin_marketplaces: "https://github.com/anthropics/claude-code.git"

172 claude_args: "--max-turns 5"179 plugins: "code-review@claude-code-plugins"

180 prompt: "/code-review:code-review ${{ github.repository }}/pull/${{ github.event.pull_request.number }}"

173```181```

174 182 

175### Пользовательская автоматизация с prompts183### Пользовательская автоматизация с prompts


622Claude Code Action v1 использует упрощённую конфигурацию:630Claude Code Action v1 использует упрощённую конфигурацию:

623 631 

624| Параметр | Описание | Требуется |632| Параметр | Описание | Требуется |

625| ------------------- | ----------------------------------------------------------------- | --------- |633| --------------------- | ---------------------------------------------------------------------------------- | --------- |

626| `prompt` | Инструкции для Claude (простой текст или имя [skill](/ru/skills)) | Нет\* |634| `prompt` | Инструкции для Claude (простой текст или имя [skill](/ru/skills)) | Нет\* |

627| `claude_args` | Аргументы CLI, передаваемые в Claude Code | Нет |635| `claude_args` | Аргументы CLI, передаваемые в Claude Code | Нет |

636| `plugin_marketplaces` | Список URL-адресов Git маркетплейсов плагинов, разделённый переносами строк | Нет |

637| `plugins` | Список имён плагинов для установки перед выполнением, разделённый переносами строк | Нет |

628| `anthropic_api_key` | Claude API ключ | Да\*\* |638| `anthropic_api_key` | Claude API ключ | Да\*\* |

629| `github_token` | GitHub токен для доступа к API | Нет |639| `github_token` | GitHub токен для доступа к API | Нет |

630| `trigger_phrase` | Пользовательская фраза триггера (по умолчанию: "@claude") | Нет |640| `trigger_phrase` | Пользовательская фраза триггера (по умолчанию: "@claude") | Нет |

631| `use_bedrock` | Использовать AWS Bedrock вместо Claude API | Нет |641| `use_bedrock` | Использовать Amazon Bedrock вместо Claude API | Нет |

632| `use_vertex` | Использовать Google Vertex AI вместо Claude API | Нет |642| `use_vertex` | Использовать Google Vertex AI вместо Claude API | Нет |

633 643 

634\*Prompt опционален — при пропуске для комментариев issue/PR, Claude отвечает на фразу триггера\644\*Prompt опционален — при пропуске для комментариев issue/PR, Claude отвечает на фразу триггера\

glossary.md +1 −1

Details

70 70 

71### Checkpoint71### Checkpoint

72 72 

73Автоматический снимок вашего кода, сделанный перед каждым редактированием, которое делает Claude. Нажмите `Esc` дважды или запустите `/rewind`, чтобы восстановить код, разговор или оба на более ранний момент. Checkpoints локальны для сеанса, отделены от git и не отслеживают изменения, сделанные через Bash tool.73Точка восстановления, созданная при каждом отправляемом вами prompt. Claude Code создаёт снимки файлов перед каждым редактированием, чтобы checkpoint мог их восстановить. Нажмите `Esc` дважды или запустите `/rewind`, чтобы восстановить код, разговор или оба на более ранний момент, или чтобы резюмировать часть разговора из выбранного сообщения. Checkpoints локальны для сеанса, отделены от git и не отслеживают изменения, сделанные через Bash tool.

74 74 

75Подробнее: [Checkpointing](/ru/checkpointing)75Подробнее: [Checkpointing](/ru/checkpointing)

76 76 

goal.md +1 −1

Details

108 108 

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

110 110 

111`/goal` работает в [неинтерактивном режиме](/ru/headless) и через [Remote Control](/ru/remote-control). Установка цели с `-p` запускает цикл до завершения в одном вызове:111`/goal` работает в [неинтерактивном режиме](/ru/headless), в [приложении для рабочего стола](/ru/desktop) и через [Remote Control](/ru/remote-control). Установка цели с `-p` запускает цикл до завершения в одном вызове:

112 112 

113```bash theme={null}113```bash theme={null}

114claude -p "/goal CHANGELOG.md has an entry for every PR merged this week"114claude -p "/goal CHANGELOG.md has an entry for every PR merged this week"

hooks.md +48 −8

Details

297| :-------------- | :---------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |297| :-------------- | :---------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

298| `type` | да | `"command"`, `"http"`, `"mcp_tool"`, `"prompt"` или `"agent"` |298| `type` | да | `"command"`, `"http"`, `"mcp_tool"`, `"prompt"` или `"agent"` |

299| `if` | нет | Синтаксис правила разрешения для фильтрации срабатывания этого hook, такой как `"Bash(git *)"` или `"Edit(*.ts)"`. Hook запускается только если вызов инструмента совпадает с шаблоном, или если команда Bash слишком сложна для анализа. Оценивается только на событиях инструмента: `PreToolUse`, `PostToolUse`, `PostToolUseFailure`, `PermissionRequest` и `PermissionDenied`. На других событиях hook с установленным `if` никогда не запускается. Использует тот же синтаксис, что и [правила разрешения](/ru/permissions) |299| `if` | нет | Синтаксис правила разрешения для фильтрации срабатывания этого hook, такой как `"Bash(git *)"` или `"Edit(*.ts)"`. Hook запускается только если вызов инструмента совпадает с шаблоном, или если команда Bash слишком сложна для анализа. Оценивается только на событиях инструмента: `PreToolUse`, `PostToolUse`, `PostToolUseFailure`, `PermissionRequest` и `PermissionDenied`. На других событиях hook с установленным `if` никогда не запускается. Использует тот же синтаксис, что и [правила разрешения](/ru/permissions) |

300| `timeout` | нет | Секунды перед отменой. Значения по умолчанию: 600 для command, 30 для prompt, 60 для agent |300| `timeout` | нет | Секунды перед отменой. Значения по умолчанию: 600 для `command`, `http` и `mcp_tool`; 30 для `prompt`; 60 для `agent`. [`UserPromptSubmit`](#userpromptsubmit) снижает значение по умолчанию для `command`, `http` и `mcp_tool` до 30 |

301| `statusMessage` | нет | Пользовательское сообщение спиннера, отображаемое во время выполнения hook |301| `statusMessage` | нет | Пользовательское сообщение спиннера, отображаемое во время выполнения hook |

302| `once` | нет | Если `true`, запускается один раз за сеанс, затем удаляется. Только для hooks, объявленных в [skill frontmatter](#hooks-in-skills-and-agents); игнорируется в файлах настроек и agent frontmatter |302| `once` | нет | Если `true`, запускается один раз за сеанс, затем удаляется. Только для hooks, объявленных в [skill frontmatter](#hooks-in-skills-and-agents); игнорируется в файлах настроек и agent frontmatter |

303 303 


558 558 

559Command hooks получают JSON данные через stdin и передают результаты через коды выхода, stdout и stderr. HTTP hooks получают тот же JSON как тело POST запроса и передают результаты через тело HTTP ответа. Этот раздел охватывает поля и поведение, общие для всех событий. Каждый раздел события под [Hook events](#hook-events) включает его специфическую схему входа и параметры управления решением.559Command hooks получают JSON данные через stdin и передают результаты через коды выхода, stdout и stderr. HTTP hooks получают тот же JSON как тело POST запроса и передают результаты через тело HTTP ответа. Этот раздел охватывает поля и поведение, общие для всех событий. Каждый раздел события под [Hook events](#hook-events) включает его специфическую схему входа и параметры управления решением.

560 560 

561На macOS и Linux command hooks запускаются в своём собственном сеансе без управляющего терминала начиная с v2.1.139. Процесс hook и любые дочерние процессы не могут открыть `/dev/tty` или отправлять escape последовательности непосредственно в интерфейс Claude Code. Windows не имеет `/dev/tty`. Чтобы вывести сообщение пользователю на любой платформе, верните [`systemMessage`](#json-output) в JSON выходе. Чтобы вызвать уведомление рабочего стола, установить заголовок окна или издать звуковой сигнал, верните [`terminalSequence`](#emit-terminal-notifications) вместо этого.

562 

561### Общие входные поля563### Общие входные поля

562 564 

563Hook события получают эти поля как JSON, в дополнение к полям, специфичным для события, документированным в каждом разделе [hook event](#hook-events). Для command hooks этот JSON поступает через stdin. Для HTTP hooks он поступает как тело POST запроса.565Hook события получают эти поля как JSON, в дополнение к полям, специфичным для события, документированным в каждом разделе [hook event](#hook-events). Для command hooks этот JSON поступает через stdin. Для HTTP hooks он поступает как тело POST запроса.


685 687 

686Stdout вашего hook должен содержать только JSON объект. Если ваш профиль оболочки выводит текст при запуске, это может помешать анализу JSON. См. [JSON validation failed](/ru/hooks-guide#json-validation-failed) в руководстве по устранению неполадок.688Stdout вашего hook должен содержать только JSON объект. Если ваш профиль оболочки выводит текст при запуске, это может помешать анализу JSON. См. [JSON validation failed](/ru/hooks-guide#json-validation-failed) в руководстве по устранению неполадок.

687 689 

688JSON выход, внедрённый в контекст (`additionalContext`, `systemMessage` или простой stdout), ограничен 10 000 символами. Выход, превышающий этот лимит, сохраняется в файл и заменяется предпросмотром и путём к файлу, так же как обрабатываются большие результаты инструментов.690Выходные строки hook, включая `additionalContext`, `systemMessage` и простой stdout, ограничены 10 000 символами. Выход, превышающий этот лимит, сохраняется в файл и заменяется предпросмотром и путём к файлу, так же как обрабатываются большие результаты инструментов.

689 691 

690JSON объект поддерживает три вида полей:692JSON объект поддерживает три вида полей:

691 693 


694* **`hookSpecificOutput`** — это вложенный объект для событий, которым нужно более богатое управление. Он требует поле `hookEventName`, установленное на имя события.696* **`hookSpecificOutput`** — это вложенный объект для событий, которым нужно более богатое управление. Он требует поле `hookEventName`, установленное на имя события.

695 697 

696| Поле | По умолчанию | Описание |698| Поле | По умолчанию | Описание |

697| :--------------- | :----------- | :------------------------------------------------------------------------------------------------------------------------------------------ |699| :----------------- | :----------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

698| `continue` | `true` | Если `false`, Claude полностью прекращает обработку после запуска hook. Имеет приоритет над любыми полями решения, специфичными для события |700| `continue` | `true` | Если `false`, Claude полностью прекращает обработку после запуска hook. Имеет приоритет над любыми полями решения, специфичными для события |

699| `stopReason` | нет | Сообщение, показываемое пользователю при `continue` равном `false`. Не показывается Claude |701| `stopReason` | нет | Сообщение, показываемое пользователю при `continue` равном `false`. Не показывается Claude |

700| `suppressOutput` | `false` | Если `true`, скрывает stdout из журнала отладки |702| `suppressOutput` | `false` | Если `true`, скрывает stdout из журнала отладки |

701| `systemMessage` | нет | Предупреждающее сообщение, показываемое пользователю |703| `systemMessage` | нет | Предупреждающее сообщение, показываемое пользователю |

704| `terminalSequence` | нет | Escape последовательность терминала для Claude Code, которую нужно выдать от вашего имени, такая как уведомление рабочего стола, заголовок окна или звуковой сигнал. Ограничено OSC `0`/`1`/`2`/`9`/`99`/`777` и BEL. Если значение содержит что-либо вне списка разрешённых, поле игнорируется. Используйте это вместо записи в `/dev/tty`, которая недоступна для hooks |

702 705 

703Чтобы полностью остановить Claude независимо от типа события:706Чтобы полностью остановить Claude независимо от типа события:

704 707 


706{ "continue": false, "stopReason": "Build failed, fix errors before continuing" }709{ "continue": false, "stopReason": "Build failed, fix errors before continuing" }

707```710```

708 711 

712#### Выдача уведомлений терминала

713 

714Поле `terminalSequence` требует Claude Code v2.1.141 или позже.

715 

716Hooks запускаются без управляющего терминала, поэтому запись escape последовательностей непосредственно в `/dev/tty` не удаётся. Вместо этого верните escape последовательность в поле `terminalSequence` и Claude Code выдаст её от вашего имени через собственный путь записи терминала. Это свободно от гонок, работает внутри tmux и GNU screen, и работает на Windows, где нет `/dev/tty`.

717 

718Поле принимает строку из одной или нескольких разрешённых escape последовательностей:

719 

720* OSC `0`, `1`, `2`: заголовки окна и значков

721* OSC `9`: уведомления iTerm2, ConEmu, Windows Terminal и WezTerm, включая `9;4` прогресс панели задач

722* OSC `99`: уведомления Kitty

723* OSC `777`: уведомления urxvt, Ghostty и Warp

724* Bare BEL

725 

726Последовательности могут быть завершены BEL или ST. Что-либо вне списка разрешённых, включая CSI курсор и цветовые последовательности, OSC палитру последовательности, OSC 8 гиперссылки, OSC 52 записи буфера обмена и OSC 1337, отклоняется и поле игнорируется.

727 

728Пример ниже срабатывает уведомление рабочего стола из hook `Notification`. Escape последовательность строится с `printf` восьмеричными экранами, поэтому управляющие байты никогда не появляются в командной строке оболочки, и `jq -n --arg` строит JSON выход, поэтому кавычки, обратные слэши и новые строки в сообщении уведомления правильно экранируются:

729 

730```bash theme={null}

731#!/bin/bash

732# Notification hook: ping the desktop when Claude Code needs attention.

733input=$(cat)

734title="Claude Code'

735body=$(jq -r '.message // "Needs your attention"' <<<"$input")

736seq=$(printf '\033]777;notify;%s;%s\007' "$title" "$body")

737jq -nc --arg seq "$seq" '{terminalSequence: $seq}'

738```

739 

740Форма `{ "terminalSequence": "..." }` одинакова из любой оболочки или языка. На Windows постройте escape строку в PowerShell или скрипте и выдайте тот же JSON объект.

741 

742<Note>

743 `terminalSequence` — это поддерживаемая замена для hooks, которые ранее писали escape последовательности непосредственно в `/dev/tty`. Список разрешённых ограничен последовательностями, которые не могут перемещать курсор или изменять цвета, поэтому hook никогда не может повредить подсказку на экране.

744</Note>

745 

709#### Добавить контекст для Claude746#### Добавить контекст для Claude

710 747 

711Поле `additionalContext` передаёт строку из вашего hook в контекстное окно Claude. Claude Code оборачивает строку в системное напоминание и вставляет её в разговор в точке, где сработал hook. Claude читает напоминание при следующем запросе модели, но оно не появляется как сообщение чата в интерфейсе.748Поле `additionalContext` передаёт строку из вашего hook в контекстное окно Claude. Claude Code оборачивает строку в системное напоминание и вставляет её в разговор в точке, где сработал hook. Claude читает напоминание при следующем запросе модели, но оно не появляется как сообщение чата в интерфейсе.


989 1026 

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

991 1028 

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

1030 

992#### UserPromptSubmit input1031#### UserPromptSubmit input

993 1032 

994В дополнение к [общим полям входа](#common-input-fields), UserPromptSubmit hooks получают поле `prompt`, содержащее текст, отправленный пользователем.1033В дополнение к [общим полям входа](#common-input-fields), UserPromptSubmit hooks получают поле `prompt`, содержащее текст, отправленный пользователем.


2260 2299 

2261SessionEnd hooks не имеют управления решением. Они не могут блокировать завершение сеанса, но могут выполнять задачи очистки.2300SessionEnd hooks не имеют управления решением. Они не могут блокировать завершение сеанса, но могут выполнять задачи очистки.

2262 2301 

2263SessionEnd hooks имеют таймаут по умолчанию 1,5 секунды. Это применяется как к выходу из сеанса, так и к `/clear` и переключению сеансов через интерактивный `/resume`. Если hook нуждается в большем времени, установите переменную окружения `CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS` в миллисекундах.2302SessionEnd hooks имеют таймаут по умолчанию 1,5 секунды. Это применяется как к выходу из сеанса, так и к `/clear` и переключению сеансов через интерактивный `/resume`. Если hook нуждается в большем времени, установите поле `timeout` в per-hook конфигурации hook. Общий бюджет автоматически повышается до наибольшего per-hook таймаута, настроенного в файлах настроек, до 60 секунд. Таймауты, установленные на hooks, предоставленные плагинами, не повышают бюджет. Чтобы явно переопределить бюджет, установите переменную окружения `CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS` в миллисекундах.

2264 2303 

2265```bash theme={null}2304```bash theme={null}

2266CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS=5000 claude2305CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS=5000 claude


2597 2636 

2598Когда срабатывает асинхронный hook, Claude Code запускает процесс hook и немедленно продолжает без ожидания его завершения. Hook получает те же JSON входные данные через stdin, что и синхронный hook.2637Когда срабатывает асинхронный hook, Claude Code запускает процесс hook и немедленно продолжает без ожидания его завершения. Hook получает те же JSON входные данные через stdin, что и синхронный hook.

2599 2638 

2600После выхода фонового процесса, если hook произвёл JSON ответ с полем `systemMessage` или `additionalContext`, это содержимое доставляется Claude как контекст на следующем ходу разговора.2639После выхода фонового процесса, если hook произвёл JSON ответ с полем `additionalContext`, это содержимое доставляется Claude как контекст на следующем ходу разговора. Поле `systemMessage` показывается вам, а не Claude.

2601 2640 

2602Уведомления о завершении асинхронного hook подавляются по умолчанию. Чтобы их увидеть, включите подробный режим с помощью `Ctrl+O` или запустите Claude Code с `--verbose`.2641Уведомления о завершении асинхронного hook подавляются по умолчанию. Чтобы их увидеть, включите подробный режим с помощью `Ctrl+O` или запустите Claude Code с `--verbose`.

2603 2642 


2618 exit 02657 exit 0

2619fi2658fi

2620 2659 

2621# Run tests and report results via systemMessage2660# Run tests and report results to Claude via additionalContext

2622RESULT=$(npm test 2>&1)2661RESULT=$(npm test 2>&1)

2623EXIT_CODE=$?2662EXIT_CODE=$?

2624 2663 

2625if [ $EXIT_CODE -eq 0 ]; then2664if [ $EXIT_CODE -eq 0 ]; then

2626 echo "{\"systemMessage\": \"Tests passed after editing $FILE_PATH\"}"2665 MSG="Tests passed after editing $FILE_PATH"

2627else2666else

2628 echo "{\"systemMessage\": \"Tests failed after editing $FILE_PATH: $RESULT\"}"2667 MSG="Tests failed after editing $FILE_PATH: $RESULT"

2629fi2668fi

2669jq -nc --arg msg "$MSG" '{hookSpecificOutput: {hookEventName: "PostToolUse", additionalContext: $msg}}'

2630```2670```

2631 2671 

2632Затем добавьте эту конфигурацию в `.claude/settings.json` в корне вашего проекта. Флаг `async: true` позволяет Claude продолжать работу, пока тесты запускаются:2672Затем добавьте эту конфигурацию в `.claude/settings.json` в корне вашего проекта. Флаг `async: true` позволяет Claude продолжать работу, пока тесты запускаются:

hooks-guide.md +4 −1

Details

865### Ограничения865### Ограничения

866 866 

867* Command hooks взаимодействуют только через stdout, stderr и коды выхода. Они не могут запускать команды `/` или вызовы инструментов. Текст, возвращённый через `additionalContext`, внедряется как системное напоминание, которое Claude читает как простой текст. HTTP hooks взаимодействуют через тело ответа вместо этого.867* Command hooks взаимодействуют только через stdout, stderr и коды выхода. Они не могут запускать команды `/` или вызовы инструментов. Текст, возвращённый через `additionalContext`, внедряется как системное напоминание, которое Claude читает как простой текст. HTTP hooks взаимодействуют через тело ответа вместо этого.

868* Время ожидания hook составляет 10 минут по умолчанию, настраивается для каждого hook с помощью поля `timeout` (в секундах).868* Время ожидания hook варьируется в зависимости от типа. Переопределите для каждого hook с помощью поля `timeout` в секундах.

869 * `command`, `http`, `mcp_tool`: 10 минут. `UserPromptSubmit` снижает эти значения до 30 секунд.

870 * `prompt`: 30 секунд.

871 * `agent`: 60 секунд.

869* Hooks `PostToolUse` не могут отменить действия, так как инструмент уже выполнен.872* Hooks `PostToolUse` не могут отменить действия, так как инструмент уже выполнен.

870* Hooks `PermissionRequest` не срабатывают в [неинтерактивном режиме](/ru/headless) (`-p`). Используйте hooks `PreToolUse` для автоматизированных решений разрешений.873* Hooks `PermissionRequest` не срабатывают в [неинтерактивном режиме](/ru/headless) (`-p`). Используйте hooks `PreToolUse` для автоматизированных решений разрешений.

871* Hooks `Stop` срабатывают всякий раз, когда Claude завершает ответ, а не только при завершении задачи. Они не срабатывают при прерывании пользователем. Ошибки API срабатывают [StopFailure](/ru/hooks#stopfailure) вместо этого.874* Hooks `Stop` срабатывают всякий раз, когда Claude завершает ответ, а не только при завершении задачи. Они не срабатывают при прерывании пользователем. Ошибки API срабатывают [StopFailure](/ru/hooks#stopfailure) вместо этого.

mcp.md +1 −1

Details

458 458 

459Многие облачные MCP servers требуют аутентификации. Claude Code поддерживает OAuth 2.0 для безопасных соединений.459Многие облачные MCP servers требуют аутентификации. Claude Code поддерживает OAuth 2.0 для безопасных соединений.

460 460 

461Claude Code отмечает удаленный server как требующий аутентификации, когда server отвечает с `401 Unauthorized` и заголовком `WWW-Authenticate`, указывающим на его сервер авторизации. Любой пользовательский server, который возвращает этот ответ, получает тот же поток аутентификации `/mcp`, как и любой другой удаленный server.461Claude Code отмечает удаленный server как требующий аутентификации, когда server отвечает с `401 Unauthorized` или `403 Forbidden`. Любой из этих кодов состояния отмечает server в `/mcp`, чтобы вы могли завершить поток OAuth. Пользовательский server, который возвращает заголовок `WWW-Authenticate`, указывающий на его сервер авторизации, получает то же автоматическое обнаружение, как и любой другой удаленный server.

462 462 

463<Steps>463<Steps>

464 <Step title="Добавьте server, который требует аутентификации">464 <Step title="Добавьте server, который требует аутентификации">

Details

51 Доступные флаги:51 Доступные флаги:

52 52 

53 | Флаг | Описание |53 | Флаг | Описание |

54 | ----------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |54 | ----------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

55 | `--name "My Project"` | Установите пользовательское название сеанса, видимое в списке сеансов на claude.ai/code. |55 | `--name "My Project"` | Установите пользовательское название сеанса, видимое в списке сеансов на claude.ai/code. |

56 | `--remote-control-session-name-prefix <prefix>` | Префикс для автоматически сгенерированных названий сеансов, когда явное имя не установлено. По умолчанию используется имя хоста вашего компьютера, создавая названия вроде `myhost-graceful-unicorn`. Установите `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` для того же эффекта. |56 | `--remote-control-session-name-prefix <prefix>` | Префикс для автоматически сгенерированных названий сеансов, когда явное имя не установлено. По умолчанию используется имя хоста вашего компьютера, создавая названия вроде `myhost-graceful-unicorn`. Установите `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` для того же эффекта. |

57 | `--spawn <mode>` | Как сервер создаёт сеансы.<br />• `same-dir` (по умолчанию): все сеансы используют текущий рабочий каталог, поэтому они могут конфликтовать при редактировании одних и тех же файлов.<br />• `worktree`: каждый сеанс по требованию получает свой собственный [git worktree](/ru/common-workflows#run-parallel-claude-code-sessions-with-git-worktrees). Требует репозитория git.<br />• `session`: режим одного сеанса. Обслуживает ровно один сеанс и отклоняет дополнительные подключения. Устанавливается только при запуске.<br />Нажмите `w` во время выполнения, чтобы переключиться между `same-dir` и `worktree`. |57 | `--spawn <mode>` | Как сервер создаёт сеансы.<br />• `same-dir` (по умолчанию): все сеансы используют текущий рабочий каталог, поэтому они могут конфликтовать при редактировании одних и тех же файлов.<br />• `worktree`: каждый сеанс по требованию получает свой собственный [git worktree](/ru/worktrees). Требует репозитория git.<br />• `session`: режим одного сеанса. Обслуживает ровно один сеанс и отклоняет дополнительные подключения. Устанавливается только при запуске.<br />Нажмите `w` во время выполнения, чтобы переключиться между `same-dir` и `worktree`. |

58 | `--capacity <N>` | Максимальное количество одновременных сеансов. По умолчанию 32. Не может использоваться с `--spawn=session`. |58 | `--capacity <N>` | Максимальное количество одновременных сеансов. По умолчанию 32. Не может использоваться с `--spawn=session`. |

59 | `--verbose` | Показать подробные журналы подключения и сеанса. |59 | `--verbose` | Показать подробные журналы подключения и сеанса. |

60 | `--sandbox` / `--no-sandbox` | Включить или отключить [sandboxing](/ru/sandboxing) для изоляции файловой системы и сети. Отключено по умолчанию. |60 | `--sandbox` / `--no-sandbox` | Включить или отключить [sandboxing](/ru/sandboxing) для изоляции файловой системы и сети. Отключено по умолчанию. |


113 113 

114* **Откройте URL сеанса** в любом браузере, чтобы перейти непосредственно к сеансу на [claude.ai/code](https://claude.ai/code).114* **Откройте URL сеанса** в любом браузере, чтобы перейти непосредственно к сеансу на [claude.ai/code](https://claude.ai/code).

115* **Отсканируйте QR-код**, показанный рядом с URL сеанса, чтобы открыть его непосредственно в приложении Claude. С помощью `claude remote-control` нажмите пробел, чтобы переключить отображение QR-кода.115* **Отсканируйте QR-код**, показанный рядом с URL сеанса, чтобы открыть его непосредственно в приложении Claude. С помощью `claude remote-control` нажмите пробел, чтобы переключить отображение QR-кода.

116* **Откройте [claude.ai/code](https://claude.ai/code) или приложение Claude** и найдите сеанс по имени в списке сеансов. Сеансы Remote Control показывают значок компьютера с зелёной точкой статуса при подключении.116* **Откройте [claude.ai/code](https://claude.ai/code) или приложение Claude** и найдите сеанс по имени в списке сеансов. В мобильном приложении Claude нажмите **Code** в навигации, чтобы перейти к списку сеансов. Сеансы Remote Control показывают значок компьютера с зелёной точкой статуса при подключении.

117 117 

118Название удалённого сеанса выбирается в следующем порядке:118Название удалённого сеанса выбирается в следующем порядке:

119 119 


130 130 

131### Включение Remote Control для всех сеансов131### Включение Remote Control для всех сеансов

132 132 

133По умолчанию Remote Control активируется только при явном запуске `claude remote-control`, `claude --remote-control` или `/remote-control`. Чтобы включить его автоматически для каждого интерактивного сеанса, запустите `/config` внутри Claude Code и установите **Enable Remote Control for all sessions** на `true`. Установите обратно на `false`, чтобы отключить.133По умолчанию Remote Control активируется только при явном запуске `claude remote-control`, `claude --remote-control` или `/remote-control`. Чтобы включить его автоматически для каждого интерактивного сеанса, запустите `/config` внутри Claude Code и установите **Enable Remote Control for all sessions** на `true`. Установите обратно на `false`, чтобы отключить. В приложении Desktop вы также можете переключить это в **Settings → Claude Code → Enable remote control by default**.

134 134 

135С этой настройкой каждый интерактивный процесс Claude Code регистрирует один удалённый сеанс. Если вы запустите несколько экземпляров, каждый получит свою собственную среду и сеанс. Чтобы запустить несколько одновременных сеансов из одного процесса, используйте [режим сервера](#start-a-remote-control-session) вместо этого.135С этой настройкой каждый интерактивный процесс Claude Code регистрирует один удалённый сеанс. Если вы запустите несколько экземпляров, каждый получит свою собственную среду и сеанс. Чтобы запустить несколько одновременных сеансов из одного процесса, используйте [режим сервера](#start-a-remote-control-session) вместо этого.

136 136 


215 215 

216### "Remote Control is disabled by your organization's policy"216### "Remote Control is disabled by your organization's policy"

217 217 

218Эта ошибка имеет три различные причины. Сначала запустите `/status`, чтобы увидеть, какой метод входа и подписку вы используете.218Эта ошибка имеет четыре различные причины. Сначала запустите `/status`, чтобы увидеть, какой метод входа и подписку вы используете.

219 219 

220* **Вы аутентифицированы с помощью API ключа или учётной записи Console**: Remote Control требует OAuth claude.ai. Запустите `/login` и выберите опцию claude.ai. Если в вашей среде установлена переменная `ANTHROPIC_API_KEY`, отключите её.220* **Вы аутентифицированы с помощью API ключа или учётной записи Console**: Remote Control требует OAuth claude.ai. Запустите `/login` и выберите опцию claude.ai. Если в вашей среде установлена переменная `ANTHROPIC_API_KEY`, отключите её.

221* **Ваш администратор Team или Enterprise не включил это**: Remote Control отключен по умолчанию на этих планах. Администратор может включить его на [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code), включив переключатель **Remote Control**. Это параметр организации на стороне сервера, а не ключ [управляемых параметров](/ru/permissions#managed-only-settings).221* **Ваш администратор Team или Enterprise не включил это**: Remote Control отключен по умолчанию на этих планах. Администратор может включить его на [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code), включив переключатель **Remote Control**. Этот переключатель является параметром организации на стороне сервера.

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

223* **Ошибка упоминает `disableRemoteControl`**: ваш IT администратор отключил Remote Control на этом устройстве через [управляемые параметры](/ru/settings#settings-files), независимо от переключателя на уровне организации.

223 224 

224### "Remote credentials fetch failed"225### "Remote credentials fetch failed"

225 226 

sub-agents.md +6 −4

Details

158 158 

159Это рекомендуемый способ создания и управления subagents. Для ручного создания или автоматизации вы также можете добавлять файлы subagent напрямую.159Это рекомендуемый способ создания и управления subagents. Для ручного создания или автоматизации вы также можете добавлять файлы subagent напрямую.

160 160 

161Чтобы вывести список всех настроенных subagents из командной строки без открытия [представления агента](/ru/agent-view), передайте выходные данные `claude agents`. Например, `claude agents | cat` выводит агентов, сгруппированных по источнику, и указывает, какие переопределены определениями с более высоким приоритетом.

162 

163### Выберите область subagent161### Выберите область subagent

164 162 

165Subagents — это файлы Markdown с YAML frontmatter. Сохраняйте их в разных местах в зависимости от области. Когда несколько subagents имеют одно и то же имя, выигрывает местоположение с более высоким приоритетом.163Subagents — это файлы Markdown с YAML frontmatter. Сохраняйте их в разных местах в зависимости от области. Когда несколько subagents имеют одно и то же имя, выигрывает местоположение с более высоким приоритетом.


178 176 

179**User subagents** (`~/.claude/agents/`) — это личные subagents, доступные во всех ваших проектах.177**User subagents** (`~/.claude/agents/`) — это личные subagents, доступные во всех ваших проектах.

180 178 

179Claude Code сканирует `.claude/agents/` и `~/.claude/agents/` рекурсивно, поэтому вы можете организовать определения в подпапки, такие как `agents/review/` или `agents/research/`. Путь подпапки не влияет на то, как идентифицируется или вызывается subagent, потому что идентичность происходит только из поля `name` frontmatter. Сохраняйте значения `name` уникальными по всему дереву: если два файла в одной области объявляют одно и то же имя, Claude Code сохраняет один и отбрасывает другой без предупреждения.

180 

181Директории `agents/` plugin также сканируются рекурсивно. В отличие от областей проекта и пользователя, подпапка внутри директории `agents/` plugin становится частью [scoped identifier](#invoke-subagents-explicitly): файл в `agents/review/security.md` в plugin `my-plugin` регистрируется как `my-plugin:review:security`.

182 

181**CLI-определённые subagents** передаются как JSON при запуске Claude Code. Они существуют только для этой сессии и не сохраняются на диск, что делает их полезными для быстрого тестирования или скриптов автоматизации. Вы можете определить несколько subagents в одном вызове `--agents`:183**CLI-определённые subagents** передаются как JSON при запуске Claude Code. Они существуют только для этой сессии и не сохраняются на диск, что делает их полезными для быстрого тестирования или скриптов автоматизации. Вы можете определить несколько subagents в одном вызове `--agents`:

182 184 

183<Tabs>185<Tabs>


638 640 

639Ваше полное сообщение по-прежнему идёт Claude, который пишет приглашение задачи subagent на основе того, что вы попросили. @-упоминание контролирует, какой subagent Claude вызывает, а не какое приглашение он получает.641Ваше полное сообщение по-прежнему идёт Claude, который пишет приглашение задачи subagent на основе того, что вы попросили. @-упоминание контролирует, какой subagent Claude вызывает, а не какое приглашение он получает.

640 642 

641Subagents, предоставленные включённым [plugin](/ru/plugins), появляются в автодополнении как `<plugin-name>:<agent-name>`. Именованные фоновые subagents, в настоящее время работающие в сессии, также появляются в автодополнении, показывая их статус рядом с именем. Вы также можете ввести упоминание вручную без использования средства выбора: `@agent-<name>` для локальных subagents или `@agent-<plugin-name>:<agent-name>` для plugin subagents.643Subagents, предоставленные включённым [plugin](/ru/plugins), появляются в автодополнении под их именем с областью видимости, например `my-plugin:code-reviewer` или `my-plugin:review:security`, когда plugin [организует агентов в подпапки](#choose-the-subagent-scope). Именованные фоновые subagents, в настоящее время работающие в сессии, также появляются в автодополнении, показывая их статус рядом с именем. Вы также можете ввести упоминание вручную без использования средства выбора: `@agent-<name>` для локальных subagents или `@agent-` с последующим именем с областью видимости для plugin subagents, например `@agent-my-plugin:code-reviewer`.

642 644 

643**Запустите всю сессию как subagent.** Передайте [`--agent <name>`](/ru/cli-reference) для запуска сессии, где основной поток сам принимает системное приглашение, ограничения инструментов и модель этого subagent:645**Запустите всю сессию как subagent.** Передайте [`--agent <name>`](/ru/cli-reference) для запуска сессии, где основной поток сам принимает системное приглашение, ограничения инструментов и модель этого subagent:

644 646 


650 652 

651Это работает с встроенными и пользовательскими subagents, и выбор сохраняется при возобновлении сессии.653Это работает с встроенными и пользовательскими subagents, и выбор сохраняется при возобновлении сессии.

652 654 

653Для plugin-предоставленного subagent передайте имя с областью: `claude --agent <plugin-name>:<agent-name>`.655Для plugin-предоставленного subagent передайте имя с областью видимости: `claude --agent <plugin-name>:<agent-name>`. Если plugin размещает агента в подпапке своей директории `agents/`, включите подпапку в имя с областью видимости, например `claude --agent my-plugin:review:security`.

654 656 

655Чтобы сделать это по умолчанию для каждой сессии в проекте, установите `agent` в `.claude/settings.json`:657Чтобы сделать это по умолчанию для каждой сессии в проекте, установите `agent` в `.claude/settings.json`:

656 658 

Details

16 16 

17Голосовой ввод передает вашу записанную речь на серверы Anthropic для транскрибирования. Аудио не обрабатывается локально. Сервис преобразования речи в текст доступен только при аутентификации с помощью учетной записи Claude.ai и недоступен, когда Claude Code настроен на использование ключа Anthropic API напрямую, Amazon Bedrock, Google Vertex AI или Microsoft Foundry. Транскрибирование не потребляет сообщения Claude или токены и не учитывается в пределах, показанных в `/usage`. См. [использование данных](/ru/data-usage), чтобы узнать, как Anthropic обрабатывает ваши данные.17Голосовой ввод передает вашу записанную речь на серверы Anthropic для транскрибирования. Аудио не обрабатывается локально. Сервис преобразования речи в текст доступен только при аутентификации с помощью учетной записи Claude.ai и недоступен, когда Claude Code настроен на использование ключа Anthropic API напрямую, Amazon Bedrock, Google Vertex AI или Microsoft Foundry. Транскрибирование не потребляет сообщения Claude или токены и не учитывается в пределах, показанных в `/usage`. См. [использование данных](/ru/data-usage), чтобы узнать, как Anthropic обрабатывает ваши данные.

18 18 

19Голосовой ввод также требует локального доступа к микрофону, поэтому он не работает в удаленных окружениях, таких как [Claude Code в веб-браузере](/ru/claude-code-on-the-web) или сеансы SSH. В WSL голосовой ввод требует WSLg для доступа к аудио, который включен в WSL2 на Windows 11. На Windows 10 или WSL1 запустите Claude Code в собственной Windows.19Голосовой ввод также требует локального доступа к микрофону, поэтому он не работает в удаленных окружениях, таких как [Claude Code в веб-браузере](/ru/claude-code-on-the-web) или сеансы SSH. В WSL голосовой ввод требует WSLg для доступа к аудио. WSLg включен в WSL2 при установке из Microsoft Store на Windows 10 или 11. Если WSLg недоступен, например на WSL1, запустите Claude Code в собственной Windows.

20 20 

21Запись аудио использует встроенный собственный модуль на macOS, Linux и Windows. На Linux, если собственный модуль не может загрузиться, Claude Code переходит на `arecord` из ALSA utils или `rec` из SoX. Если ни один из них недоступен, `/voice` выводит команду установки для вашего менеджера пакетов.21Запись аудио использует встроенный собственный модуль на macOS, Linux и Windows. На Linux, если собственный модуль не может загрузиться, Claude Code переходит на `arecord` из ALSA utils или `rec` из SoX. Если ни один из них недоступен, `/voice` выводит команду установки для вашего менеджера пакетов.

22 22 


51}51}

52```52```

53 53 

54Пока голосовой ввод включен, нижний колонтитул ввода показывает подсказку `hold Space to speak` (удерживайте пробел для речи), когда запрос пуст. Текст подсказки одинаков в обоих режимах и не отображается, если у вас настроена [пользовательская строка состояния](/ru/statusline).54Пока голосовой ввод включен, нижний колонтитул ввода показывает подсказку `hold Space to speak` (удерживайте пробел для речи), когда запрос пуст. Подсказка отражает ваше текущее сочетание клавиш `voice:pushToTalk` и обновляется, если вы [переназначите клавишу диктовки](#rebind-the-dictation-key). Текст подсказки одинаков в обоих режимах и не отображается, если у вас настроена [пользовательская строка состояния](/ru/statusline).

55 55 

56Транскрибирование настроено для словаря кодирования в обоих режимах. Распространенные термины разработки, такие как `regex`, `OAuth`, `JSON` и `localhost`, распознаются правильно, а название вашего текущего проекта и имя ветки git автоматически добавляются как подсказки распознавания.56Транскрибирование настроено для словаря кодирования в обоих режимах. Распространенные термины разработки, такие как `regex`, `OAuth`, `JSON` и `localhost`, распознаются правильно, а название вашего текущего проекта и имя ветки git автоматически добавляются как подсказки распознавания.

57 57 


152 152 

153Распространенные проблемы, когда голосовой ввод не активируется или не записывает:153Распространенные проблемы, когда голосовой ввод не активируется или не записывает:

154 154 

155* **`Voice mode requires a Claude.ai account`** (Голосовой режим требует учетной записи Claude.ai): вы аутентифицированы с помощью ключа API или стороннего поставщика. Запустите `/login` для входа с помощью учетной записи Claude.ai.155* **`Voice mode requires a Claude.ai account`**: вы аутентифицированы с помощью ключа API или стороннего поставщика. Запустите `/login` для входа с помощью учетной записи Claude.ai.

156* **`Microphone access is denied`** (Доступ к микрофону запрещен): предоставьте разрешение микрофона вашему терминалу в системных параметрах. На macOS перейдите в System Settings → Privacy & Security → Microphone и включите приложение вашего терминала, затем запустите `/voice` снова. На Windows перейдите в Settings → Privacy & security → Microphone и включите доступ к микрофону для приложений рабочего стола, затем запустите `/voice` снова. Если ваш терминал не указан в параметрах macOS Microphone, см. [Терминал не указан в параметрах macOS Microphone](#terminal-not-listed-in-macos-microphone-settings).156* **`Microphone access is denied`**: предоставьте разрешение микрофона вашему терминалу в системных параметрах. На macOS перейдите в System Settings → Privacy & Security → Microphone и включите приложение вашего терминала, затем запустите `/voice` снова. На Windows перейдите в Settings → Privacy & security → Microphone и включите доступ к микрофону для приложений рабочего стола, затем запустите `/voice` снова. Если ваш терминал не указан в параметрах macOS Microphone, см. [Терминал не указан в параметрах macOS Microphone](#terminal-not-listed-in-macos-microphone-settings).

157* **`No audio recording tool found`** (Инструмент записи аудио не найден) на Linux: собственный модуль аудио не может загрузиться и резервный вариант не установлен. Установите SoX с помощью команды, показанной в сообщении об ошибке, например `sudo apt-get install sox`.157* **`No audio recording tool found`** на Linux: собственный модуль аудио не может загрузиться и резервный вариант не установлен. Установите SoX с помощью команды, показанной в сообщении об ошибке, например `sudo apt-get install sox`.

158* **`Voice mode could not find a working audio recorder in WSL`**: WSLg маршрутизирует аудио через PulseAudio вместо устройства ALSA, поэтому SoX требует явной установки его бэкенда PulseAudio. Запустите `sudo apt install sox libsox-fmt-pulse`. Установка только `sox` подтягивает бэкенд ALSA, который не может записывать на WSL, потому что нет устройства `/dev/snd`.

159* **`Voice input is failing repeatedly and has been paused`**: голосовой ввод столкнулся с несколькими сбоями при запуске подряд и прекратил попытки новых сеансов до тех пор, пока один не будет успешным. Это обычно означает, что микрофон или звуковой стек на этом хосте не может захватить аудио, например безголовый сервер, удаленная оболочка без передачи аудио или запрещенное разрешение микрофона. Подтвердите работающее устройство ввода, исправьте основную причину из записей выше, затем снова активируйте голосовой ввод.

158* **Ничего не происходит при удержании `Space` в режиме удержания**: смотрите на поле ввода запроса, пока вы удерживаете. Если пробелы продолжают накапливаться, голосовой ввод, вероятно, отключен; запустите `/voice hold` для включения. Если появляется только один или два пробела, а затем ничего, голосовой ввод включен, но обнаружение удержания не срабатывает. Обнаружение удержания требует, чтобы ваш терминал отправлял события повтора клавиш, поэтому он не может обнаружить удерживаемую клавишу, если повтор клавиш отключен на уровне ОС. Переключитесь на режим нажатия с помощью `/voice tap`, чтобы избежать требования повтора клавиш.160* **Ничего не происходит при удержании `Space` в режиме удержания**: смотрите на поле ввода запроса, пока вы удерживаете. Если пробелы продолжают накапливаться, голосовой ввод, вероятно, отключен; запустите `/voice hold` для включения. Если появляется только один или два пробела, а затем ничего, голосовой ввод включен, но обнаружение удержания не срабатывает. Обнаружение удержания требует, чтобы ваш терминал отправлял события повтора клавиш, поэтому он не может обнаружить удерживаемую клавишу, если повтор клавиш отключен на уровне ОС. Переключитесь на режим нажатия с помощью `/voice tap`, чтобы избежать требования повтора клавиш.

159* **Нажатие `Space` печатает пробел вместо записи в режиме нажатия**: первое нажатие начинает запись только при пустом поле ввода запроса. Сначала очистите ввод или проверьте, что вы находитесь в режиме нажатия, запустив `/voice tap`.161* **Нажатие `Space` печатает пробел вместо записи в режиме нажатия**: первое нажатие начинает запись только при пустом поле ввода запроса. Сначала очистите ввод или проверьте, что вы находитесь в режиме нажатия, запустив `/voice tap`.

160* **`No audio detected from microphone`** (Аудио не обнаружено с микрофона): запись началась, но захватила молчание. Подтвердите, что правильное устройство ввода установлено по умолчанию в системе и что его уровень ввода не отключен и не близок к нулю. На Windows откройте Settings → System → Sound → Input и выберите ваш микрофон. На macOS откройте System Settings → Sound → Input.162* **`No audio detected from microphone`**: запись началась, но захватила молчание. Подтвердите, что правильное устройство ввода установлено по умолчанию в системе и что его уровень ввода не отключен и не близок к нулю. На Windows откройте Settings → System → Sound → Input и выберите ваш микрофон. На macOS откройте System Settings → Sound → Input.

161* **`No speech detected`** (Речь не обнаружена): аудио достигло сервиса транскрибирования, но слова не были распознаны. Говорите ближе к микрофону, уменьшите фоновый шум и подтвердите, что ваш [язык диктовки](#change-the-dictation-language) соответствует языку, на котором вы говорите.163* **`No speech detected`**: аудио достигло сервиса транскрибирования, но слова не были распознаны. Говорите ближе к микрофону, уменьшите фоновый шум и подтвердите, что ваш [язык диктовки](#change-the-dictation-language) соответствует языку, на котором вы говорите.

162* **Транскрибирование искажено или на неправильном языке**: диктовка по умолчанию использует английский язык. Если вы диктуете на другом языке, установите его в `/config` сначала. См. [Изменение языка диктовки](#change-the-dictation-language).164* **Транскрибирование искажено или на неправильном языке**: диктовка по умолчанию использует английский язык. Если вы диктуете на другом языке, установите его в `/config` сначала. См. [Изменение языка диктовки](#change-the-dictation-language).

163 165 

164### Терминал не указан в параметрах macOS Microphone166### Терминал не указан в параметрах macOS Microphone