Dropstone CLI

設定

Dropstone JSON 設定の使用方法。

JSON 設定ファイルを使用して Dropstone を設定できます。


形式

Dropstone は JSON と JSONC(コメント付き JSON)の両方の形式をサポートしています。

{
  "$schema": "https://dropstone.io/schema/config.json",
  "model": "dropstone/dropstone-pro",
  "autoupdate": true,
  "server": {
    "port": 4096,
  },
}

場所

設定ファイルは複数の場所に配置でき、それぞれに異なる優先順位があります。

Note

設定ファイルは置き換えではなくマージされます。以下の設定場所からの設定が結合されます。競合するキーについてのみ、後方の設定が前方の設定を上書きします。競合しない設定はすべての設定ファイルから保持されます。

たとえば、グローバル設定で autoupdate: true を設定し、プロジェクト設定で model: "dropstone/dropstone-pro" を設定した場合、最終的な設定には両方の設定が含まれます。


優先順位

設定ソースは次の順序で読み込まれます(後方のソースほど前方のソースを上書きします):

  1. リモート設定(.well-known/dropstone から)- 組織のデフォルト
  2. グローバル設定(~/.config/dropstone/dropstone.json)- ユーザー設定
  3. カスタム設定(DROPSTONE_CONFIG 環境変数)- カスタム上書き
  4. プロジェクト設定(プロジェクト内の dropstone.json)- プロジェクト固有の設定
  5. .dropstone ディレクトリ - エージェント、コマンド、プラグイン
  6. 管理設定ファイル(macOS では /Library/Application Support/dropstone/)- 管理者制御
  7. macOS 管理対象設定(MDM 経由の .mobileconfig)- 最優先、ユーザーによる上書き不可

つまり、プロジェクト設定はグローバルのデフォルトを上書きでき、グローバル設定はリモートの組織デフォルトを上書きできます。管理対象設定はすべてを上書きします。

Note

.dropstone ディレクトリと ~/.config/dropstone ディレクトリは、サブディレクトリに複数形の名前を使用します:agents/、commands/、modes/、plugins/、skills/、tools/。単数形の名前(例:agent/)も後方互換性のためにサポートされています。


リモート

組織は自社ドメインの .well-known/dropstone エンドポイントを介してデフォルト設定を提供できます。Dropstone は、その組織に登録されたアカウントを持つユーザーが初回サインインしたときに、これを自動的に取得します。

リモート設定が最初に読み込まれ、基本レイヤーとして機能します。他のすべての設定ソース(グローバル、プロジェクト)はこれらのデフォルトを上書きできます。

たとえば、組織がデフォルトで無効になっている MCP サーバーを提供している場合:

{
  "mcp": {
    "jira": {
      "type": "remote",
      "url": "https://jira.example.com/mcp",
      "enabled": false
    }
  }
}

ローカル設定で特定のサーバーを有効にできます:

{
  "mcp": {
    "jira": {
      "type": "remote",
      "url": "https://jira.example.com/mcp",
      "enabled": true
    }
  }
}

グローバル

グローバルな Dropstone 設定は ~/.config/dropstone/dropstone.json に配置します。モデルや権限などのユーザー全体の設定にはグローバル設定を使用します。

セッションレベルの設定(キーバインド、スクロール、マウスキャプチャ)には、~/.config/dropstone/tui.json を使用します。

グローバル設定はリモートの組織デフォルトを上書きします。


プロジェクトごと

プロジェクトのルートに dropstone.json を追加します。プロジェクト設定は標準設定ファイルの中で最も優先順位が高く、グローバル設定とリモート設定の両方を上書きします。

プロジェクト固有のセッション設定には、同じ場所に tui.json を追加します。

Tip

プロジェクト固有の設定はプロジェクトのルートに配置してください。

Dropstone は起動時に、現在のディレクトリまたは最も近い Git ディレクトリまで遡って設定ファイルを探します。

これは Git にチェックインしても安全で、グローバル設定と同じスキーマを使用します。


カスタムパス

DROPSTONE_CONFIG 環境変数を使用して、カスタム設定ファイルのパスを指定できます。

