設定
Dropstone JSON 設定の使用方法。
Dropstone は JSON 設定ファイルを使用して設定できます。
フォーマット
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" を設定した場合、最終的な設定には両方の設定が含まれます。
優先順位
設定ソースはこの順序で読み込まれます(後のソースが前のソースを上書きします):
- リモート設定(
.well-known/dropstoneから)- 組織のデフォルト - グローバル設定(
~/.config/dropstone/dropstone.json)- ユーザー設定 - カスタム設定(
DROPSTONE_CONFIG環境変数)- カスタムオーバーライド - プロジェクト設定(プロジェクト内の
dropstone.json)- プロジェクト固有の設定 .dropstoneディレクトリ - エージェント、コマンド、プラグイン- 管理設定ファイル(macOS の
/Library/Application Support/dropstone/)- 管理者が制御 - 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 を追加します。
ヒント:
プロジェクト固有の設定をプロジェクトのルートに配置します。
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 |
これらのディレクトリは書き込みに管理者/ルートアクセスが必要なため、ユーザーは変更できません。
macOS 管理設定
macOS では、Dropstone は ai.dropstone.managed 設定ドメインから管理設定を読み込みます。MDM(Jamf、Kandji、FleetDM)経由で .mobileconfig をデプロイすると、設定は自動的に強制されます。
Dropstone は以下のパスをチェックします:
/Library/Managed Preferences/<user>/ai.dropstone.managed.plist/Library/Managed Preferences/ai.dropstone.managed.plist
plist キーは dropstone.json フィールドに直接マップされます。MDM メタデータキー(PayloadUUID、PayloadType など)は自動的に削除されます。
.mobileconfig の作成
ai.dropstone.managed PayloadType を使用します。Dropstone 設定キーはペイロード辞書に直接入ります:
<?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 をダブルクリックしてローカルにインストールしてテストします(System Settings > Privacy & Security > Profiles に表示されます)。その後、以下を実行します:
dropstone debug config
すべての管理設定キーが解決された設定に表示され、ユーザーまたはプロジェクト設定で上書きできません。
スキーマ
メイン設定スキーマは dropstone.io/config.json で定義されています。
セッションレベル設定(tui.json)は dropstone.io/tui.json を使用します。
エディタはスキーマに基づいて検証と自動補完ができるはずです。
セッション設定
セッションレベルの設定用に専用の tui.json(または tui.jsonc)ファイルを使用します:スクロール動作、マウスキャプチャ、diff レンダリングなど。
{
"$schema": "https://dropstone.io/schema/tui.json",
"scroll_speed": 3,
"scroll_acceleration": {
"enabled": true
},
"diff_style": "auto",
"mouse": true
}
dropstone.json のレガシー theme、keybinds、セッション関連キーは非推奨で、可能な場合は自動的に移行されます。
サーバー
dropstone serve および dropstone web コマンドのサーバー設定は server オプションで設定できます。
{
"$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 |
|---|---|
| Fast | dropstone/dropstone-fast |
| Pro | dropstone/dropstone-pro |
| Heavy | dropstone/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": "Reviews code for best practices and potential issues",
"model": "dropstone/dropstone-pro",
"prompt": "You are a code reviewer. Focus on security, performance, and maintainability.",
"tools": {
// Disable file modification tools for review-only agent
"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": "Run the full test suite with coverage report and show any failures.\nFocus on the failing tests and suggest fixes.",
"description": "Run tests with coverage",
"agent": "build",
"model": "dropstone/dropstone-fast",
},
"component": {
"template": "Create a new React component named $ARGUMENTS with TypeScript support.\nInclude proper typing and basic structure.",
"description": "Create a new component",
},
},
}
~/.config/dropstone/commands/ または .dropstone/commands/ のマークダウンファイルを使用してコマンドを定義することもできます。詳細はこちら。
キーマップ
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
}
}
}
アクセス許可
デフォルトでは、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"]
}
ファイルパスは以下のいずれかです:
- 設定ファイルディレクトリからの相対パス
- または
/または~で始まる絶対パス
これは以下の場合に便利です:
- 設定を散らかさずに大きな指示ファイルを含める。
- 複数の設定ファイル間で共通の設定スニペットを共有する。