Dropstone CLI

Инструменты

Управление инструментами, которые может использовать LLM.

Инструменты позволяют LLM выполнять действия в вашей кодовой базе. Dropstone поставляется с набором встроенных инструментов, но вы можете расширить его с помощью пользовательских инструментов или MCP-серверов.

По умолчанию все инструменты включены и не требуют разрешения для запуска. Вы можете управлять поведением инструментов через разрешения.


Настройка

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

{
  "$schema": "https://dropstone.io/schema/config.json",
  "permission": {
    "edit": "deny",
    "bash": "ask",
    "webfetch": "allow"
  }
}

Вы также можете использовать подстановочные знаки для управления несколькими инструментами одновременно. Например, чтобы требовать одобрения для всех инструментов от MCP-сервера:

{
  "$schema": "https://dropstone.io/schema/config.json",
  "permission": {
    "mymcp_*": "ask"
  }
}

Узнайте больше о настройке разрешений.


Встроенные

Вот все встроенные инструменты, доступные в Dropstone.


bash

Выполнение shell-команд в среде вашего проекта.

{
  "$schema": "https://dropstone.io/schema/config.json",
  "permission": {
    "bash": "allow"
  }
}

Этот инструмент позволяет LLM запускать команды терминала, такие как npm install, git status или любые другие shell-команды.


edit

Изменение существующих файлов с помощью точных замен строк.

{
  "$schema": "https://dropstone.io/schema/config.json",
  "permission": {
    "edit": "allow"
  }
}

Этот инструмент выполняет точные правки файлов, заменяя точные совпадения текста. Это основной способ, которым LLM изменяет код.


write

Создание новых файлов или перезапись существующих.

{
  "$schema": "https://dropstone.io/schema/config.json",
  "permission": {
    "edit": "allow"
  }
}

Используйте это, чтобы разрешить LLM создавать новые файлы. Он перезапишет существующие файлы, если они уже есть.

Note

Инструмент write управляется разрешением edit, которое охватывает все изменения файлов (edit, write, apply_patch).


read

Чтение содержимого файлов из вашей кодовой базы.

{
  "$schema": "https://dropstone.io/schema/config.json",
  "permission": {
    "read": "allow"
  }
}

Этот инструмент читает файлы и возвращает их содержимое. Он поддерживает чтение определенных диапазонов строк для больших файлов.


grep

Поиск содержимого файлов с использованием регулярных выражений.

{
  "$schema": "https://dropstone.io/schema/config.json",
  "permission": {
    "grep": "allow"
  }
}

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


glob

Поиск файлов по шаблону.

{
  "$schema": "https://dropstone.io/schema/config.json",
  "permission": {
    "glob": "allow"
  }
}

Поиск файлов с использованием glob-шаблонов, таких как **/*.js или src/**/*.ts. Возвращает совпадающие пути к файлам, отсортированные по времени изменения.


lsp (экспериментальный)

Взаимодействие с настроенными LSP-серверами для получения функций интеллектуальной работы с кодом, таких как определения, ссылки, всплывающая информация и иерархия вызовов.

Экспериментально

Инструмент LSP является экспериментальным и отключен по умолчанию. Поведение может меняться между релизами.

{
  "$schema": "https://dropstone.io/schema/config.json",
  "permission": {
    "lsp": "allow"
  }
}

Поддерживаемые операции включают goToDefinition, findReferences, hover, documentSymbol, workspaceSymbol, goToImplementation, prepareCallHierarchy, incomingCalls и outgoingCalls.

Чтобы настроить, какие LSP-серверы доступны для вашего проекта, см. LSP-серверы.


apply_patch

Применение патчей к файлам.

{
  "$schema": "https://dropstone.io/schema/config.json",
  "permission": {
    "edit": "allow"
  }
}

Этот инструмент применяет файлы патчей к вашей кодовой базе. Полезен для применения diff-ов и патчей из различных источников.

При обработке хуков tool.execute.before или tool.execute.after проверяйте input.tool === "apply_patch" (а не "patch").

apply_patch использует output.args.patchText вместо output.args.filePath. Пути встроены в строки-маркеры внутри patchText и относительны к корню проекта (например: *** Add File: src/new-file.ts, *** Update File: src/existing.ts, *** Move to: src/renamed.ts, *** Delete File: src/obsolete.ts).