export DROPSTONE_CONFIG=/path/to/my/custom-config.json
dropstone run "Hello world"

カスタム設定は、優先順位においてグローバル設定とプロジェクト設定の間に読み込まれます。


管理対象設定

組織はユーザーが上書きできない設定を強制できます。管理対象設定は最優先ティアで読み込まれます。

ファイルベース

システムの管理対象設定ディレクトリに dropstone.json または dropstone.jsonc ファイルを配置します:

プラットフォームパス
macOS/Library/Application Support/dropstone/
Linux/etc/dropstone/
Windows%ProgramData%\dropstone

これらのディレクトリへの書き込みには管理者/root アクセスが必要なため、ユーザーは変更できません。

macOS 管理対象設定

macOS では、Dropstone は ai.dropstone.managed 設定ドメインから管理対象設定を読み取ります。MDM(Jamf、Kandji、FleetDM)を介して .mobileconfig を展開すると、設定が自動的に適用されます。

Dropstone は次のパスを確認します:

  1. /Library/Managed Preferences/<user>/ai.dropstone.managed.plist
  2. /Library/Managed Preferences/ai.dropstone.managed.plist

plist キーは dropstone.json フィールドに直接マッピングされます。MDM メタデータキー(PayloadUUID、PayloadType など)は自動的に削除されます。

.mobileconfig の作成

ai.dropstone.managed PayloadType を使用します。Dropstone 設定キーはペイロード dict に直接配置します:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
  "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>PayloadContent</key>
  <array>
    <dict>
      <key>PayloadType</key>
      <string>ai.dropstone.managed</string>
      <key>PayloadIdentifier</key>
      <string>com.example.dropstone.config</string>
      <key>PayloadUUID</key>
      <string>GENERATE-YOUR-OWN-UUID</string>
      <key>PayloadVersion</key>
      <integer>1</integer>
      <key>share</key>
      <string>disabled</string>
      <key>server</key>
      <dict>
        <key>hostname</key>
        <string>127.0.0.1</string>
      </dict>
      <key>permission</key>
      <dict>
        <key>*</key>
        <string>ask</string>
        <key>bash</key>
        <dict>
          <key>*</key>
          <string>ask</string>
          <key>rm -rf *</key>
          <string>deny</string>
        </dict>
      </dict>
    </dict>
  </array>
  <key>PayloadType</key>
  <string>Configuration</string>
  <key>PayloadIdentifier</key>
  <string>com.example.dropstone</string>
  <key>PayloadUUID</key>
  <string>GENERATE-YOUR-OWN-UUID</string>
  <key>PayloadVersion</key>
  <integer>1</integer>
</dict>
</plist>

uuidgen で一意の UUID を生成します。組織の要件に合わせて設定をカスタマイズします。

MDM を介した展開

  • Jamf Pro: Computers > Configuration Profiles > Upload > 対象デバイスまたはスマートグループにスコープ
  • FleetDM: .mobileconfig を gitops リポジトリの mdm.macos_settings.custom_settings に追加し、fleetctl apply を実行

デバイスでの検証

テスト用に .mobileconfig をダブルクリックしてローカルにインストールし(システム設定 > プライバシーとセキュリティ > プロファイルに表示)、次に実行します:

dropstone debug config

すべての管理対象設定キーが解決済み設定に表示され、ユーザーまたはプロジェクト設定で上書きすることはできません。


スキーマ

メインの設定スキーマは dropstone.io/config.json で定義されています。

セッションレベルの設定(tui.json)は dropstone.io/tui.json を使用します。

エディタはスキーマに基づいて検証と自動補完ができるはずです。


セッション設定

セッションレベルの設定(スクロール動作、マウスキャプチャ、差分レンダリングなど)には、専用の tui.json(または tui.jsonc)ファイルを使用します。

{
  "$schema": "https://dropstone.io/schema/tui.json",
  "scroll_speed": 3,
  "scroll_acceleration": {
    "enabled": true
  },
  "diff_style": "auto",
  "mouse": true
}

dropstone.json のレガシーな theme、keybinds、およびセッション関連キーは非推奨であり、可能な場合は自動的に移行されます。


