Claude Code имеет доступ к набору встроенных инструментов, которые помогают ему понять и изменить вашу кодовую базу. Названия инструментов — это точные строки, которые вы используете в правилах разрешений, списках инструментов subagent и сопоставителях hooks. Чтобы полностью отключить инструмент, добавьте его имя в массив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.
deny в параметрах разрешений.
Чтобы добавить пользовательские инструменты, подключите MCP server. Чтобы расширить Claude с помощью переиспользуемых рабочих процессов на основе подсказок, напишите skill, который работает через существующий инструмент Skill вместо добавления новой записи инструмента.
| Инструмент | Описание | Требуется разрешение |
|---|---|---|
Agent | Создает subagent с собственным контекстным окном для выполнения задачи. См. поведение инструмента Agent | Нет |
AskUserQuestion | Задает вопросы с несколькими вариантами ответов для сбора требований или уточнения неоднозначности | Нет |
Bash | Выполняет команды оболочки в вашей среде. См. поведение инструмента Bash | Да |
CronCreate | Планирует повторяющуюся или одноразовую подсказку в текущем сеансе. Задачи привязаны к сеансу и восстанавливаются при --resume или --continue, если не истекли. См. запланированные задачи | Нет |
CronDelete | Отменяет запланированную задачу по ID | Нет |
CronList | Выводит список всех запланированных задач в сеансе | Нет |
Edit | Вносит целевые изменения в конкретные файлы. См. поведение инструмента Edit | Да |
EnterPlanMode | Переключается в режим плана для разработки подхода перед кодированием | Нет |
EnterWorktree | Создает изолированный git worktree и переключается в него. Передайте path для переключения в существующий worktree текущего репозитория вместо создания нового. Недоступно для subagents | Нет |
ExitPlanMode | Представляет план для утверждения и выходит из режима плана | Да |
ExitWorktree | Выходит из сеанса worktree и возвращается в исходный каталог. Недоступно для subagents | Нет |
Glob | Находит файлы на основе сопоставления шаблонов. См. поведение инструмента Glob | Нет |
Grep | Ищет шаблоны в содержимом файлов. См. поведение инструмента Grep | Нет |
ListMcpResourcesTool | Выводит список ресурсов, предоставляемых подключенными MCP servers | Нет |
LSP | Интеллект кода через языковые серверы: переход к определениям, поиск ссылок, сообщение об ошибках типов и предупреждениях. См. поведение инструмента LSP | Нет |
Monitor | Запускает команду в фоне и передает каждую строку вывода обратно Claude, чтобы он мог реагировать на записи журнала, изменения файлов или опрашиваемый статус в середине разговора. См. инструмент Monitor | Да |
NotebookEdit | Изменяет ячейки Jupyter notebook. См. поведение инструмента NotebookEdit | Да |
PowerShell | Выполняет команды PowerShell изначально. См. инструмент PowerShell для доступности | Да |
PushNotification | Отправляет уведомление на рабочий стол и push-уведомление на телефон при подключении Remote Control, чтобы долгоживущая задача или запланированная задача могла вас достичь, когда вы отойдете. Доставка push-уведомлений осуществляется через инфраструктуру, размещенную на Anthropic, которая недоступна из Amazon Bedrock, Google Vertex AI или Microsoft Foundry | Нет |
Read | Читает содержимое файлов. См. поведение инструмента Read | Нет |
ReadMcpResourceTool | Читает конкретный ресурс MCP по URI | Нет |
RemoteTrigger | Создает, обновляет, запускает и выводит список Routines на claude.ai. Поддерживает команду /schedule. Routines находятся на claude.ai и требуют план Pro, Max, Team или Enterprise, поэтому этот инструмент недоступен из Amazon Bedrock, Google Vertex AI или Microsoft Foundry | Нет |
SendMessage | Отправляет сообщение члену команды агентов, или возобновляет subagent по его ID агента. Остановленные subagents автоматически возобновляются в фоне. Доступно только при установке CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 | Нет |
ShareOnboardingGuide | Загружает ONBOARDING.md и возвращает ссылку для общего доступа, которую товарищи по команде могут открыть в Claude Code. Вызывается из /team-onboarding после написания руководства. Доступно для подписчиков claude.ai на планах Pro, Max, Team и Enterprise | Да |
Skill | Выполняет skill в основном разговоре | Да |
TaskCreate | Создает новую задачу в списке задач | Нет |
TaskGet | Получает полные сведения для конкретной задачи | Нет |
TaskList | Выводит список всех задач с их текущим статусом | Нет |
TaskOutput | (Устарело) Получает вывод из фоновой задачи. Предпочитайте Read на пути к файлу вывода задачи | Нет |
TaskStop | Завершает выполняющуюся фоновую задачу по ID | Нет |
TaskUpdate | Обновляет статус задачи, зависимости, сведения или удаляет задачи | Нет |
TeamCreate | Создает команду агентов с несколькими товарищами по команде. Доступно только при установке CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 | Нет |
TeamDelete | Распускает команду агентов и очищает процессы товарищей по команде. Доступно только при установке CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 | Нет |
TodoWrite | Управляет контрольным списком задач сеанса. Доступно в неинтерактивном режиме и Agent SDK; интерактивные сеансы используют TaskCreate, TaskGet, TaskList и TaskUpdate вместо этого | Нет |
ToolSearch | Ищет и загружает отложенные инструменты, когда включен поиск инструментов | Нет |
WebFetch | Получает содержимое с указанного URL. См. поведение инструмента WebFetch | Да |
WebSearch | Выполняет веб-поиск. См. поведение инструмента WebSearch | Да |
Write | Создает или перезаписывает файлы. См. поведение инструмента Write | Да |
Настройка инструментов с помощью правил разрешений и hooks
В большинстве случаев Claude решает, когда использовать эти инструменты, и вам не нужно называть их самостоятельно при взаимодействии с Claude. Вы ссылаетесь на названия инструментов напрямую при определении разрешений и другой конфигурации:- в
permissions.allowиpermissions.denyв параметрах и интерфейсе/permissions - в флагах CLI
--allowedToolsи--disallowedTools - в опциях
allowedToolsиdisallowedToolsAgent SDK - в frontmatter
toolsилиdisallowedToolssubagent - в frontmatter
allowed-toolsskill - в условии
ifhook
ToolName(specifier). Спецификатор зависит от инструмента, и несколько инструментов используют один формат:
| Формат правила | Применяется к | Детали |
|---|---|---|
Bash(npm run *) | Bash, Monitor | Сопоставление шаблонов команд |
PowerShell(Get-ChildItem *) | PowerShell | Сопоставление шаблонов команд |
Read(~/secrets/**) | Read, Grep, Glob, LSP | Сопоставление шаблонов путей |
Edit(/src/**) | Edit, Write, NotebookEdit | Сопоставление шаблонов путей |
Skill(deploy *) | Skill | Сопоставление имени skill |
Agent(Explore) | Agent | Сопоставление типа subagent |
WebFetch(domain:example.com) | WebFetch | Сопоставление домена |
WebSearch | WebSearch | Без спецификатора; разрешить или запретить инструмент в целом |
ExitPlanMode или ShareOnboardingGuide, принимают только простое имя инструмента без спецификатора.
Правило разрешения Edit(...) также предоставляет доступ на чтение к тому же пути, поэтому вам не нужно соответствующее правило Read(...).
Поля matcher Hook используют простые названия инструментов, а не формат с скобками. См. шаблоны сопоставления для правил сопоставления. Для названий полей, которые каждый инструмент передает в tool_input в hooks, см. справочник входных данных PreToolUse.
Поведение инструмента Agent
Инструмент Agent создает subagent в отдельном контекстном окне. Subagent самостоятельно выполняет свою задачу, а затем возвращает один текстовый результат в родительский разговор. Родитель не видит промежуточные вызовы инструментов или выходные данные subagent, только этот финальный результат. Чтобы ограничить количество ходов, которые выполняет subagent, установитеmaxTurns в определении subagent.
Тот же инструмент Agent также запускает forked subagents при включении режима fork. Fork наследует полный родительский разговор вместо начала с нуля, всегда работает в фоне и по-прежнему отображает подсказки разрешений в вашем терминале. Остальная часть этого раздела описывает именованные subagents.
Какие инструменты может использовать именованный subagent, зависит от полей tools и disallowedTools в определении subagent:
- Ни одно поле не установлено: subagent наследует каждый инструмент, доступный родителю.
- Только
tools: subagent получает только перечисленные инструменты. - Только
disallowedTools: subagent получает каждый инструмент родителя, кроме перечисленных. - Оба установлены:
disallowedToolsимеет приоритет. Инструмент, указанный в обоих, удаляется.
- Foreground subagents показывают те же подсказки разрешений, которые вы видели бы в основном разговоре, в момент каждого вызова инструмента.
- Background subagents не показывают подсказки. Они работают с разрешениями, уже предоставленными в сеансе, и автоматически отклоняют любой вызов инструмента, который иначе запросил бы подсказку. После отклонения subagent продолжает работу без этого инструмента.
tools, оставьте Bash вне списка или установите правила deny в ваших параметрах, как описано в Control subagent capabilities. Для получения дополнительной информации о выборе между foreground и background см. Run subagents in foreground or background.
Поведение инструмента Bash
Инструмент Bash запускает каждую команду в отдельном процессе со следующим поведением сохранения:- Когда Claude запускает
cdв основном сеансе, новый рабочий каталог переносится в более поздние команды Bash, пока он остается внутри каталога проекта или дополнительного рабочего каталога, который вы добавили с помощью--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_ENV_FILE на скрипт оболочки перед запуском Claude Code или используйте hook SessionStart для динамического заполнения.
Два ограничения ограничивают каждую команду:
- Timeout: два минуты по умолчанию. Claude может запросить до 10 минут на команду с параметром
timeout. Переопределите значение по умолчанию и потолок с помощьюBASH_DEFAULT_TIMEOUT_MSиBASH_MAX_TIMEOUT_MS. - Длина вывода: 30 000 символов по умолчанию. Когда команда производит больше, Claude Code сохраняет полный вывод в файл в каталоге сеанса и дает Claude путь к файлу плюс короткий предпросмотр с начала. Claude читает или ищет этот файл, когда ему нужен остаток. Увеличьте лимит с помощью
BASH_MAX_OUTPUT_LENGTH, до жесткого потолка в 150 000 символов.
run_in_background: true для запуска команды как фоновой задачи и продолжения работы во время ее выполнения. Выводите список и останавливайте фоновые задачи с помощью /tasks.
Поведение инструмента Edit
Инструмент Edit выполняет точную замену строк. Он принимаетold_string и new_string и заменяет первый на второй. Он не использует regex или нечеткое сопоставление.
Три проверки должны пройти для применения редактирования:
- Read-before-edit: Claude должен был прочитать файл в текущем разговоре, и файл не должен был измениться на диске с момента этого чтения. Эта проверка выполняется первой, перед любым сопоставлением строк.
- Match:
old_stringдолжен появиться в файле точно так, как написано. Даже один символ пробела или различия в отступе достаточно, чтобы пропустить. - Uniqueness:
old_stringдолжен появиться ровно один раз. Когда он появляется более одного раза, Claude либо предоставляет более длинную строку с достаточным окружающим контекстом для определения одного вхождения, либо устанавливаетreplace_all: trueдля замены всех.
cat path/to/file или sed -n 'X,Yp' path/to/file на одном файле без pipes или redirects. Другие команды Bash, такие как head, tail или piped вывод, не считаются, и Claude должен использовать Read перед редактированием в этих случаях.
Это влияет только на приемлемость редактирования, а не на разрешения. Правила deny Read и Edit также применяются к командам файлов, которые Claude Code распознает в Bash, таким как cat, head, tail и sed, но не к произвольным подпроцессам, которые косвенно читают или записывают файлы, такие как скрипт Python или Node, который открывает файлы сам. Для принудительного применения на уровне ОС, охватывающего каждый процесс, включите sandbox.
Поведение инструмента Glob
Инструмент Glob находит файлы по шаблону имени. Он поддерживает стандартный синтаксис glob, включая** для рекурсивного сопоставления каталогов:
**/*.jsсоответствует всем файлам.jsна любой глубинеsrc/**/*.tsсоответствует всем файлам.tsподsrc/*.{json,yaml}соответствует файлам.jsonи.yamlв текущем каталоге
.gitignore по умолчанию, поэтому он находит файлы, игнорируемые git, наряду с отслеживаемыми. Это отличается от Grep, который пропускает файлы, игнорируемые git. Чтобы заставить Glob соблюдать .gitignore, установите CLAUDE_CODE_GLOB_NO_IGNORE=false перед запуском Claude Code.
Поведение инструмента Grep
Инструмент Grep ищет шаблоны в содержимом файлов. Где Glob находит файлы по имени, Grep находит строки внутри них. Grep построен на ripgrep и использует синтаксис regex ripgrep, а не POSIX grep. Шаблоны, которые включают метасимволы regex, нуждаются в экранировании. Например, поискinterface{} в коде Go требует шаблона interface\{\}.
Три режима вывода контролируют, что возвращается:
files_with_matches: только пути к файлам, без содержимого строк. Это значение по умолчанию.content: соответствующие строки с номером файла и строки.count: количество совпадений на файл.
glob, таким как **/*.tsx, или по языку с параметром type, таким как py или rust. По умолчанию шаблоны совпадают в одной строке. Claude может установить multiline: true для совпадения через границы строк.
Grep соблюдает .gitignore, поэтому файлы, игнорируемые git, пропускаются. Чтобы найти файл, игнорируемый git, Claude передает его путь напрямую.
Поведение инструмента LSP
Инструмент LSP предоставляет Claude интеллект кода от работающего языкового сервера. После каждого редактирования файла он автоматически сообщает об ошибках типов и предупреждениях, чтобы Claude мог исправить проблемы без отдельного этапа сборки. Claude также может вызвать его напрямую для навигации по коду:- Переход к определению символа
- Поиск всех ссылок на символ
- Получение информации о типе в позиции
- Список символов в файле или рабочей области
- Поиск реализаций интерфейса
- Трассировка иерархий вызовов
Инструмент Monitor
Инструмент Monitor требует Claude Code версии 2.1.98 или более поздней.
- Отслеживать файл журнала и отмечать ошибки по мере их появления
- Опрашивать PR или задачу CI и сообщать при изменении статуса
- Наблюдать за каталогом на предмет изменений файлов
- Отслеживать вывод из любого долгоживущего скрипта, на который вы его указываете
allow и deny, которые вы установили для Bash, применяются здесь также. Он недоступен на Amazon Bedrock, Google Vertex AI или Microsoft Foundry. Он также недоступен, когда установлены DISABLE_TELEMETRY или CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC.
Плагины могут объявлять мониторы, которые запускаются автоматически при активации плагина, вместо того чтобы просить Claude запустить их. См. мониторы плагинов.
Инструмент NotebookEdit
NotebookEdit изменяет Jupyter notebook по одной ячейке за раз, нацеливаясь на ячейки по ихcell_id. Он не выполняет замену строк по всему notebook так, как Edit делает на простых файлах.
Три режима редактирования контролируют, что происходит с целевой ячейкой:
replace: перезаписать источник ячейки. Это значение по умолчанию.insert: добавить новую ячейку после целевой. Безcell_idновая ячейка переходит в начало notebook. Требует установкиcell_typeнаcodeилиmarkdown.delete: удалить целевую ячейку.
Edit(...). Правило, такое как Edit(notebooks/**), охватывает вызовы NotebookEdit на файлы в этом каталоге.
Инструмент PowerShell
Инструмент PowerShell позволяет Claude запускать команды PowerShell изначально. На Windows это означает, что команды выполняются в PowerShell вместо маршрутизации через Git Bash. На Windows без Git Bash инструмент включается автоматически. На Windows с установленным Git Bash инструмент развертывается постепенно. На Linux, macOS и WSL инструмент является добровольным.Включение инструмента PowerShell
УстановитеCLAUDE_CODE_USE_POWERSHELL_TOOL=1 в вашей среде или в settings.json:
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.
Выбор оболочки в параметрах, hooks и skills
Три дополнительных параметра контролируют, где используется PowerShell:"defaultShell": "powershell"вsettings.json: маршрутизирует интерактивные команды!через PowerShell. Требует включения инструмента PowerShell."shell": "powershell"на отдельных command hooks: запускает этот hook в PowerShell. Hooks запускают PowerShell напрямую, поэтому это работает независимо отCLAUDE_CODE_USE_POWERSHELL_TOOL.shell: powershellв frontmatter skill: запускает блоки!`command`в PowerShell. Требует включения инструмента PowerShell.
CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR.
Ограничения предварительного просмотра
Инструмент PowerShell имеет следующие известные ограничения во время предварительного просмотра:- Профили PowerShell не загружаются
- На Windows sandboxing не поддерживается
Поведение инструмента Read
Инструмент Read принимает путь к файлу и возвращает содержимое с номерами строк. Claude инструктирован всегда передавать абсолютные пути. По умолчанию Read возвращает файл с начала. Файлы, превышающие пороговый размер, возвращают ошибку вместо частичного содержимого, побуждая Claude повторить попытку сoffset и limit для чтения определенного диапазона.
Read обрабатывает несколько типов файлов помимо простого текста:
- Изображения: PNG, JPG и другие форматы изображений возвращаются как визуальное содержимое, которое Claude может видеть, а не как необработанные байты. Claude Code изменяет размер и переупаковывает большие изображения, чтобы они соответствовали ограничениям размера изображения модели перед отправкой, поэтому Claude может видеть уменьшенную версию большого снимка экрана. Если Claude пропустит детали на уровне пикселей в большом изображении, попросите его сначала обрезать интересующий регион, например с помощью ImageMagick через Bash.
- PDFs: Claude читает короткие файлы
.pdfцеликом. Для PDF-файлов длиннее 10 страниц он читает в диапазонах с параметромpages, таким как"1-5", до 20 страниц за раз. - Jupyter notebooks: файлы
.ipynbвозвращают все ячейки с их выходными данными, включая код, markdown и визуализации.
ls через инструмент Bash для вывода содержимого каталога.
Поведение инструмента WebFetch
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 полностью пропускают подсказку.
WebFetch устанавливает заголовок User-Agent, начинающийся с Claude-User, и заголовок Accept, который предпочитает Markdown перед HTML, чтобы серверы, поддерживающие согласование содержимого, могли возвращать Markdown напрямую. Sandbox правила сети настраиваются отдельно, поэтому домен, который вы хотите, чтобы процесс в песочнице достиг, по-прежнему нуждается в явном правиле разрешения песочницы.
Поведение инструмента WebSearch
WebSearch запускает запрос против веб-поиска Anthropic и возвращает названия результатов и URLs. Он не получает страницы результатов. Чтобы прочитать страницу, которую Claude находит в результатах поиска, он следует с WebFetch. Инструмент может выполнить до восьми поисков на бэкенде на вызов, уточняя поиск внутри перед возвращением результатов. Claude может ограничить результаты с помощьюallowed_domains для включения только определенных хостов или blocked_domains для их исключения. Два списка не могут быть объединены в одном вызове.
Бэкенд поиска не настраивается. Чтобы выполнить поиск с другим поставщиком, добавьте MCP server, который предоставляет инструмент поиска.
Правила разрешений WebSearch не принимают спецификатор. Запись WebSearch в allow или deny — это единственная форма.
WebSearch доступен на Claude API и Microsoft Foundry. На Google Cloud Vertex AI он работает с моделями Claude 4, включая Opus, Sonnet и Haiku. Amazon Bedrock не предоставляет инструмент веб-поиска на стороне сервера.
Поведение инструмента Write
Инструмент Write создает новый файл или перезаписывает существующий с полным предоставленным содержимым. Он не добавляет и не объединяет. Если целевой путь уже существует, Claude должен был прочитать этот файл по крайней мере один раз в текущем разговоре перед перезаписью. Write на непрочитанный существующий файл не удается с ошибкой. Это ограничение не применяется к новым файлам. Просмотр файла с помощью Bashcat или sed -n также удовлетворяет этому требованию, как описано в поведении инструмента Edit.
Для частичных изменений существующего файла Claude использует Edit вместо Write.
Проверка доступных инструментов
Ваш точный набор инструментов зависит от вашего поставщика, платформы и параметров. Чтобы проверить, что загружено в работающем сеансе, спросите Claude напрямую:/mcp.
См. также
- MCP servers: добавляйте пользовательские инструменты, подключая внешние серверы
- Разрешения: система разрешений, синтаксис правил и шаблоны для конкретных инструментов
- Subagents: настройка доступа к инструментам для subagents
- Hooks: запуск пользовательских команд до или после выполнения инструмента