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

プロジェクト環境でシェルコマンドを実行します。

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

このツールを使用すると、LLMは npm install、git status、その他のシェルコマンドなどのターミナルコマンドを実行できます。


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

**/*.js や src/**/*.ts などのglobパターンを使用してファイルを検索します。変更時刻でソートされた一致するファイルパスを返します。


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.filePath の代わりに output.args.patchText を使用します。パスは 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

コーディングセッション中にTODOリストを管理します。

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

複雑な操作中の進捗を追跡するためのタスクリストを作成および更新します。LLMはこれを使用して複数ステップのタスクを整理します。

Note

このツールはデフォルトではサブエージェントに対して無効ですが、手動で有効にできます。詳細はこちら。


webfetch

Webコンテンツを取得します。

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

LLMがWebページを取得して読むことを許可します。ドキュメントの参照やオンラインリソースの調査に役立ちます。


websearch

情報をWebで検索します。Dropstoneにサインインしている場合、デフォルトで利用できます。

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

関連する情報をオンラインで見つけるためにWeb検索を実行します。トピックの調査、最新のイベントの発見、トレーニングデータのカットオフを超えた情報の収集に役立ちます。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(Model Context Protocol)サーバーを使用すると、外部ツールやサービスを統合できます。これには、データベースアクセス、API統合、サードパーティサービスが含まれます。

MCPサーバーの設定について詳しくは、こちらをご覧ください。


無視パターン

デフォルトでは、grep と glob は .gitignore を尊重します: そこにリストされているファイルとディレクトリは、検索と一覧表示から除外されます。

通常は無視されるファイルを含めるには、プロジェクトルートに .ignore ファイルを作成します。このファイルは特定のパスを明示的に許可できます。

!node_modules/
!dist/
!build/

たとえば、この .ignore ファイルは、node_modules/、dist/、build/ ディレクトリが .gitignore にリストされていても、それらの中での検索を許可します。

Ctrl+I