Note

Инструмент apply_patch управляется разрешением edit, которое охватывает все изменения файлов (edit, write, apply_patch).


skill

Загрузка навыка (файла SKILL.md) и возврат его содержимого в разговор.

{
  "$schema": "https://dropstone.io/schema/config.json",
  "permission": {
    "skill": "allow"
  }
}

todowrite

Управление списками задач во время сессий кодирования.

{
  "$schema": "https://dropstone.io/schema/config.json",
  "permission": {
    "todowrite": "allow"
  }
}

Создает и обновляет списки задач для отслеживания прогресса во время сложных операций. LLM использует это для организации многошаговых задач.

Note

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


webfetch

Получение веб-контента.

{
  "$schema": "https://dropstone.io/schema/config.json",
  "permission": {
    "webfetch": "allow"
  }
}

Позволяет LLM получать и читать веб-страницы. Полезно для поиска документации или исследования онлайн-ресурсов.


websearch

Поиск информации в интернете. Доступен по умолчанию, когда вы вошли в Dropstone.

{
  "$schema": "https://dropstone.io/schema/config.json",
  "permission": {
    "websearch": "allow"
  }
}

Выполняет веб-поиск для поиска релевантной информации в интернете. Полезно для исследования тем, поиска текущих событий или сбора информации за пределами даты среза обучающих данных. Не требуется API-ключ или дополнительная настройка, когда вы вошли в Dropstone.

Tip

Используйте websearch, когда вам нужно найти информацию (обнаружение), и webfetch, когда вам нужно получить содержимое с конкретного URL (получение).


question

Задавание вопросов пользователю во время выполнения.

{
  "$schema": "https://dropstone.io/schema/config.json",
  "permission": {
    "question": "allow"
  }
}

Этот инструмент позволяет LLM задавать вопросы пользователю во время задачи. Он полезен для:

  • Сбора предпочтений или требований пользователя
  • Уточнения неоднозначных инструкций
  • Получения решений по вариантам реализации
  • Предложения выбора направления действий

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


preview

Рендеринг локальной HTML-страницы в headless-браузере и просмотр результата.

{
  "$schema": "https://dropstone.io/schema/config.json",
  "permission": {
    "preview": "allow"
  }
}

Инструмент рендерит страницу на ширине 390, 768 и 1440px, делает скриншоты каждого и возвращает изображения плюс отчет о том, что машина может доказать:

ПроверкаЧто она выявляет
RENDERкорневой элемент пуст — страница ничего не смонтировала
RENDER_BLANKскриншот меньше 5 КБ, то есть фактически пустой
OVERFLOWэлемент выходит за пределы области просмотра по горизонтали, с дельтой в пикселях
CLIPэлемент скрывает собственное содержимое через overflow: hidden

Он не оценивает, правильный ли дизайн. Для этого и нужны скриншоты — агент читает их.

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

Только локальные файлы. Удаленный URL отклоняется. Получение произвольных URL позволило бы содержимому страницы перенаправлять инструмент на внутренние сервисы.

Требуется Playwright. Если он не установлен, инструмент возвращает [RENDER_SKIPPED] и ничего не проверяет — он никогда не сообщает о молчаливом успехе. Установите его с помощью:

npm i -D playwright && npx playwright install chromium

Пользовательские инструменты

Пользовательские инструменты позволяют вам определять собственные функции, которые может вызывать LLM. Они определяются в вашем файле конфигурации и могут выполнять произвольный код.

Узнайте больше о создании пользовательских инструментов.


MCP-серверы

MCP-серверы (Model Context Protocol) позволяют интегрировать внешние инструменты и сервисы. Это включает доступ к базам данных, интеграции с API и сторонние сервисы.

Узнайте больше о настройке MCP-серверов.


Шаблоны игнорирования

По умолчанию grep и glob учитывают ваш .gitignore: файлы и каталоги, перечисленные там, исключаются из поиска и списков.

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

!node_modules/
!dist/
!build/

Например, этот файл .ignore разрешает поиск в каталогах node_modules/, dist/ и build/, даже если они перечислены в .gitignore.

Ctrl+I