Перейти к основному содержанию

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 имеет доступ к набору встроенных инструментов, которые помогают ему понять и изменить вашу кодовую базу. Названия инструментов — это точные строки, которые вы используете в правилах разрешений, списках инструментов subagent и сопоставителях hooks. Чтобы полностью отключить инструмент, добавьте его имя в массив 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. Вы ссылаетесь на названия инструментов напрямую при определении разрешений и другой конфигурации: Все они принимают один и тот же формат правила, 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Сопоставление домена
WebSearchWebSearchБез спецификатора; разрешить или запретить инструмент в целом
Инструменты, не указанные здесь, такие как 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 имеет приоритет. Инструмент, указанный в обоих, удаляется.
Запуск subagent сам по себе не запрашивает разрешение. Вызовы инструментов subagent проверяются против ваших правил разрешений по мере его работы:
  • Foreground subagents показывают те же подсказки разрешений, которые вы видели бы в основном разговоре, в момент каждого вызова инструмента.
  • Background subagents не показывают подсказки. Они работают с разрешениями, уже предоставленными в сеансе, и автоматически отклоняют любой вызов инструмента, который иначе запросил бы подсказку. После отклонения subagent продолжает работу без этого инструмента.
Чтобы ограничить, что может достичь 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 в одной команде не будет доступен в следующей.
Активируйте вашу virtualenv или conda среду перед запуском Claude Code. Чтобы переменные окружения сохранялись между командами Bash, установите 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 символов.
Для долгоживущих процессов, таких как dev серверы или watch сборки, Claude может установить 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 для замены всех.
Просмотр файла с помощью Bash также удовлетворяет требованию read-before-edit, когда команда — это 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 в текущем каталоге
Результаты отсортированы по времени изменения и ограничены 100 файлами. Если лимит достигнут, Claude видит флаг усечения в результате и может сузить шаблон. Glob не соблюдает .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: количество совпадений на файл.
Claude может ограничить результаты по файлу с параметром 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 или более поздней.
Инструмент Monitor позволяет Claude наблюдать что-то в фоне и реагировать при изменении, без паузы разговора. Попросите Claude:
  • Отслеживать файл журнала и отмечать ошибки по мере их появления
  • Опрашивать PR или задачу CI и сообщать при изменении статуса
  • Наблюдать за каталогом на предмет изменений файлов
  • Отслеживать вывод из любого долгоживущего скрипта, на который вы его указываете
Claude пишет небольшой скрипт для наблюдения, запускает его в фоне и получает каждую строку вывода по мере ее поступления. Вы продолжаете работать в том же сеансе, и Claude вмешивается при возникновении события. Остановите монитор, попросив Claude отменить его или завершив сеанс. Monitor использует те же правила разрешений, что и Bash, поэтому шаблоны 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:
{
  "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.

Выбор оболочки в параметрах, 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.
Поведение сброса рабочего каталога основного сеанса, описанное в разделе инструмента Bash, применяется к командам 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 и визуализации.
Read только читает файлы, не каталоги. Claude использует 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 на непрочитанный существующий файл не удается с ошибкой. Это ограничение не применяется к новым файлам. Просмотр файла с помощью Bash cat или sed -n также удовлетворяет этому требованию, как описано в поведении инструмента Edit. Для частичных изменений существующего файла Claude использует Edit вместо Write.

Проверка доступных инструментов

Ваш точный набор инструментов зависит от вашего поставщика, платформы и параметров. Чтобы проверить, что загружено в работающем сеансе, спросите Claude напрямую:
What tools do you have access to?
Claude дает разговорное резюме. Для точных имен инструментов MCP запустите /mcp.

См. также

  • MCP servers: добавляйте пользовательские инструменты, подключая внешние серверы
  • Разрешения: система разрешений, синтаксис правил и шаблоны для конкретных инструментов
  • Subagents: настройка доступа к инструментам для subagents
  • Hooks: запуск пользовательских команд до или после выполнения инструмента