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"
  }
}

此工具将补丁文件应用到您的代码库。适用于应用来自各种来源的差异和补丁。

在处理 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"
  }
}

执行网络搜索以查找相关信息。适用于研究主题、查找当前事件或收集超出训练数据截止日期之外的信息。当您登录 Dropstone 时,无需 API 密钥或额外设置。

Tip

当您需要查找信息(发现)时使用 websearch,当您需要从特定 URL 检索内容(检索)时使用 webfetch。


question

在执行期间向用户提问。

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

此工具允许 LLM 在任务期间向用户提问。它适用于:

  • 收集用户偏好或需求
  • 澄清模糊的指令
  • 获取实现选择的决策
  • 提供关于方向的选项

每个问题包括标题、问题文本和选项列表。用户可以从提供的选项中选择或输入自定义答案。当有多个问题时,用户可以在提交所有答案之前进行导航。


preview

在无头浏览器中渲染本地 HTML 页面并查看结果。

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

该工具在 390、768 和 1440px 宽度下渲染页面,对每个宽度截图,并返回图像以及机器可以证明的内容报告:

检查项捕获的问题
RENDER根元素为空 — 页面未挂载任何内容
RENDER_BLANK截图小于 5 KB,因此实际上为空白
OVERFLOW元素在水平方向上超出视口,并带有像素增量
CLIP元素通过 overflow: hidden 隐藏自身内容

它不判断设计是否正确。这正是截图的作用 — 代理会读取它们。

传递 viewports 作为逗号分隔的宽度列表,以渲染默认集合之外的其他宽度。

仅限本地文件。 远程 URL 将被拒绝。获取任意 URL 会让页面内容将工具重定向到内部服务。

需要 Playwright。 如果未安装,工具将返回 [RENDER_SKIPPED] 并且不验证任何内容 — 它永远不会报告静默通过。使用以下命令安装:

npm i -D playwright && npx playwright install chromium

自定义工具

自定义工具允许您定义自己的函数,LLM 可以调用这些函数。这些函数在您的配置文件中定义,可以执行任意代码。

了解更多关于创建自定义工具的信息。


MCP 服务器

MCP(模型上下文协议)服务器允许您集成外部工具和服务。这包括数据库访问、API 集成和第三方服务。

了解更多关于配置 MCP 服务器的信息。


忽略模式

默认情况下,grep 和 glob 遵循您的 .gitignore:其中列出的文件和目录将从搜索和列表中排除。

要包含通常会被忽略的文件,请在项目根目录中创建一个 .ignore 文件。此文件可以显式允许某些路径。

!node_modules/
!dist/
!build/

例如,此 .ignore 文件允许在 node_modules/、dist/ 和 build/ 目录内进行搜索,即使它们列在 .gitignore 中。

Ctrl+I