サーバー

server オプションを使用して、dropstone serve および dropstone web コマンドのサーバー設定を構成できます。

{
  "$schema": "https://dropstone.io/schema/config.json",
  "server": {
    "port": 4096,
    "hostname": "0.0.0.0",
    "mdns": true,
    "mdnsDomain": "myproject.local",
    "cors": ["http://localhost:5173"]
  }
}

利用可能なオプション:

  • port - リッスンするポート。
  • hostname - リッスンするホスト名。mdns が有効でホスト名が設定されていない場合、デフォルトで 0.0.0.0 になります。
  • mdns - mDNS サービスディスカバリを有効にします。これにより、ネットワーク上の他のデバイスが Dropstone サーバーを検出できるようになります。
  • mdnsDomain - mDNS サービスのカスタムドメイン名。デフォルトは dropstone.local です。同じネットワーク上で複数のインスタンスを実行する場合に便利です。
  • cors - ブラウザベースのクライアントから HTTP サーバーを使用する際に CORS で許可する追加のオリジン。値は完全なオリジン(スキーム + ホスト + オプションのポート)である必要があります。例:https://app.example.com。

サーバーの詳細はこちら。


シェル

shell オプションを使用して、対話型ターミナルで使用するシェルを構成できます。互換性のあるシェルはエージェントのツール呼び出しにも使用されます。

{
  "$schema": "https://dropstone.io/schema/config.json",
  "shell": "pwsh"
}

指定しない場合、Dropstone はオペレーティングシステムに基づいて適切なデフォルトを自動的に検出して使用します(例:Windows では pwsh または cmd.exe、macOS/Linux では /bin/zsh または /bin/bash)。絶対パスまたは短い名前を指定できます。


ツール

tools オプションを使用して、LLM が使用できるツールを管理できます。

{
  "$schema": "https://dropstone.io/schema/config.json",
  "tools": {
    "write": false,
    "bash": false
  }
}

ツールの詳細はこちら。


モデル

model オプションでデフォルトのモデルを設定します。Dropstone には 3 つのティアがあります:

ティアモデル ID
Fastdropstone/dropstone-fast
Prodropstone/dropstone-pro
Heavydropstone/dropstone-heavy
{
  "$schema": "https://dropstone.io/schema/config.json",
  "model": "dropstone/dropstone-pro"
}

variant でデフォルトの推論深度を固定します:

{
  "$schema": "https://dropstone.io/schema/config.json",
  "model": "dropstone/dropstone-pro",
  "variant": "high"
}

有効な variant 値は low、medium、high、xhigh です。完全な内訳は Models を参照してください。

small_model オプションは、タイトル生成などの軽量タスク用に別のモデルを構成します。デフォルトでは Dropstone が適切なティアを選択しますが、明示的に上書きできます:

{
  "$schema": "https://dropstone.io/schema/config.json",
  "model": "dropstone/dropstone-pro",
  "small_model": "dropstone/dropstone-fast"
}

エージェント

agent オプションを使用して、特定のタスク用の専門エージェントを構成できます。

{
  "$schema": "https://dropstone.io/schema/config.json",
  "agent": {
    "code-reviewer": {
      "description": "ベストプラクティスと潜在的な問題についてコードをレビューします",
      "model": "dropstone/dropstone-pro",
      "prompt": "あなたはコードレビュアーです。セキュリティ、パフォーマンス、保守性に焦点を当ててください。",
      "tools": {
        // レビューのみのエージェントではファイル変更ツールを無効にする
        "write": false,
        "edit": false,
      },
    },
  },
}

~/.config/dropstone/agents/ または .dropstone/agents/ のマークダウンファイルを使用してエージェントを定義することもできます。詳細はこちら。


デフォルトエージェント

default_agent オプションを使用してデフォルトのエージェントを設定できます。これにより、明示的に指定されていない場合に使用されるエージェントが決まります。

{
  "$schema": "https://dropstone.io/schema/config.json",
  "default_agent": "plan"
}

