Dropstone CLI

Tools

Kelola alat yang dapat digunakan oleh LLM.

Tools memungkinkan LLM untuk melakukan tindakan di dalam codebase Anda. Dropstone hadir dengan seperangkat tools bawaan, tetapi Anda dapat memperluasnya dengan custom tools atau MCP servers.

Secara default, semua tools diaktifkan dan tidak memerlukan izin untuk dijalankan. Anda dapat mengontrol perilaku tools melalui permissions.


Konfigurasi

Gunakan field permission untuk mengontrol perilaku tools. Anda dapat mengizinkan, menolak, atau memerlukan persetujuan untuk setiap tools.

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

Anda juga dapat menggunakan wildcard untuk mengontrol beberapa tools sekaligus. Misalnya, untuk memerlukan persetujuan untuk semua tools dari server MCP:

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

Pelajari lebih lanjut tentang mengonfigurasi permissions.


Bawaan

Berikut adalah semua tools bawaan yang tersedia di Dropstone.


bash

Jalankan perintah shell di lingkungan proyek Anda.

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

Tools ini memungkinkan LLM untuk menjalankan perintah terminal seperti npm install, git status, atau perintah shell lainnya.


edit

Modifikasi file yang ada menggunakan penggantian string yang tepat.

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

Tools ini melakukan pengeditan yang presisi pada file dengan mengganti teks yang cocok secara tepat. Ini adalah cara utama LLM memodifikasi kode.


write

Buat file baru atau timpa file yang sudah ada.

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

Gunakan ini untuk mengizinkan LLM membuat file baru. Tools ini akan menimpa file yang sudah ada jika file tersebut sudah ada.

Note

Tools write dikontrol oleh permission edit, yang mencakup semua modifikasi file (edit, write, apply_patch).


read

Baca isi file dari codebase Anda.

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

Tools ini membaca file dan mengembalikan isinya. Tools ini mendukung pembacaan rentang baris tertentu untuk file besar.


grep

Cari isi file menggunakan ekspresi reguler.

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

Pencarian konten yang cepat di seluruh codebase Anda. Mendukung sintaks regex lengkap dan pemfilteran pola file.


glob

Temukan file dengan pencocokan pola.

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

Cari file menggunakan pola glob seperti **/*.js atau src/**/*.ts. Mengembalikan jalur file yang cocok diurutkan berdasarkan waktu modifikasi.


lsp (eksperimental)

Berinteraksi dengan server LSP yang dikonfigurasi untuk mendapatkan fitur kecerdasan kode seperti definisi, referensi, info hover, dan hierarki panggilan.

Eksperimental

Tools LSP bersifat eksperimental dan dinonaktifkan secara default. Perilaku dapat berubah di antara rilis.

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

Operasi yang didukung termasuk goToDefinition, findReferences, hover, documentSymbol, workspaceSymbol, goToImplementation, prepareCallHierarchy, incomingCalls, dan outgoingCalls.

Untuk mengonfigurasi server LSP mana yang tersedia untuk proyek Anda, lihat LSP Servers.


apply_patch

Terapkan patch ke file.

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

Tools ini menerapkan file patch ke codebase Anda. Berguna untuk menerapkan diff dan patch dari berbagai sumber.

Saat menangani hook tool.execute.before atau tool.execute.after, periksa input.tool === "apply_patch" (bukan "patch").

apply_patch menggunakan output.args.patchText alih-alih output.args.filePath. Jalur disematkan dalam baris penanda di dalam patchText dan relatif terhadap root proyek (contoh: *** Add File: src/new-file.ts, *** Update File: src/existing.ts, *** Move to: src/renamed.ts, *** Delete File: src/obsolete.ts).

Note

Tools apply_patch dikontrol oleh permission edit, yang mencakup semua modifikasi file (edit, write, apply_patch).


skill

Muat skill (file SKILL.md) dan kembalikan isinya dalam percakapan.

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

todowrite

Kelola daftar tugas selama sesi coding.

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

Membuat dan memperbarui daftar tugas untuk melacak kemajuan selama operasi yang kompleks. LLM menggunakan ini untuk mengatur tugas multi-langkah.

Note

