> ## Documentation Index
> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Справочник инструментов

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

Claude Code имеет доступ к набору встроенных инструментов, которые помогают ему понять и изменить вашу кодовую базу. Названия инструментов — это точные строки, которые вы используете в [правилах разрешений](/ru/permissions#tool-specific-permission-rules), [списках инструментов subagent](/ru/sub-agents) и [сопоставителях hooks](/ru/hooks). Чтобы полностью отключить инструмент, добавьте его имя в массив `deny` в [параметрах разрешений](/ru/permissions#tool-specific-permission-rules).

Чтобы добавить пользовательские инструменты, подключите [MCP server](/ru/mcp). Чтобы расширить Claude с помощью переиспользуемых рабочих процессов на основе подсказок, напишите [skill](/ru/skills), который работает через существующий инструмент `Skill` вместо добавления новой записи инструмента.

| Инструмент             | Описание                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | Требуется разрешение |
| :--------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------- |
| `Agent`                | Создает [subagent](/ru/sub-agents) с собственным контекстным окном для выполнения задачи. См. [поведение инструмента Agent](#agent-tool-behavior)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | Нет                  |
| `Artifact`             | Публикует HTML или Markdown файл как [artifact](/ru/artifacts): приватную интерактивную страницу на claude.ai, которую вы можете делиться внутри вашей организации. {/* plan-availability: feature=artifacts plans=team,enterprise providers=anthropic */}Требует план Team или Enterprise и аутентификацию `/login`; см. [Доступность](/ru/artifacts#availability)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | Да                   |
| `AskUserQuestion`      | Задает вопросы с несколькими вариантами ответов для сбора требований или уточнения неоднозначности                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | Нет                  |
| `Bash`                 | Выполняет команды оболочки в вашей среде. См. [поведение инструмента Bash](#bash-tool-behavior)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | Да                   |
| `CronCreate`           | Планирует повторяющуюся или одноразовую подсказку в текущем сеансе. Задачи привязаны к сеансу и восстанавливаются при `--resume` или `--continue`, если не истекли. См. [запланированные задачи](/ru/scheduled-tasks)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | Нет                  |
| `CronDelete`           | Отменяет запланированную задачу по ID                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | Нет                  |
| `CronList`             | Выводит список всех запланированных задач в сеансе                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | Нет                  |
| `Edit`                 | Вносит целевые изменения в конкретные файлы. См. [поведение инструмента Edit](#edit-tool-behavior)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | Да                   |
| `EnterPlanMode`        | Переключается в режим плана для разработки подхода перед кодированием                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | Нет                  |
| `EnterWorktree`        | Создает изолированный [git worktree](/ru/worktrees) и переключается в него. Передайте `path` для переключения в существующий worktree текущего репозитория вместо создания нового. Из сеанса worktree или из subagent с закрепленным рабочим каталогом, например [`isolation: worktree`](/ru/sub-agents#supported-frontmatter-fields), доступна только форма `path`, и целевой путь должен находиться под `.claude/worktrees/`                                                                                                                                                                                                                                                                                                                                                                                                                           | Нет                  |
| `ExitPlanMode`         | Представляет план для утверждения и выходит из режима плана                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | Да                   |
| `ExitWorktree`         | Выходит из сеанса worktree и возвращается в исходный каталог. Недоступно для subagents, которые уже работают в собственном рабочем каталоге, например с [`isolation: worktree`](/ru/sub-agents#supported-frontmatter-fields)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | Нет                  |
| `Glob`                 | Находит файлы на основе сопоставления шаблонов. См. [поведение инструмента Glob](#glob-tool-behavior)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | Нет                  |
| `Grep`                 | Ищет шаблоны в содержимом файлов. См. [поведение инструмента Grep](#grep-tool-behavior)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | Нет                  |
| `ListMcpResourcesTool` | Выводит список ресурсов, предоставляемых подключенными [MCP servers](/ru/mcp)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | Нет                  |
| `LSP`                  | Интеллект кода через языковые серверы: переход к определениям, поиск ссылок, сообщение об ошибках типов и предупреждениях. См. [поведение инструмента LSP](#lsp-tool-behavior)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | Нет                  |
| `Monitor`              | Запускает команду в фоне и передает каждую строку вывода обратно Claude, чтобы он мог реагировать на записи журнала, изменения файлов или опрашиваемый статус в середине разговора. Может также открыть WebSocket и рассматривать каждое входящее сообщение как событие. См. [инструмент Monitor](#monitor-tool)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | Да                   |
| `NotebookEdit`         | Изменяет ячейки Jupyter notebook. См. [поведение инструмента NotebookEdit](#notebookedit-tool-behavior)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | Да                   |
| `PowerShell`           | Выполняет команды PowerShell изначально. См. [инструмент PowerShell](#powershell-tool) для доступности                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | Да                   |
| `PushNotification`     | Отправляет уведомление на рабочий стол и push-уведомление на телефон при подключении [Remote Control](/ru/remote-control), чтобы долгоживущая задача или [запланированная задача](/ru/scheduled-tasks) могла вас достичь, когда вы отойдете. {/* plan-availability: feature=push-notifications providers=anthropic */}Доставка push-уведомлений осуществляется через инфраструктуру, размещенную на Anthropic, которая недоступна из Amazon Bedrock, Google Vertex AI или Microsoft Foundry                                                                                                                                                                                                                                                                                                                                                              | Нет                  |
| `Read`                 | Читает содержимое файлов. См. [поведение инструмента Read](#read-tool-behavior)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | Нет                  |
| `ReadMcpResourceTool`  | Читает конкретный ресурс MCP по URI                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | Нет                  |
| `RemoteTrigger`        | Создает, обновляет, запускает и выводит список [Routines](/ru/routines) на claude.ai. Поддерживает команду `/schedule`. {/* plan-availability: feature=routines plans=pro,max,team,enterprise providers=anthropic */}Routines находятся на claude.ai и требуют план Pro, Max, Team или Enterprise, поэтому этот инструмент недоступен из Amazon Bedrock, Google Vertex AI или Microsoft Foundry                                                                                                                                                                                                                                                                                                                                                                                                                                                          | Нет                  |
| `ReportFindings`       | Сообщает о результатах проверки кода как структурированный список с файлом, резюме и сценарием сбоя для каждого результата, чтобы Claude Code мог их отобразить вместо вывода в виде текста. Claude вызывает его, когда активные инструкции проверки кода говорят ему это сделать. {/* min-version: 2.1.196 */}Требует Claude Code v2.1.196 или позже                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | Нет                  |
| `ScheduleWakeup`       | Переносит следующую итерацию [самостоятельного `/loop`](/ru/scheduled-tasks#let-claude-choose-the-interval). Claude вызывает это в конце каждой итерации, чтобы выбрать, когда запустится следующая, между одной минутой и одним часом; вы не вызываете это напрямую. Ожидающее пробуждение появляется в `session_crons` в [входе Stop hook](/ru/hooks#stop-input). {/* plan-availability: feature=loop-dynamic providers=anthropic */}Недоступно на Amazon Bedrock, Google Vertex AI или Microsoft Foundry, где `/loop` подсказка без интервала работает по фиксированному расписанию                                                                                                                                                                                                                                                                   | Нет                  |
| `SendMessage`          | Отправляет сообщение члену [команды агентов](/ru/agent-teams), или [возобновляет subagent](/ru/sub-agents#resume-subagents) по его ID агента. Остановленные subagents автоматически возобновляются в фоне. Структурированные сообщения протокола команды требуют команды агентов                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | Нет                  |
| `SendUserFile`         | Отправляет файлы из сеанса вам с необязательной подписью, чтобы созданный отчет, диаграмма, снимок экрана или построенный артефакт достигли вашего устройства вместо того, чтобы только упоминаться в стенограмме. {/* min-version: 2.1.196 */}Начиная с версии 2.1.196, необязательный ввод `display` управляет представлением: `render` открывает файл встроенным образом в клиенте, `attach` показывает только карточку загрузки, и когда не установлено, клиент решает по типу файла. Доступно при подключении клиента [Remote Control](/ru/remote-control) или когда сеанс работает в управляемой облачной среде, такой как [Claude Code в веб-версии](/ru/claude-code-on-the-web). Доставка осуществляется через инфраструктуру, размещенную на Anthropic, поэтому инструмент недоступен на Amazon Bedrock, Google Vertex AI или Microsoft Foundry | Нет                  |
| `ShareOnboardingGuide` | {/* plan-availability: feature=onboarding-guide-share plans=pro,max,team,enterprise providers=anthropic */}Загружает `ONBOARDING.md` и возвращает ссылку для общего доступа, которую товарищи по команде могут открыть в Claude Code. Вызывается из `/team-onboarding` после написания руководства. Доступно для подписчиков claude.ai на планах Pro, Max, Team и Enterprise                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | Да                   |
| `Skill`                | Выполняет [skill](/ru/skills#control-who-invokes-a-skill) в основном разговоре                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | Да                   |
| `TaskCreate`           | Создает новую задачу в списке задач                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | Нет                  |
| `TaskGet`              | Получает полные сведения для конкретной задачи                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | Нет                  |
| `TaskList`             | Выводит список всех задач с их текущим статусом                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | Нет                  |
| `TaskOutput`           | (Устарело) Получает вывод из фоновой задачи. Предпочитайте `Read` на пути к файлу вывода задачи                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | Нет                  |
| `TaskStop`             | Завершает выполняющуюся фоновую задачу по ID                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | Нет                  |
| `TaskUpdate`           | Обновляет статус задачи, зависимости, сведения или удаляет задачи                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | Нет                  |
| `TodoWrite`            | {/* min-version: 2.1.142 */}Управляет контрольным списком задач сеанса. Отключено по умолчанию начиная с версии 2.1.142 в пользу `TaskCreate`, `TaskGet`, `TaskList` и `TaskUpdate`. Установите `CLAUDE_CODE_ENABLE_TASKS=0` для повторного включения                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | Нет                  |
| `ToolSearch`           | Ищет и загружает отложенные инструменты, когда включен [поиск инструментов](/ru/mcp#scale-with-mcp-tool-search)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | Нет                  |
| `WaitForMcpServers`    | {/* min-version: 2.1.142 */}Ожидает один или несколько [MCP servers](/ru/mcp), которые все еще подключаются в фоне, чтобы запрос мог использовать их инструменты без перезагрузки сеанса. Claude вызывает его, когда требуемый сервер еще не подключен. Появляется только когда [поиск инструментов](/ru/mcp#scale-with-mcp-tool-search) отключен, так как `ToolSearch` обрабатывает ожидание, когда он включен                                                                                                                                                                                                                                                                                                                                                                                                                                          | Нет                  |
| `WebFetch`             | Получает содержимое с указанного URL. См. [поведение инструмента WebFetch](#webfetch-tool-behavior)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | Да                   |
| `WebSearch`            | Выполняет веб-поиск. См. [поведение инструмента WebSearch](#websearch-tool-behavior)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     | Да                   |
| `Workflow`             | Запускает [динамический рабочий процесс](/ru/workflows): скрипт, который организует множество subagents в фоне и возвращает один консолидированный результат                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | Да                   |
| `Write`                | Создает или перезаписывает файлы. См. [поведение инструмента Write](#write-tool-behavior)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | Да                   |

<h2 id="configure-tools-with-permission-rules-and-hooks">
  Настройка инструментов с помощью правил разрешений и hooks
</h2>

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

* в [`permissions.allow` и `permissions.deny`](/ru/settings#available-settings) в параметрах и интерфейсе `/permissions`
* в флагах CLI [`--allowedTools` и `--disallowedTools`](/ru/cli-reference)
* в опциях [`allowedTools` и `disallowedTools`](/ru/agent-sdk/permissions#allow-and-deny-rules) Agent SDK
* в [frontmatter `tools` или `disallowedTools`](/ru/sub-agents#supported-frontmatter-fields) subagent
* в [frontmatter `allowed-tools`](/ru/skills#frontmatter-reference) skill
* в [условии `if`](/ru/hooks-guide#filter-by-tool-name-and-arguments-with-the-if-field) hook

Все они принимают один и тот же формат правила, `ToolName(specifier)`. Спецификатор зависит от инструмента, и несколько инструментов используют один формат:

| Формат правила                 | Применяется к             | Детали                                                                         |
| :----------------------------- | :------------------------ | :----------------------------------------------------------------------------- |
| `Bash(npm run *)`              | Bash, Monitor             | [Сопоставление шаблонов команд](/ru/permissions#bash)                          |
| `PowerShell(Get-ChildItem *)`  | PowerShell                | [Сопоставление шаблонов команд](/ru/permissions#powershell)                    |
| `Read(~/secrets/**)`           | Read, Grep, Glob, LSP     | [Сопоставление шаблонов путей](/ru/permissions#read-and-edit)                  |
| `Edit(/src/**)`                | Edit, Write, NotebookEdit | [Сопоставление шаблонов путей](/ru/permissions#read-and-edit)                  |
| `Skill(deploy *)`              | Skill                     | [Сопоставление имени skill](/ru/skills#restrict-claude%E2%80%99s-skill-access) |
| `Agent(Explore)`               | Agent                     | [Сопоставление типа subagent](/ru/permissions#agent-subagents)                 |
| `WebFetch(domain:example.com)` | WebFetch                  | [Сопоставление домена](/ru/permissions#webfetch)                               |
| `WebSearch`                    | WebSearch                 | Без спецификатора; разрешить или запретить инструмент в целом                  |

Инструменты, не указанные здесь, такие как `ExitPlanMode` или `ShareOnboardingGuide`, принимают только простое имя инструмента без спецификатора.

Правило разрешения `Edit(...)` также предоставляет доступ на чтение к тому же пути, поэтому вам не нужно соответствующее правило `Read(...)`.

Поля `matcher` Hook используют простые названия инструментов, а не формат с скобками. См. [шаблоны сопоставления](/ru/hooks#matcher-patterns) для правил сопоставления. Для названий полей, которые каждый инструмент передает в `tool_input` в hooks, см. [справочник входных данных PreToolUse](/ru/hooks#pretooluse-input).

<h2 id="agent-tool-behavior">
  Поведение инструмента Agent
</h2>

Инструмент Agent создает subagent в отдельном контекстном окне. Subagent самостоятельно выполняет свою задачу, а затем возвращает один текстовый результат в родительский разговор. Родитель не видит промежуточные вызовы инструментов или выходные данные subagent, только этот финальный результат. Чтобы ограничить количество ходов, которые выполняет subagent, установите `maxTurns` в [определении subagent](/ru/sub-agents#supported-frontmatter-fields).

Тот же инструмент Agent также запускает [forked subagents](/ru/sub-agents#fork-the-current-conversation) при включении режима fork. Fork наследует полный родительский разговор вместо начала с нуля, всегда работает в фоне и по-прежнему отображает подсказки разрешений в вашем терминале. Остальная часть этого раздела описывает именованные subagents.

Какие инструменты может использовать именованный subagent, зависит от полей `tools` и `disallowedTools` в [определении subagent](/ru/sub-agents):

* **Ни одно поле не установлено**: subagent наследует каждый инструмент, доступный родителю.
* **Только `tools`**: subagent получает только перечисленные инструменты.
* **Только `disallowedTools`**: subagent получает каждый инструмент родителя, кроме перечисленных.
* **Оба установлены**: `disallowedTools` имеет приоритет. Инструмент, указанный в обоих, удаляется.

Запуск subagent сам по себе не запрашивает разрешение. Вызовы инструментов subagent проверяются против ваших правил разрешений по мере его работы:

* **Foreground subagents** показывают те же подсказки разрешений, которые вы видели бы в основном разговоре, в момент каждого вызова инструмента.
* **Background subagents** {/* min-version: 2.1.186 */}отображают подсказки разрешений в вашем основном сеансе начиная с версии 2.1.186. Подсказка указывает, какой subagent запрашивает разрешение, и нажатие Esc отклоняет этот вызов инструмента без остановки subagent. До версии 2.1.186 background subagents автоматически отклоняли любой вызов инструмента, который иначе запросил бы подсказку, и продолжали работу без этого инструмента.

Чтобы ограничить, что может достичь subagent с самого начала, сузьте его поле `tools`, оставьте Bash вне списка или установите правила deny в ваших параметрах, как описано в [Control subagent capabilities](/ru/sub-agents#control-subagent-capabilities). Для получения дополнительной информации о выборе между foreground и background см. [Run subagents in foreground or background](/ru/sub-agents#run-subagents-in-foreground-or-background).

<h2 id="bash-tool-behavior">
  Поведение инструмента Bash
</h2>

Инструмент Bash запускает каждую команду в отдельном процессе со следующим поведением сохранения:

* Когда Claude запускает `cd` в основном сеансе, новый рабочий каталог переносится в более поздние команды Bash, пока он остается внутри каталога проекта или [дополнительного рабочего каталога](/ru/permissions#working-directories), который вы добавили с помощью `--add-dir`, `/add-dir` или `additionalDirectories` в параметрах. Сеансы subagent никогда не переносят изменения рабочего каталога.
  * Если `cd` приводит вне этих каталогов, Claude Code сбрасывает в каталог проекта и добавляет `Shell cwd was reset to <dir>` к результату инструмента.
  * Чтобы отключить этот перенос, чтобы каждая команда Bash начиналась в каталоге проекта, установите `CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR=1`.
* Переменные окружения не сохраняются. `export` в одной команде не будет доступен в следующей.
* Псевдонимы и функции оболочки, определенные в файле запуска оболочки, доступны. При запуске сеанса Claude Code загружает `~/.zshrc`, `~/.bashrc` или `~/.profile` в зависимости от вашей оболочки, захватывает полученные псевдонимы, функции и параметры оболочки и применяет их к каждой команде Bash.

Активируйте вашу virtualenv или conda среду перед запуском Claude Code. Чтобы переменные окружения сохранялись между командами Bash, установите [`CLAUDE_ENV_FILE`](/ru/env-vars) на скрипт оболочки перед запуском Claude Code или используйте [hook SessionStart](/ru/hooks#persist-environment-variables) для динамического заполнения.

Два ограничения ограничивают каждую команду:

* **Timeout**: два минуты по умолчанию. Claude может запросить до 10 минут на команду с параметром `timeout`. Переопределите значение по умолчанию и потолок с помощью [`BASH_DEFAULT_TIMEOUT_MS` и `BASH_MAX_TIMEOUT_MS`](/ru/env-vars).
* **Длина вывода**: 30 000 символов по умолчанию. Когда команда производит больше, Claude Code сохраняет полный вывод в файл в каталоге сеанса и дает Claude путь к файлу плюс короткий предпросмотр с начала. Claude читает или ищет этот файл, когда ему нужен остаток. Увеличьте лимит с помощью [`BASH_MAX_OUTPUT_LENGTH`](/ru/env-vars), до жесткого потолка в 150 000 символов.

Для долгоживущих процессов, таких как dev серверы или watch сборки, Claude может установить `run_in_background: true` для запуска команды как фоновой задачи и продолжения работы во время ее выполнения. Выводите список и останавливайте фоновые задачи с помощью `/tasks`.

<h2 id="edit-tool-behavior">
  Поведение инструмента Edit
</h2>

Инструмент Edit выполняет точную замену строк. Он принимает `old_string` и `new_string` и заменяет первый на второй. Он не использует regex или нечеткое сопоставление.

Три проверки должны пройти для применения редактирования:

* **Read-before-edit**: Claude должен был прочитать файл в текущем разговоре, и файл не должен был измениться на диске с момента этого чтения. Эта проверка выполняется первой, перед любым сопоставлением строк.
* **Match**: `old_string` должен появиться в файле точно так, как написано. Даже один символ пробела или различия в отступе достаточно, чтобы пропустить.
* **Uniqueness**: `old_string` должен появиться ровно один раз. Когда он появляется более одного раза, Claude либо предоставляет более длинную строку с достаточным окружающим контекстом для определения одного вхождения, либо устанавливает `replace_all: true` для замены всех.

Просмотр файла с помощью Bash также удовлетворяет требованию read-before-edit, когда команда — это `cat`, `head`, `tail`, `sed -n 'X,Yp'`, `grep`, `egrep` или `fgrep` на одном файле без pipes или redirects. Piped вывод и другие команды Bash не считаются, и Claude должен использовать Read перед редактированием в этих случаях.

Это влияет только на приемлемость редактирования, а не на разрешения. [Правила deny Read и Edit](/ru/permissions#tool-specific-permission-rules) также применяются к командам файлов, которые Claude Code распознает в Bash, таким как `cat`, `head`, `tail`, `sed` и `grep`, но не к произвольным подпроцессам, которые косвенно читают или записывают файлы, такие как скрипт Python или Node, который открывает файлы сам. Набор команд, распознаваемых для правил deny, не совпадает со списком read-before-edit выше: например, `egrep` и `fgrep` считаются для read-before-edit, но не проверяются против правил deny Read. Для принудительного применения на уровне ОС, охватывающего каждый процесс, [включите sandbox](/ru/sandboxing).

<h2 id="glob-tool-behavior">
  Поведение инструмента Glob
</h2>

Инструмент Glob находит файлы по шаблону имени. Он поддерживает стандартный синтаксис glob, включая `**` для рекурсивного сопоставления каталогов:

* `**/*.js` соответствует всем файлам `.js` на любой глубине
* `src/**/*.ts` соответствует всем файлам `.ts` под `src/`
* `*.{json,yaml}` соответствует файлам `.json` и `.yaml` в текущем каталоге

Результаты отсортированы по времени изменения и ограничены 100 файлами. Если лимит достигнут, Claude видит флаг усечения в результате и может сузить шаблон.

Glob не соблюдает `.gitignore` по умолчанию, поэтому он находит файлы, игнорируемые git, наряду с отслеживаемыми. Это отличается от [Grep](#grep-tool-behavior), который пропускает файлы, игнорируемые git. Чтобы заставить Glob соблюдать `.gitignore`, установите `CLAUDE_CODE_GLOB_NO_IGNORE=false` перед запуском Claude Code.

<h2 id="grep-tool-behavior">
  Поведение инструмента Grep
</h2>

Инструмент Grep ищет шаблоны в содержимом файлов. Где [Glob](#glob-tool-behavior) находит файлы по имени, Grep находит строки внутри них.

Grep построен на [ripgrep](https://github.com/BurntSushi/ripgrep) и использует синтаксис regex ripgrep, а не POSIX grep. Шаблоны, которые включают метасимволы regex, нуждаются в экранировании. Например, поиск `interface{}` в коде Go требует шаблона `interface\{\}`.

Три режима вывода контролируют, что возвращается:

* `files_with_matches`: только пути к файлам, без содержимого строк. Это значение по умолчанию.
* `content`: соответствующие строки с номером файла и строки.
* `count`: количество совпадений на файл.

Claude может ограничить результаты по файлу с параметром `glob`, таким как `**/*.tsx`, или по языку с параметром `type`, таким как `py` или `rust`. По умолчанию шаблоны совпадают в одной строке. Claude может установить `multiline: true` для совпадения через границы строк.

Grep соблюдает `.gitignore`, поэтому файлы, игнорируемые git, пропускаются. Чтобы найти файл, игнорируемый git, Claude передает его путь напрямую.

<h2 id="lsp-tool-behavior">
  Поведение инструмента LSP
</h2>

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

* Переход к определению символа
* Поиск всех ссылок на символ
* Получение информации о типе в позиции
* Список символов в файле
* Поиск символа по имени во всей рабочей области
* Поиск реализаций интерфейса
* Трассировка иерархий вызовов

Инструмент неактивен до тех пор, пока вы не установите [плагин интеллекта кода](/ru/discover-plugins#code-intelligence) для вашего языка. Плагин содержит конфигурацию языкового сервера, и вы устанавливаете двоичный файл сервера отдельно.

<h2 id="monitor-tool">
  Инструмент Monitor
</h2>

<Note>
  Инструмент Monitor требует Claude Code версии 2.1.98 или более поздней.
</Note>

Инструмент Monitor позволяет Claude наблюдать что-то в фоне и реагировать при изменении, без паузы разговора. Попросите Claude:

* Отслеживать файл журнала и отмечать ошибки по мере их появления
* Опрашивать PR или задачу CI и сообщать при изменении статуса
* Наблюдать за каталогом на предмет изменений файлов
* Отслеживать вывод из любого долгоживущего скрипта, на который вы его указываете
* Подключиться к потоку WebSocket и сообщать каждое сообщение по мере его поступления

Для большинства наблюдений Claude пишет небольшой скрипт, запускает его в фоне и получает каждую строку вывода по мере ее поступления. Для сервера, который уже отправляет события, Claude может открыть [WebSocket](#websocket-source) вместо запуска скрипта.

Вы продолжаете работать в том же сеансе, и Claude вмешивается при возникновении события. Остановите монитор, попросив Claude отменить его или завершив сеанс.

Когда Monitor запускает команду, он использует те же [правила разрешений, что и Bash](/ru/permissions#tool-specific-permission-rules), поэтому шаблоны `allow` и `deny`, которые вы установили для Bash, применяются здесь также. [Источник WebSocket](#websocket-source) имеет собственное приглашение на одобрение.

Инструмент недоступен на Amazon Bedrock, Google Vertex AI или Microsoft Foundry. Он также недоступен, когда установлены `DISABLE_TELEMETRY` или `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`.

Плагины могут объявлять мониторы, которые запускаются автоматически при активации плагина, вместо того чтобы просить Claude запустить их. См. [мониторы плагинов](/ru/plugins-reference#monitors).

<h3 id="websocket-source">
  Источник WebSocket
</h3>

<Note>
  Источник WebSocket требует Claude Code версии 2.1.195 или более поздней.
</Note>

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

* **Текстовые сообщения**: каждое становится одним событием, даже если сообщение охватывает несколько строк.
* **Двоичные сообщения**: не передаются. Claude получает строку-заполнитель, такую как `[binary frame, 512 bytes]`.
* **Сообщения размером более 1 МиБ**: наблюдение завершается, поэтому подпишитесь на отфильтрованный поток, если он существует.
* **Закрытие сокета**: наблюдение завершается и Claude получает код закрытия.

Наблюдение WebSocket принимает входные данные `ws` вместо `command`, и один вызов Monitor не может объединять оба. Входные данные `ws` имеют два поля:

| Поле        | Обязательно | Описание                                                                                                                                                                 |
| :---------- | :---------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `url`       | Да          | Конечная точка для подключения. Должна быть URL `ws://` или `wss://` без встроенных учетных данных или пробелов, используя только символы ASCII                          |
| `protocols` | Нет         | Имена подпротоколов WebSocket для предложения во время рукопожатия. Каждая запись должна быть действительным токеном подпротокола, и список не может содержать дубликаты |

Входные данные `timeout_ms` и `persistent` ведут себя так же, как для команды: наблюдение завершается в крайний срок, если не установлен `persistent`, и `TaskStop` отменяет его раньше.

Открытие WebSocket запрашивает одобрение, и приглашение не предлагает возможность пропустить будущие приглашения для одного хоста.

Claude Code отклоняет URL-адреса, указывающие на приватный, link-local или адрес облачных метаданных, включая имена хостов, которые разрешаются в один. Он также отклоняет хосты в `sandbox.network.deniedDomains`, и когда [`allowManagedDomainsOnly`](/ru/settings#sandbox-settings) установлен в управляемых параметрах, любой хост вне управляемого списка разрешений.

<h2 id="notebookedit-tool-behavior">
  Поведение инструмента NotebookEdit
</h2>

NotebookEdit изменяет Jupyter notebook по одной ячейке за раз, нацеливаясь на ячейки по их `cell_id`. Он не выполняет замену строк по всему notebook так, как [Edit](#edit-tool-behavior) делает на простых файлах.

Три режима редактирования контролируют, что происходит с целевой ячейкой:

* `replace`: перезаписать источник ячейки. Это значение по умолчанию.
* `insert`: добавить новую ячейку после целевой. Без `cell_id` новая ячейка переходит в начало notebook. Требует установки `cell_type` на `code` или `markdown`.
* `delete`: удалить целевую ячейку.

Правила разрешений используют формат пути `Edit(...)`. Правило, такое как `Edit(notebooks/**)`, охватывает вызовы NotebookEdit на файлы в этом каталоге.

<h2 id="powershell-tool">
  Инструмент PowerShell
</h2>

Инструмент PowerShell позволяет Claude запускать команды PowerShell изначально. На Windows это означает, что команды выполняются в PowerShell вместо маршрутизации через Git Bash. На Windows без Git Bash инструмент включается автоматически. На Windows с установленным Git Bash инструмент развертывается постепенно. На Linux, macOS и WSL инструмент является добровольным.

<h3 id="enable-the-powershell-tool">
  Включение инструмента PowerShell
</h3>

Установите `CLAUDE_CODE_USE_POWERSHELL_TOOL=1` в вашей среде или в `settings.json`:

```json theme={null}
{
  "env": {
    "CLAUDE_CODE_USE_POWERSHELL_TOOL": "1"
  }
}
```

На Windows установите переменную на `0`, чтобы отказаться от развертывания. На Linux, macOS и WSL инструмент требует PowerShell 7 или более поздней версии: установите `pwsh` и убедитесь, что он находится в вашем `PATH`.

На Windows Claude Code автоматически обнаруживает `pwsh.exe` для PowerShell 7+ с резервным вариантом `powershell.exe` для PowerShell 5.1. Когда инструмент включен, Claude рассматривает PowerShell как основную оболочку. Инструмент Bash остается доступным для POSIX-скриптов при установленном Git Bash.

Claude Code запускает PowerShell с `-ExecutionPolicy Bypass` только в области процесса, поэтому скрипты `.ps1` и импорт модулей работают на стандартных установках Windows без изменения политики машины. Обход области процесса не переопределяет Group Policy `MachinePolicy` или `UserPolicy`, поэтому блокировки на уровне предприятия по-прежнему применяются. Чтобы соблюдать эффективную политику выполнения машины, установите `CLAUDE_CODE_POWERSHELL_RESPECT_EXECUTION_POLICY=1`.

<h3 id="shell-selection-in-settings-hooks-and-skills">
  Выбор оболочки в параметрах, hooks и skills
</h3>

Три дополнительных параметра контролируют, где используется PowerShell:

* `"defaultShell": "powershell"` в [`settings.json`](/ru/settings#available-settings): маршрутизирует интерактивные команды `!` через PowerShell. Требует включения инструмента PowerShell.
* `"shell": "powershell"` на отдельных [command hooks](/ru/hooks#command-hook-fields): запускает этот hook в PowerShell. Hooks запускают PowerShell напрямую, поэтому это работает независимо от `CLAUDE_CODE_USE_POWERSHELL_TOOL`.
* `shell: powershell` в [frontmatter skill](/ru/skills#frontmatter-reference): запускает блоки `` !`command` `` в PowerShell. Требует включения инструмента PowerShell.

Поведение сброса рабочего каталога основного сеанса, описанное в разделе инструмента Bash, применяется к командам PowerShell, включая переменную окружения `CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR`.

{/* min-version: 2.1.196 */}Начиная с версии 2.1.196, инструмент PowerShell соответствует обработке инструментом Bash кодов выхода поиска и diff. Код выхода 1 из `grep`, `egrep`, `fgrep` и `git grep` означает отсутствие совпадений, а код выхода 1 из `git diff` означает наличие различий, поэтому эти результаты не сообщаются Claude как ошибки команд.

<h3 id="preview-limitations">
  Ограничения предварительного просмотра
</h3>

Инструмент PowerShell имеет следующие известные ограничения во время предварительного просмотра:

* Профили PowerShell не загружаются
* На Windows sandboxing не поддерживается

<h2 id="read-tool-behavior">
  Поведение инструмента Read
</h2>

Инструмент Read принимает путь к файлу и возвращает содержимое с номерами строк. Claude инструктирован всегда передавать абсолютные пути.

По умолчанию Read возвращает файл с начала. Когда чтение всего файла превышает лимит токенов, Read возвращает первую страницу с уведомлением `PARTIAL view`, которое сообщает Claude, какую часть файла он получил, и как читать дальше с помощью `offset` и `limit`. Чтение, которое передает явный `offset` или `limit` и все еще превышает лимит токенов, возвращает ошибку.

Read обрабатывает несколько типов файлов помимо простого текста:

* **Изображения**: PNG, JPG и другие форматы изображений возвращаются как визуальное содержимое, которое Claude может видеть, а не как необработанные байты. Claude Code изменяет размер и переупаковывает большие изображения, чтобы они соответствовали ограничениям размера изображения модели перед отправкой, поэтому Claude может видеть уменьшенную версию большого снимка экрана. {/* min-version: 2.1.196 */}Начиная с версии 2.1.196, изображение, которое все еще больше 500KB после этого изменения размера, переупаковывается как JPEG с пониженным качеством с неизменными размерами пикселей. Если Claude пропустит детали на уровне пикселей в большом изображении, попросите его сначала обрезать интересующий регион, например с помощью ImageMagick через Bash.
* **PDFs**: Claude читает короткие файлы `.pdf` целиком. Для PDF-файлов длиннее 10 страниц он читает в диапазонах с параметром `pages`, таким как `"1-5"`, до 20 страниц за раз.
* **Jupyter notebooks**: файлы `.ipynb` возвращают все ячейки с их выходными данными, включая код, markdown и визуализации.

Read только читает файлы, не каталоги. Claude использует `ls` через инструмент Bash для вывода содержимого каталога.

<h2 id="webfetch-tool-behavior">
  Поведение инструмента WebFetch
</h2>

WebFetch принимает URL и подсказку, описывающую, что извлечь. Он получает страницу, преобразует ответ в Markdown, когда сервер возвращает HTML, и запускает подсказку против содержимого, используя небольшую, быструю модель. Для большинства выборок Claude получает ответ этой модели, а не необработанную страницу. Этап преобразования не настраивается.

Это делает WebFetch потерянным по дизайну. Подсказка извлечения определяет, что достигает Claude, поэтому результат, который говорит, что страница не упоминает что-то, может означать только, что подсказка не спросила об этом. Попросите Claude получить снова с более конкретной подсказкой или используйте `curl` через Bash для необработанной страницы.

Несколько поведений формируют ответ, который получает Claude:

* HTTP URLs автоматически обновляются до HTTPS.
* Большие страницы усекаются до фиксированного лимита символов перед обработкой.
* Ответы кэшируются на 15 минут, поэтому повторные выборки одного и того же URL возвращаются быстро.
* Когда URL перенаправляется на другой хост, WebFetch возвращает текстовый результат, который называет исходный URL и цель перенаправления вместо его следования. Claude затем получает новый URL со вторым вызовом WebFetch.

В режимах разрешений по умолчанию и `acceptEdits`, WebFetch запрашивает в первый раз, когда он достигает нового домена, за исключением встроенного набора предварительно одобренных доменов документации, которые получают без подсказки. Чтобы разрешить домен заранее без подсказки, добавьте правило разрешения, такое как `WebFetch(domain:example.com)`. Режимы разрешений `auto` и `bypassPermissions` [permission modes](/ru/permissions#permission-modes) полностью пропускают подсказку.

Явное правило `WebFetch(domain:...)` в `deny`, `ask` или `allow` имеет приоритет над предварительно одобренным набором, поэтому вы можете заблокировать предварительно одобренный домен или потребовать для него подсказку.

WebFetch устанавливает заголовок `User-Agent`, начинающийся с `Claude-User`, и заголовок `Accept`, который предпочитает Markdown перед HTML, чтобы серверы, поддерживающие согласование содержимого, могли возвращать Markdown напрямую. [Sandbox](/ru/sandboxing) правила сети настраиваются отдельно, поэтому домен, который вы хотите, чтобы процесс в песочнице достиг, по-прежнему нуждается в явном правиле разрешения песочницы.

<h2 id="websearch-tool-behavior">
  Поведение инструмента WebSearch
</h2>

WebSearch запускает запрос против [веб-поиска](https://platform.claude.com/docs/en/agents-and-tools/tool-use/web-search-tool) Anthropic и возвращает названия результатов и URLs. Он не получает страницы результатов. Чтобы прочитать страницу, которую Claude находит в результатах поиска, он следует с [WebFetch](#webfetch-tool-behavior).

Инструмент может выполнить до восьми поисков на бэкенде на вызов, уточняя поиск внутри перед возвращением результатов. Claude может ограничить результаты с помощью `allowed_domains` для включения только определенных хостов или `blocked_domains` для их исключения. Два списка не могут быть объединены в одном вызове.

Бэкенд поиска не настраивается. Чтобы выполнить поиск с другим поставщиком, добавьте [MCP server](/ru/mcp), который предоставляет инструмент поиска.

Правила разрешений WebSearch не принимают спецификатор. Запись `WebSearch` в `allow` или `deny` — это единственная форма.

<Note>
  WebSearch доступен на Claude API и Microsoft Foundry. На Google Cloud Vertex AI он работает с моделями Claude 4, включая Opus, Sonnet и Haiku. Amazon Bedrock не предоставляет инструмент веб-поиска на стороне сервера.
</Note>

<h2 id="write-tool-behavior">
  Поведение инструмента Write
</h2>

Инструмент Write создает новый файл или перезаписывает существующий с полным предоставленным содержимым. Он не добавляет и не объединяет.

Если целевой путь уже существует, Claude должен был прочитать этот файл по крайней мере один раз в текущем разговоре перед перезаписью. Write на непрочитанный существующий файл не удается с ошибкой. Это ограничение не применяется к новым файлам.

Просмотр файла с помощью Bash также удовлетворяет этому требованию в соответствии с теми же правилами, описанными в [поведении инструмента Edit](#edit-tool-behavior).

Для частичных изменений существующего файла Claude использует Edit вместо Write.

<h2 id="check-which-tools-are-available">
  Проверка доступных инструментов
</h2>

Ваш точный набор инструментов зависит от вашего поставщика, платформы и параметров. Чтобы проверить, что загружено в работающем сеансе, спросите Claude напрямую:

```text theme={null}
What tools do you have access to?
```

Claude дает разговорное резюме. Для точных имен инструментов MCP запустите `/mcp`.

<Note>
  [Инструмент advisor](/ru/advisor) — это [серверный инструмент](https://platform.claude.com/docs/en/agents-and-tools/tool-use/advisor-tool), который запускает API, а не инструмент, который реализует Claude Code. Он не имеет имени, на которое вы можете ссылаться в правилах разрешений или сопоставителях hooks.
</Note>

<h2 id="see-also">
  См. также
</h2>

* [MCP servers](/ru/mcp): добавляйте пользовательские инструменты, подключая внешние серверы
* [Разрешения](/ru/permissions): система разрешений, синтаксис правил и шаблоны для конкретных инструментов
* [Subagents](/ru/sub-agents): настройка доступа к инструментам для subagents
* [Hooks](/ru/hooks-guide): запуск пользовательских команд до или после выполнения инструмента