デフォルトのエージェントはプライマリエージェント(サブエージェントではない)である必要があります。これは "build" や "plan" のような組み込みエージェント、または定義したカスタムエージェントにすることができます。指定したエージェントが存在しない場合やサブエージェントの場合、Dropstone は警告とともに "build" にフォールバックします。

この設定は、対話型セッション、ワンショット実行(dropstone run)、GitHub Action など、すべてのインターフェースに適用されます。


コマンド

command オプションを使用して、繰り返しのタスク用のカスタムコマンドを構成できます。

{
  "$schema": "https://dropstone.io/schema/config.json",
  "command": {
    "test": {
      "template": "カバレッジレポート付きで完全なテストスイートを実行し、失敗があれば表示します。\n失敗したテストに焦点を当てて修正を提案してください。",
      "description": "カバレッジ付きでテストを実行",
      "agent": "build",
      "model": "dropstone/dropstone-fast",
    },
    "component": {
      "template": "$ARGUMENTS という名前の新しい React コンポーネントを TypeScript サポート付きで作成します。\n適切な型付けと基本的な構造を含めてください。",
      "description": "新しいコンポーネントを作成",
    },
  },
}

~/.config/dropstone/commands/ または .dropstone/commands/ のマークダウンファイルを使用してコマンドを定義することもできます。詳細はこちら。


レビューの労力

組み込みの /review コマンドは多段階のレビューを実行します:独立したファインダー角度が候補を表面化し、検証者が各候補を確認または反駁し、生き残った発見のみが報告されます。review.effort を設定して、実行する角度の数と保持する発見の数を選択します。

{
  "$schema": "https://dropstone.io/schema/config.json",
  "review": {
    "effort": "high"
  }
}
値角度角度あたりの候補発見追加
low1 差分パス—8検証なし、サブエージェントなし、ハンクのみ
medium868精度重視の検証
high(デフォルト)8610再現率重視の検証
xhigh10815インライン角度、重複排除のみ、ギャップスイープ
max10815再現率重視の検証に加えてギャップスイープ

労力が高くなると、より多くのファインダーと検証者のサブエージェントが生成されるため、コストと時間がかかります。


キーマップ

tui.json の keymap でキーボードショートカットをカスタマイズします。

{
  "$schema": "https://dropstone.io/schema/tui.json",
  "keymap": {
    "sections": {
      "global": {
        "command.palette.show": "ctrl+p"
      }
    }
  }
}

keymap は組み込みのデフォルトとマージされるため、変更したいショートカットのみを構成すればよいです。

古い keybinds フィールドは非推奨であり、keymap が存在しない場合にのみ適用されます。

詳細はこちら。


スナップショット

Dropstone はスナップショットを使用してエージェント操作中のファイル変更を追跡し、セッション内で変更を元に戻したり取り消したりできるようにします。スナップショットはデフォルトで有効です。

大規模なリポジトリや多くのサブモジュールがあるプロジェクトでは、スナップショットシステムがインデックス作成の遅延やディスク使用量の増加を引き起こす可能性があります。snapshot オプションを使用してスナップショットを無効にできます。

{
  "$schema": "https://dropstone.io/schema/config.json",
  "snapshot": false
}

スナップショットを無効にすると、エージェントによる変更を UI からロールバックできなくなることに注意してください。


自動更新

Dropstone は起動時に新しいアップデートを自動的にダウンロードします。autoupdate オプションでこれを無効にできます。

{
  "$schema": "https://dropstone.io/schema/config.json",
  "autoupdate": false
}

アップデートは不要だが、新しいバージョンが利用可能になったときに通知を受け取りたい場合は、autoupdate を "notify" に設定します。 これは Homebrew などのパッケージマネージャーを使用してインストールされていない場合にのみ機能することに注意してください。


フォーマッタ

formatter オプションを使用して、コードフォーマッタを有効にして構成できます。省略するとフォーマッタは無効のままになります。

{
  "$schema": "https://dropstone.io/schema/config.json",
  "formatter": true
}

オブジェクトを使用すると、組み込みを有効にしたまま、上書きやカスタムフォーマッタを構成できます。