Tools ini dinonaktifkan untuk subagen secara default, tetapi Anda dapat mengaktifkannya secara manual. Pelajari lebih lanjut.


webfetch

Ambil konten web.

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

Memungkinkan LLM untuk mengambil dan membaca halaman web. Berguna untuk mencari dokumentasi atau meneliti sumber daya online.


websearch

Cari informasi di web. Tersedia secara default saat Anda masuk ke Dropstone.

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

Melakukan pencarian web untuk menemukan informasi yang relevan secara online. Berguna untuk meneliti topik, menemukan peristiwa terkini, atau mengumpulkan informasi di luar batas data pelatihan. Tidak diperlukan API key atau pengaturan tambahan saat Anda masuk ke Dropstone.

Tip

Gunakan websearch saat Anda perlu menemukan informasi (penemuan), dan webfetch saat Anda perlu mengambil konten dari URL tertentu (pengambilan).


question

Ajukan pertanyaan kepada pengguna selama eksekusi.

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

Tools ini memungkinkan LLM untuk mengajukan pertanyaan kepada pengguna selama tugas. Ini berguna untuk:

  • Mengumpulkan preferensi atau kebutuhan pengguna
  • Mengklarifikasi instruksi yang ambigu
  • Mendapatkan keputusan tentang pilihan implementasi
  • Menawarkan pilihan tentang arah yang akan diambil

Setiap pertanyaan mencakup header, teks pertanyaan, dan daftar opsi. Pengguna dapat memilih dari opsi yang disediakan atau mengetik jawaban kustom. Ketika ada beberapa pertanyaan, pengguna dapat menavigasi di antara mereka sebelum mengirimkan semua jawaban.


preview

Render halaman HTML lokal di browser tanpa kepala (headless) dan lihat hasilnya.

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

Tools ini merender halaman pada 390, 768, dan 1440px, mengambil tangkapan layar masing-masing, dan mengembalikan gambar plus laporan tentang apa yang dapat dibuktikan oleh mesin:

PemeriksaanApa yang ditangkap
RENDERelemen root kosong — halaman tidak memasang apa pun
RENDER_BLANKtangkapan layar di bawah 5 KB, sehingga secara efektif kosong
OVERFLOWelemen menonjol melewati viewport secara horizontal, dengan delta piksel
CLIPelemen menyembunyikan kontennya sendiri melalui overflow: hidden

Ini tidak menilai apakah desainnya benar. Itulah gunanya tangkapan layar — agen membacanya.

Berikan viewports sebagai daftar lebar yang dipisahkan koma untuk merender pada ukuran selain set default.

Hanya file lokal. URL jarak jauh ditolak. Mengambil URL arbitrer akan memungkinkan konten halaman mengarahkan tools ke layanan internal.

Playwright diperlukan. Jika tidak diinstal, tools mengembalikan [RENDER_SKIPPED] dan tidak memverifikasi apa pun — tidak pernah melaporkan kelulusan diam-diam. Instal dengan:

npm i -D playwright && npx playwright install chromium

Custom tools

Custom tools memungkinkan Anda mendefinisikan fungsi sendiri yang dapat dipanggil oleh LLM. Ini didefinisikan dalam file konfigurasi Anda dan dapat mengeksekusi kode arbitrer.

Pelajari lebih lanjut tentang membuat custom tools.


MCP servers

Server MCP (Model Context Protocol) memungkinkan Anda mengintegrasikan tools dan layanan eksternal. Ini termasuk akses database, integrasi API, dan layanan pihak ketiga.

Pelajari lebih lanjut tentang mengonfigurasi server MCP.


Pola abaikan

Secara default, grep dan glob menghormati .gitignore Anda: file dan direktori yang terdaftar di sana dikecualikan dari pencarian dan daftar.

Untuk menyertakan file yang biasanya akan diabaikan, buat file .ignore di root proyek Anda. File ini dapat secara eksplisit mengizinkan jalur tertentu.

!node_modules/
!dist/
!build/

Misalnya, file .ignore ini mengizinkan pencarian di dalam direktori node_modules/, dist/, dan build/ meskipun direktori tersebut terdaftar di .gitignore.

Ctrl+I