{
  "$schema": "https://dropstone.io/schema/config.json",
  "formatter": {
    "prettier": {
      "disabled": true
    },
    "custom-prettier": {
      "command": ["npx", "prettier", "--write", "$FILE"],
      "environment": {
        "NODE_ENV": "development"
      },
      "extensions": [".js", ".ts", ".jsx", ".tsx"]
    }
  }
}

フォーマッタの詳細はこちら。


LSP サーバー

lsp オプションを使用して、LSP サーバーを有効にして構成できます。省略すると LSP は無効のままになります。

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

オブジェクトを使用すると、組み込みを有効にしたまま、上書きやカスタム LSP サーバーを構成できます。

{
  "$schema": "https://dropstone.io/schema/config.json",
  "lsp": {
    "typescript": {
      "disabled": true
    }
  }
}

LSP サーバーの詳細はこちら。


権限

デフォルトでは、Dropstone は明示的な承認なしですべての操作を許可します。permission オプションを使用してこれを変更できます。

たとえば、edit ツールと bash ツールにユーザーの承認を要求するには:

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

権限の詳細はこちら。


コンパクション

compaction オプションを使用して、コンテキストのコンパクション動作を制御できます。

{
  "$schema": "https://dropstone.io/schema/config.json",
  "compaction": {
    "auto": true,
    "prune": true,
    "reserved": 10000
  }
}
  • auto - コンテキストがいっぱいになったときにセッションを自動的にコンパクト化します(デフォルト:true)。
  • prune - トークンを節約するために古いツール出力を削除します(デフォルト:true)。
  • reserved - コンパクション用のトークンバッファ。コンパクション中のオーバーフローを防ぐのに十分なウィンドウを残します。

ウォッチャー

watcher オプションを使用して、ファイルウォッチャーの無視パターンを構成できます。

{
  "$schema": "https://dropstone.io/schema/config.json",
  "watcher": {
    "ignore": ["node_modules/**", "dist/**", ".git/**"]
  }
}

パターンは glob 構文に従います。ファイル監視からノイズの多いディレクトリを除外するために使用します。


MCP サーバー

mcp オプションを使用して、使用したい MCP サーバーを構成できます。

{
  "$schema": "https://dropstone.io/schema/config.json",
  "mcp": {}
}

詳細はこちら。


プラグイン

プラグイン は、カスタムツール、フック、統合で Dropstone を拡張します。

プラグインファイルを .dropstone/plugins/ または ~/.config/dropstone/plugins/ に配置します。plugin オプションを使用して npm からプラグインを読み込むこともできます。

{
  "$schema": "https://dropstone.io/schema/config.json",
  "plugin": ["@my-org/custom-plugin", "./local-plugin.ts"]
}

詳細はこちら。


指示

instructions オプションを使用して、使用しているモデルの指示を構成できます。

{
  "$schema": "https://dropstone.io/schema/config.json",
  "instructions": ["CONTRIBUTING.md", "docs/guidelines.md", ".cursor/rules/*.md"]
}

これは指示ファイルへのパスと glob パターンの配列を受け取ります。ルールの詳細はこちら。


実験的

experimental キーには、活発に開発中のオプションが含まれています。

{
  "$schema": "https://dropstone.io/schema/config.json",
  "experimental": {}
}

不安定

実験的オプションは安定していません。予告なく変更または削除される可能性があります。


変数

設定ファイルで変数置換を使用して、環境変数やファイルの内容を参照できます。


環境変数

{env:VARIABLE_NAME} を使用して環境変数を置換します:

{
  "$schema": "https://dropstone.io/schema/config.json",
  "model": "{env:DROPSTONE_MODEL}"
}

環境変数が設定されていない場合、空の文字列に置き換えられます。


ファイル

{file:path/to/file} を使用してファイルの内容を置換します:

{
  "$schema": "https://dropstone.io/schema/config.json",
  "instructions": ["./custom-instructions.md"]
}

ファイルパスは次のいずれかになります:

  • 設定ファイルのディレクトリからの相対パス
  • または / や ~ で始まる絶対パス

これらは次の場合に便利です:

  • 設定を散らかさずに大きな指示ファイルを含める。
  • 複数の設定ファイル間で共通の設定スニペットを共有する。
Ctrl+I