Skip to main content
Anda menjalankan perintah plugin baik sebagai claude plugin dari shell atau skrip Anda, atau sebagai /plugin dan /reload-plugins di dalam sesi Claude Code. Referensi ini memberikan flag, default, output, dan kode keluar setiap perintah, bersama dengan dua flag yang memuat plugin untuk satu sesi. Tabel di bawah ini mencantumkan opsi yang umum digunakan untuk setiap subperintah, bukan semua opsi. Jalankan claude plugin --help di shell Anda untuk melihat subperintah mana yang dimiliki versi Anda, dan claude plugin <subcommand> --help untuk daftar opsi lengkap suatu subperintah.
Kasus-kasus ini tercakup di halaman lain:

Perintah claude plugin

Jalankan claude plugin <subcommand> dari shell Anda atau dari skrip, di luar sesi Claude Code. Subperintah ini menginstal dan mengelola plugin tanpa membuka panel /plugin. claude plugins adalah alias untuk claude plugin. Setiap subperintah menggunakan exit code, argumen plugin, dan nilai cakupan yang sama berikut ini:
  • Exit code: 0 jika berhasil dan 1 jika gagal. validate menambahkan exit 2 untuk kesalahan yang tidak terduga, dan eval menambahkan kode yang tercantum di bagiannya.
  • Argumen plugin: argumen <plugin> adalah name plugin atau name@marketplace. Jika dua marketplace menawarkan nama yang sama, gunakan bentuk yang memenuhi syarat (qualified). configure hanya menerima bentuk yang memenuhi syarat.
  • Cakupan: --scope menerima user, project, atau local, dan menentukan file pengaturan yang ditulis oleh perintah tersebut. update juga menerima managed.

plugin init

Membuat kerangka plugin baru di ~/.claude/skills/<name>/. Plugin ini dimuat pada sesi Anda berikutnya sebagai <name>@skills-dir tanpa langkah instalasi. new adalah alias untuk init. Untuk alur kerja membuat, menguji, dan mengedit yang dimulai dengan perintah ini, lihat Membuat plugin.
<name> menjadi nama direktori di bawah ~/.claude/skills/ dan name plugin di manifesnya. Perintah ini tidak memiliki flag untuk lokasi lain. Untuk membuat kerangka di dalam proyek, lihat Membuat plugin. Buat kerangka plugin dengan file skill dan hook awal:
Claude Code memvalidasi apa yang ditulisnya dan mencetak Created plugin "my-helper" at ~/.claude/skills/my-helper, diikuti oleh id yang digunakan saat dimuat dan perintah claude plugin disable yang menonaktifkannya. Claude Code keluar dengan 1 tanpa menulis apa pun jika tidak dapat membuat kerangka dengan aman, dan pesannya menyebutkan alasannya. Berikut alasan yang umum:
  • Nilai --with yang tidak dikenal
  • Kerangka yang sudah ada di target tanpa --force
  • Pengaturan terkelola yang memblokir plugin direktori skills

plugin install

Menginstal plugin dari salah satu marketplace Anda. i adalah alias untuk install.
Sebagian besar plugin terinstal tanpa permintaan konfirmasi. Untuk plugin yang entri marketplace-nya menjalankan perintah untuk menginstalnya atau menetapkan headersHelper untuk unduhannya, Claude Code terlebih dahulu mencetak perintah tersebut dan bertanya Run this command now? [y/N]. Jalankan claude plugin install --help di shell Anda untuk melihat setiap opsi yang didukung versi Anda. Berikan -y dari terminal Anda sendiri untuk menerima perintah yang ditampilkan tanpa permintaan konfirmasi. Berikut yang terjadi tanpa TTY dan ketika Claude menjalankan perintah tersebut:
  • stdin atau stdout bukan TTY, dan Anda tidak memberikan -y maupun --accept-command: instalasi ditolak. Output menyatakan bahwa perintah hanya ditampilkan, dan exit code-nya 1
  • Claude menjalankan perintah melalui tool Bash-nya: -y diabaikan. Jalankan perintah dari terminal Anda sendiri sebagai gantinya
Instal plugin untuk semua orang yang meng-clone proyek:
Claude Code mencetak Successfully installed plugin: formatter@my-marketplace (scope: project). Jika tidak ada yang baru terinstal, output menjelaskan alasannya:
  • Sudah terinstal di cakupan tersebut: outputnya Plugin "formatter@my-marketplace" is already installed (scope: project) dan exit code-nya 0
  • Anda menolak permintaan konfirmasi command-source: outputnya Aborted. dan exit code-nya 1
  • Anda menolak permintaan konfirmasi headersHelper, atau permintaan tersebut tidak dapat dikonfirmasi tanpa TTY: outputnya Aborted — the command was not run. dan exit code-nya 1

Format hasil JSON

Ketika Anda memberikan --json ke plugin install, baris terakhir stdout adalah satu objek JSON. Uraikan hanya baris tersebut, karena Claude Code mencetak setiap perintah yang dideklarasikan marketplace sebelumnya. Tiga field selalu ada:
  • command: subperintah yang dijalankan, seperti install
  • outcome: ok atau failed
  • message: deskripsi hasil yang dapat dibaca manusia
Field lain, seperti pluginId, scope, dan failureCode, hanya muncul jika relevan. Opsi --json pada plugin uninstall, plugin update, plugin enable, dan plugin disable mencetak objek yang sama dengan field milik subperintah tersebut. Kesalahan penggunaan, seperti --scope yang tidak valid, tidak mencetak baris hasil dan keluar dengan 1 dengan alasannya di stderr.

Hasil JSON untuk perintah marketplace

Pada plugin marketplace add, plugin marketplace remove, dan plugin marketplace update, --json mencetak satu objek JSON pada baris terakhir stdout dengan field command, outcome, dan message. Berikut adalah hasil dari claude plugin marketplace remove your-marketplace --json:
Nilai command adalah marketplace-add, marketplace-remove, atau marketplace-update. Field di bawah ini hanya muncul jika relevan:
  • marketplace: nama marketplace yang ditindaklanjuti oleh perintah
  • failureCode: kode yang menjelaskan mengapa perintah gagal, seperti invalid_source
plugin marketplace add dan plugin marketplace remove dapat tidak mencetak baris hasil ketika argumennya adalah nama yang dicadangkan anthropic-plugin-directory, jadi periksa exit code untuk nama tersebut.

Menerima perintah instalasi yang ditampilkan

Ketika eksekusi --json menampilkan perintah yang dideklarasikan marketplace dan tidak menjalankannya, hasil failed juga membawa objek shownCommand. Field-nya mencakup perintah sebagaimana ditampilkan, plugin pemiliknya, dan sha256 dari perintah tersebut. Untuk menerima tepat perintah tersebut, jalankan ulang dengan sha256 tersebut sebagai --accept-command dari terminal Anda sendiri, karena flag ini tidak berpengaruh di dalam sesi Claude Code. Memerlukan Claude Code v2.1.271 atau yang lebih baru. sha256 dihitung sebagai penerimaan untuk tepat perintah, plugin, dan katalog marketplace tersebut. Jika salah satunya berubah sejak perintah ditampilkan, Claude Code tidak menerima sha256 tersebut dan menampilkan perintahnya lagi. Perubahan yang diambil oleh penyegaran marketplace dari eksekusi itu sendiri juga dihitung sebagai perubahan semacam itu. Jika shownCommand.acceptCommandMatched bernilai false, sha256 yang Anda berikan tidak cocok dengan perintah yang sekarang ditampilkan. Tinjau perintah tersebut sebelum menjalankan ulang dengan sha256-nya.

plugin uninstall

Menghapus plugin yang terinstal dari satu cakupan. remove dan rm adalah alias untuk uninstall.
Hapus instalasi plugin dari cakupan project:
Claude Code mencetak Successfully uninstalled plugin: formatter (scope: project). Jika plugin tidak terinstal di cakupan tersebut, perintah mencetak baris yang diawali Failed to uninstall plugin "formatter@my-marketplace": dan keluar dengan 1. Jika baris kegagalan berlanjut dengan "formatter" was not uninstalled: dan menyebutkan file pengaturan, Claude Code tidak dapat memastikan bahwa pengaturan cakupan tersebut tidak lagi mengaktifkan plugin, sehingga plugin tetap terinstal beserta semua yang disimpannya. Dengan --json, hasilnya membawa failureCode: "settings_still_on". Pemeriksaan pengaturan ini memerlukan Claude Code v2.1.282 atau yang lebih baru.

Apa yang dihapus dan dipertahankan oleh penghapusan instalasi

Ketika Anda menghapus instalasi plugin dari cakupan terakhir tempat plugin tersebut terinstal, Claude Code juga menghapus opsi dan rahasia yang tersimpan milik plugin serta direktori datanya, ~/.claude/plugins/data/<id>/. Ada tiga pengecualian:
  • Dengan --keep-data, direktori data tetap ada
  • Ketika plugin lain yang terinstal menggunakan folder yang sama, seperti plugin yang ID-nya berbeda dari plugin ini hanya dalam huruf besar/kecil, direktori data tetap ada
  • Ketika Claude Code tidak dapat membaca kembali daftar plugin yang terinstal setelah menghapus plugin dari cakupan tersebut, opsi, rahasia, dan direktori data semuanya tetap ada, karena plugin mungkin masih terinstal di cakupan lain. Penghapusan instalasi tetap berhasil. Pesannya mencantumkan apa yang tetap ada dan cara menghapusnya, dan dengan --json hasilnya membawa savedKept: "install_records_unreadable"
Dengan --json, keptData melaporkan apakah direktori tetap ada, dan /plugin menampilkan · data preserved jika demikian. Untuk direktori yang tetap ada tanpa --keep-data, pelaporan ini memerlukan Claude Code v2.1.281 atau yang lebih baru. Field savedKept memerlukan Claude Code v2.1.282 atau yang lebih baru.

plugin enable

Mengaktifkan plugin yang dinonaktifkan. Untuk plugin yang disinkronkan dari claude.ai, berikan <name>@synced sebagai plugin.
Tanpa --scope, perintah memeriksa file pengaturan Anda dengan urutan local, project, user, dan menggunakan cakupan pertama yang menyebutkan plugin tersebut. Jika Anda memberikan --scope tempat plugin tidak dideklarasikan, perintah akan menulis override atau gagal:
  • Cakupan yang diutamakan daripada cakupan yang mendeklarasikan: Claude Code menulis override di cakupan yang Anda berikan. Misalnya, claude plugin disable formatter --scope local menonaktifkan plugin yang diaktifkan di project hanya untuk Anda
  • Cakupan lainnya: perintah gagal dengan Plugin "formatter" is installed at project scope, not user. Use --scope project or omit --scope to auto-detect.
Jika plugin sudah diaktifkan di cakupan yang ditentukan, perintah mencetak Plugin "formatter" is already enabled dan keluar dengan 1. Dengan --json, hasilnya memiliki "failureCode": "already_in_goal_state" dan "alreadyInGoalState": true, sehingga skrip dapat memperlakukan kasus tersebut sebagai keberhasilan. Ketika plugin mendeklarasikan dependensi, Claude Code juga mengaktifkannya. Perintah gagal dalam kasus-kasus berikut:
  • Dependensi tidak terinstal: pengaktifan gagal dan mencetak perintah claude plugin install untuk setiap dependensi yang hilang
  • Dependensi diblokir oleh kebijakan plugin organisasi Anda: pengaktifan gagal dan menyebutkan dependensi yang diblokir
  • Dependensi diatur ke false di cakupan dengan prioritas lebih tinggi daripada cakupan target: pengaktifan gagal. Aktifkan dependensi di cakupan tersebut, atau berikan --scope untuk menulis di sana
Aktifkan kembali plugin di mana pun plugin tersebut dideklarasikan:
Claude Code mencetak Successfully enabled plugin: formatter (scope: project), dengan menyebutkan cakupan yang terdeteksi.

plugin disable

Menonaktifkan plugin tanpa menghapus instalasinya. Untuk plugin yang disinkronkan dari claude.ai, berikan <name>@synced sebagai plugin.
Tanpa --scope, cakupan dideteksi otomatis dengan urutan local, project, user yang sama seperti plugin enable. Jika Anda tidak memberikan nama plugin maupun --all, Claude Code mencetak Please specify a plugin name or use --all to disable all plugins dan keluar dengan 1. Menonaktifkan plugin yang sudah dinonaktifkan mencetak Plugin "formatter" is already disabled dan keluar dengan 1, sama seperti yang dilakukan plugin enable untuk plugin yang sudah diaktifkan. Perintah gagal untuk plugin yang masih dibutuhkan:
  • Plugin aktif lain bergantung pada plugin tersebut: perintah gagal dan menyebutkan plugin dependen yang harus dinonaktifkan terlebih dahulu
  • Organisasi Anda mewajibkannya sebagai plugin yang disinkronkan: perintah gagal dan tidak menyimpan apa pun
Nonaktifkan satu plugin:
Claude Code mencetak Successfully disabled plugin: formatter (scope: project).

plugin update

Memperbarui plugin ke versi terbaru yang ditawarkan marketplace-nya. Versi baru dimuat pada sesi Anda berikutnya, atau setelah Anda menjalankan /reload-plugins di sesi yang sedang berjalan.
Perbarui plugin:
Claude Code mencetak Checking for updates for plugin "formatter@my-marketplace"…, lalu hasilnya. Jika tidak ada yang lebih baru, Claude Code mencetak formatter is already at the latest version (1.0.0). dan keluar dengan 0, kecuali jika Claude Code mencoba ulang instalasi dependensi plugin dan instalasi tersebut gagal.

Cakupan mana yang diperbarui perintah

Jika Anda menghilangkan --scope, perintah memperbarui plugin di cakupan paling spesifik tempat plugin tersebut terinstal untuk proyek Anda saat ini, dengan memeriksa local, project, user, lalu managed. Sebelum v2.1.281, perintah menggunakan user ketika Anda menghilangkan --scope, sehingga memperbarui plugin yang hanya terinstal di cakupan project atau local gagal dengan Plugin "<name>" is not installed at scope user. Pada versi tersebut, berikan --scope. managed adalah satu-satunya cakupan yang dapat Anda perbarui tetapi tidak dapat menjadi tujuan instalasi. Untuk plugin yang diinstal admin, lihat Mengelola plugin untuk organisasi Anda.

Memperbarui dengan nama polos

Anda dapat memberikan nama plugin polos, yang dicocokkan perintah dengan plugin yang terinstal. Ketika plugin terinstal dari marketplace berbeda memiliki nama yang sama, perintah menolak pembaruan dan mencantumkan perintah plugin-name@marketplace-name yang memenuhi syarat untuk dijalankan sebagai gantinya. Memperbarui dengan nama polos memerlukan Claude Code v2.1.246 atau yang lebih baru.

Mencoba ulang instalasi dependensi yang belum selesai

Ketika plugin sudah berada di versi terbarunya, perintah juga dapat mencoba ulang instalasi dependensi yang belum selesai di salinan cache-nya. Untuk kasus-kasus ketika retry tersebut dijalankan atau dilewati, lihat Paket yang dicantumkannya tidak terinstal. Jika retry gagal, outputnya Failed to update plugin "formatter@my-marketplace" beserta alasannya dan exit code-nya 1. Sebelum v2.1.287, perintah melaporkan plugin berada di versi terbarunya tanpa mencoba ulang instalasi.

plugin list

Mencantumkan plugin yang terinstal beserta versi, cakupan, dan statusnya.
Claude Code mengelompokkan output yang dapat dibaca manusia berdasarkan cara setiap plugin dimuat:
  • Installed plugins:: plugin yang Anda instal dari marketplace
  • Session-only plugins (--plugin-dir / --plugin-url):: plugin yang dimuat oleh flag tersebut dalam perintah yang sama, seperti pada claude --plugin-dir ./my-plugin plugin list
  • Skills-directory plugins (.claude/skills/*):: plugin yang ditemukan Claude Code di direktori skills
  • Synced from claude.ai: plugin yang disinkronkan dari akun claude.ai Anda
Jika tidak ada apa pun di kelompok mana pun, Claude Code mencetak No plugins installed. Use `claude plugin install` to install a plugin.

Output JSON

Dengan --json, Claude Code mencetak array dengan satu objek per instalasi. Setiap objek membawa field di bawah ini. id, version, scope, enabled, dan installPath selalu ada, dan yang lainnya hanya muncul jika relevan. Dengan --json --available, Claude Code mencetak satu objek alih-alih array. Field installed-nya berisi array objek plugin yang terinstal, dan field available-nya berisi satu objek per plugin marketplace yang belum terinstal dengan field di bawah ini.

plugin details

Menampilkan inventaris komponen plugin dan proyeksi biaya token-nya. Plugin harus dimuat: terinstal, ditemukan di direktori skills, atau diberikan dengan --plugin-dir atau --plugin-url dalam perintah yang sama. <name> adalah name plugin atau name@marketplace.
Perintah ini tidak menerima flag selain --help. Tampilkan apa yang disumbangkan oleh plugin yang terinstal:
Claude Code mencetak nama, versi, deskripsi, dan sumber plugin, lalu bagian-bagian berikut:
  • Component inventory: skill, agent, hook, server MCP, dan server LSP milik plugin
  • Projected token cost: token yang selalu aktif yang ditambahkan plugin ke setiap sesi
  • Per-component (rounded): estimasi selalu aktif dan saat dipanggil untuk setiap skill, agent, dan perintah. Dihilangkan jika plugin tidak memilikinya
Untuk arti kedua angka biaya tersebut, lihat Mengukur biaya dan penggunaan plugin. Untuk plugin yang tidak dimuat, Claude Code mencetak Plugin "formatter" not found. Run `claude plugin list` to see installed plugins, or pass --plugin-dir <path> to load one from disk. dan keluar dengan 1.

plugin configure

Menampilkan opsi userConfig dari plugin yang terinstal dan mana yang sudah ditetapkan, atau menyimpan nilai yang dialirkan melalui stdin. Memerlukan Claude Code v2.1.285 atau yang lebih baru.
Tanpa flag, perintah mencantumkan setiap opsi dengan hingga tiga label: required atau optional, lalu sensitive untuk opsi yang dideklarasikan sensitif oleh manifes, lalu set atau not set. Perintah ini tidak mencetak nilai tersimpan. Dengan --json, output menyertakan nilai tersimpan dari opsi yang tidak sensitif, dan tidak pernah menyertakan teks opsi yang sensitif. Untuk menyimpan nilai, tulis nilai tersebut ke file sebagai objek JSON yang memetakan kunci opsi ke nilai string, lalu berikan file tersebut melalui stdin. Ganti formatter@my-marketplace dengan id plugin Anda sendiri sebagaimana ditampilkan oleh claude plugin list. Contoh ini menetapkan satu opsi bernama api_url dari file values.json yang berisi {"api_url": "https://example.com"}:
Claude Code memvalidasi setiap nilai terhadap tipe yang dideklarasikan untuk opsi tersebut dan mencetak Configuration saved. Restart Claude Code to apply it. Jika Anda memberikan kunci yang tidak dideklarasikan manifes, atau nilai yang gagal validasi, perintah tidak menyimpan apa pun, mencetak Failed to save configuration: beserta alasannya, dan keluar dengan 1. Dengan --json, nilai yang ditolak juga mencetak objek di stdout yang field refused-nya membawa message dan, jika satu opsi yang bermasalah, kunci option-nya. Berikan id lengkap name@marketplace plugin, sebagaimana ditampilkan oleh claude plugin list. configure tidak menerima name polos. Jika tidak ada plugin yang dimuat dengan id tersebut, perintah mencetak No installed plugin has the id "<plugin>". dan keluar dengan 1. Untuk pengaturan server MCP yang dibundel, lihat plugin install --config atau item Configure di /plugin.

plugin prune

Menghapus dependensi yang diinstal otomatis yang tidak lagi dibutuhkan oleh plugin terinstal mana pun. Perintah ini tidak pernah menghapus plugin yang Anda instal sendiri. autoremove adalah alias untuk prune.
Pratinjau apa yang akan dihapus oleh prune:
Claude Code mencantumkan dependensi yatim dan diakhiri dengan (dry run — nothing removed). Jika tidak ada yang perlu dihapus, Claude Code mencetak baris yang diawali Nothing to prune. Tanpa --dry-run, perintah menghapus dependensi yatim hanya setelah Anda mengonfirmasi di permintaan konfirmasi atau memberikan -y. Exit code-nya 0 apa pun jawaban Anda di permintaan konfirmasi. Apa yang dilakukan prune bergantung pada apakah terminal terpasang dan apakah Anda memberikan -y:

plugin eval

Menjalankan kasus eval plugin dan melaporkan hasil yang dinilai. Memerlukan Claude Code v2.1.269 atau yang lebih baru. Setiap kasus adalah prompt ditambah grader. Claude Code menjalankannya beberapa kali dalam sesi terisolasi dengan hanya plugin target yang dimuat, dan secara default juga tanpa plugin sehingga laporan menunjukkan perbedaannya. Lihat Menguji plugin dengan eval untuk format kasus, grader, hasil, dan penggunaan CI.
target opsional default-nya adalah direktori saat ini dan menerima salah satu bentuk berikut:
  • Direktori plugin
  • Satu file prompt.md atau case.yaml
  • Plugin yang terinstal sebagai name atau name@marketplace
  • name@skills-dir
Letakkan target sebelum --tag, --allow-tools, dan --json. Masing-masing opsi ini mengambil kata-kata yang mengikutinya sebagai nilainya, sehingga target yang ditulis setelah salah satunya akan dibaca sebagai tag, nama tool, atau path output JSON, bukan sebagai target. Tabel ini mencantumkan opsi yang digunakan sebagian besar eksekusi. Jalankan claude plugin eval --help untuk set lengkapnya, termasuk --case, --tag, --output-dir, --report, --allow-real-servers, --keep-temp, dan --verbose. Exit code melaporkan bagaimana eksekusi berakhir. Untuk menindaklanjutinya dalam pipeline, lihat Menjalankan eval di CI.

plugin eval init

Membuat suite eval untuk plugin di direktori saat ini. Memerlukan Claude Code v2.1.269 atau yang lebih baru. Lihat Membuat suite eval pertama Anda.
Jalankan perintah dari folder root plugin, yaitu direktori yang berisi .claude-plugin/plugin.json atau SKILL.md milik skill. Untuk sengaja membuat kerangka suite di direktori lain, berikan --eval-dir. Di terminal, perintah membuka sesi Claude Code interaktif untuk wawancara penulisan. Dalam wawancara, Claude melakukan hal berikut:
  1. Membaca plugin
  2. Menanyakan kepada Anda apa yang harus dilakukan plugin dengan baik
  3. Mengusulkan kasus dan grader
  4. Menulis file kasus
  5. Menjalankan kasus dan meninjau nilai bersama Anda untuk memeriksa bahwa grader menilai seperti yang akan Anda lakukan
Dengan --bare, atau tanpa terminal, perintah menulis templat kosong satu kasus sebagai gantinya. Ketika Claude menjalankan perintah dari dalam sesi Claude Code, perintah mencetak instruksi wawancara untuk diikuti oleh sesi tersebut alih-alih menulis templat. name opsional adalah nama kasus. Nama ini wajib dengan --bare atau tanpa terminal, karena perintah menulis templat kosong untuk kasus tersebut. Nama kasus diawali dengan huruf atau angka dan hanya berisi huruf, angka, ., _, dan -. Di setiap platform, perintah juga menolak nama yang tidak dapat disimpan Windows, seperti con atau nama yang diakhiri dengan .. Perintah menerima opsi-opsi berikut:

plugin tag

Membuat tag git beranotasi bernama <name>--v<version> untuk rilis plugin. Sebelum memberi tag, perintah memeriksa bahwa plugin.json plugin dan setiap entri marketplace yang mencantumkannya sepakat mengenai versinya. Untuk kapan memberi tag pada rilis, lihat Menerbitkan plugin.
[path] adalah direktori plugin, dengan default direktori saat ini. Perintah menemukan entri marketplace dengan menelusuri ke atas dari direktori tersebut hingga .claude-plugin/marketplace.json yang mencantumkan plugin tersebut. Pratinjau tag untuk plugin dalam checkout marketplace:
Claude Code mencetak rencananya:
  • Nama plugin
  • Versi dan file asalnya
  • Entri marketplace yang cocok, jika ada
  • Nama tag
  • Perintah git tag dan git push yang akan dijalankannya
Tanpa --dry-run, Claude Code mencetak Created tag formatter--v1.0.0 dan Pushed to origin atau perintah push untuk Anda jalankan sendiri. Jika push gagal, tag tetap dibuat secara lokal dan perintah keluar dengan kesalahan. Perintah keluar dengan 1 dan mencetak alasannya jika tidak dapat memberi tag dengan aman. Alasan yang umum adalah:
  • Tidak ada version di plugin.json atau entri marketplace
  • Tag sudah ada
  • Working tree kotor

plugin test

Menjalankan pengujian untuk mod, yaitu plugin yang kodenya mendaftarkan event handler. Perintah ini tidak memerlukan sesi, login, atau jaringan. Untuk cara menulis pengujian, lihat Menguji mod.
[directory] adalah direktori mod, dengan default direktori saat ini. Perintah menjalankan setiap file di bawahnya yang namanya diakhiri dengan .test.ts atau .test.tsx, dan keluar dengan status 1 jika ada pengujian yang gagal. Jalankan pengujian untuk mod di ./first-mod:

plugin validate

Memvalidasi manifes plugin, manifes marketplace, atau skill, agent, dan perintah di dalam direktori, lalu keluar dengan kode yang dapat ditindaklanjuti oleh job CI. Untuk alur kerja membuat, menguji, dan mengedit, lihat Membuat plugin. Untuk apa yang diperiksa validator di setiap manifes, lihat referensi manifes plugin dan referensi marketplace.
Validasi plugin sebelum melakukan commit:

Memvalidasi direktori

<path> adalah file manifes atau direktori. Jika diberi direktori, Claude Code memilih apa yang divalidasi berdasarkan apa yang ditemukannya di sana:
  • .claude-plugin/marketplace.json, jika ada
  • Jika tidak, .claude-plugin/plugin.json
  • Jika tidak, file komponen, yang dipilih berdasarkan nama direktori. Memvalidasi file komponen tanpa manifes memerlukan Claude Code v2.1.233 atau yang lebih baru:
    • Direktori bernama skills, agents, atau commands: file-file di dalamnya
    • Direktori bernama .claude: direktori skills, agents, dan commands di dalamnya
    • Direktori lainnya: ketiga direktori tersebut di bawah .claude-nya
Ketika direktori berisi .claude-plugin/marketplace.json sekaligus .claude-plugin/plugin.json, Claude Code memvalidasi marketplace dan juga manifes serta file komponen plugin. Ini memerlukan Claude Code v2.1.289 atau yang lebih baru. Claude Code tidak mengikuti symlink di dalam direktori yang Anda sebutkan. Apa yang dilakukannya bergantung pada letak tautan tersebut:
  • Direktori skills, agents, atau commands yang ditautkan di bawah root plugin atau .claude: Claude Code memperingatkan bahwa tidak ada isinya yang dibaca.
  • Entri yang ditautkan di dalam direktori skills, agents, atau commands: Claude Code melewatinya dan memperingatkan, per direktori, berapa banyak entri yang dilewati yang akan dimuat oleh sesi.
  • Direktori skills, agents, atau commands yang Anda sebutkan itu sendiri adalah symlink, atau direktori induk .claude-nya adalah symlink: Claude Code melaporkan kesalahan dan tidak memeriksa apa pun di dalamnya. Sebutkan direktori yang sebenarnya sebagai gantinya.
Beberapa file tidak dibaca oleh eksekusi validasi:
  • SKILL.md di root plugin: ketika Anda menjalankan claude plugin validate terhadap direktori plugin, Claude Code tidak memeriksa SKILL.md di root plugin
  • CLAUDE.md di root plugin: dalam eksekusi plugin, Claude Code juga memperingatkan tentang CLAUDE.md di root plugin
  • File plugin dalam eksekusi marketplace: dari direktori marketplace, Claude Code tidak membuka file skill, agent, perintah, atau hook dari plugin yang dicantumkan marketplace di direktori lain, maupun file server MCP yang dibundelnya. Untuk menemukan kesalahan di file-file tersebut, validasi setiap direktori plugin

Output dan exit code

Claude Code mencetak file yang divalidasinya, setiap kesalahan dan peringatan beserta path-nya, dan baris putusan. Exit code mengikuti putusan tersebut: Dengan --json, Claude Code menulis laporan ke stdout sebagai satu objek JSON dengan field tingkat atas berikut:
  • success: putusan yang sama dengan yang diberikan exit code
  • strict: apakah eksekusi memperlakukan peringatan sebagai kesalahan
  • target: path yang telah di-resolve yang divalidasi Claude Code
  • manifest: hasil manifes itu sendiri, atau null untuk eksekusi tanpa manifes
  • contents: hasil per file, masing-masing menyebutkan file-nya dan membawa array errors, warnings, dan notes
    • gatingHooks: apakah setiap hook mod yang dapat menolak suatu tindakan, seperti hook tool.call, memiliki handler .catch. Setiap item memberikan module, pattern, hook, dan hasCatch. Memerlukan Claude Code v2.1.290 atau yang lebih baru
Pada exit 2, perintah tidak menulis apa pun ke stdout. Pesan kesalahan dikirim ke stderr.

Perintah claude plugin marketplace

Jalankan claude plugin marketplace <subcommand> dari shell Anda untuk menambah, mencantumkan, menyegarkan, dan menghapus marketplace yang Anda instal plugin.
  • Kode keluar: subperintah ini mengikuti konvensi kode keluar perintah plugin
  • Cakupan: flag --scope mereka tidak memiliki bentuk pendek -s
Untuk apa marketplace dan bagaimana Claude Code menyimpannya, lihat Referensi pemuatan plugin.

plugin marketplace add

Tambahkan marketplace dari repositori GitHub, URL git, marketplace.json yang dihosting, atau jalur lokal, dan deklarasikan dalam file pengaturan. Setelah menambahkannya, Claude Code menginstal dependensi apa pun yang hilang dari plugin yang diinstal.
<source> mengambil salah satu bentuk dalam tabel di bawah, dan bentuknya memutuskan tipe sumber dan cara Claude Code mengambil marketplace. Untuk objek sumber yang dihasilkan, lihat referensi marketplace. Untuk host yang URL klonnya tidak membawa akhiran .git, seperti AWS CodeCommit, tambahkan marketplace sebagai entri git dalam extraKnownMarketplaces. Claude Code mengkloning entri git apakah atau tidak URL-nya berakhir dengan .git. Claude Code juga mengkloning URL gitlab.com dengan subgrup bersarang, seperti https://gitlab.com/group/subgroup/project. Tambahkan marketplace dan bagikan dengan proyek:
Claude Code mencetak Successfully added marketplace: your-marketplace (declared in project settings), menggunakan name dari manifest marketplace sendiri. Penambahan berulang atau sumber yang tidak valid mencetak salah satu hasil ini:
  • Marketplace sudah di disk: output adalah Marketplace 'your-marketplace' already on disk — declared in project settings dan kode keluar adalah 0
  • Sumber yang tidak dikenali: output adalah Invalid marketplace source format. Try: owner/repo, https://..., or ./path dan kode keluar adalah 1
  • Host telanjang seperti gitlab.example.com/team/plugins: penambahan gagal sebagai shorthand owner/repo yang tidak valid, dan pesan memberi tahu Anda untuk menambahkan https:// atau menggunakan jalur lokal
Tambahkan marketplace yang dihosting di claude.ai dengan nama yang dicetak dalam bagian From claude.ai: dari claude plugin marketplace list:
Dengan --claudeai, perintah menolak --scope dan --sparse. Marketplace dihosting untuk akun Anda, bukan dideklarasikan dalam file pengaturan, jadi Anda tidak dapat membagikannya melalui .claude/settings.json proyek.

plugin marketplace list

Daftar setiap marketplace yang telah Anda tambahkan, dengan sumbernya.
Claude Code mencetak Configured marketplaces: dan satu baris Source: per marketplace, atau No marketplaces configured. Dengan --json, Claude Code mencetak array dengan satu objek per marketplace, membawa field di bawah. Setiap field adalah string. Marketplace claude.ai yang ditambahkan tidak memiliki kloning lokal, jadi entrinya membawa pengidentifikasi claude.ai-nya, marketplaceId dan organizationUuid, sebagai pengganti installLocation. Juga membawa scope ketika satu dicatat, dan status. Jika sesi terminal Anda menyinkronkan plugin dari akun claude.ai Anda, daftar teks berakhir dengan bagian From claude.ai:. Bagian itu menamai marketplace yang claude.ai daftar untuk akun Anda yang belum Anda tambahkan, baik berbasis git maupun dihosting. Memerlukan Claude Code v2.1.273 atau lebih baru. Untuk menambahkan marketplace dari bagian itu, lihat Tambahkan marketplace dari claude.ai. Output --json mencakup marketplace yang dikonfigurasi saja dan meninggalkan bagian.

plugin marketplace remove

Hapus deklarasi marketplace dari pengaturan Anda. rm adalah alias untuk remove.
Ketika Anda menghapus marketplace dari cakupan terakhir yang mendeklarasikannya, Claude Code juga menghapus cache dan mencopot setiap plugin yang Anda instal darinya. Juga menghapus opsi dan rahasia yang disimpan dan data di mana pun dapat.Untuk menyegarkan marketplace tanpa kehilangan plugin, jalankan plugin marketplace update sebagai gantinya.
<name> adalah nama marketplace yang ditunjukkan plugin marketplace list, bukan sumber yang Anda lewatkan ke add. Hapus marketplace dari setiap cakupan:
Claude Code mencetak Successfully removed marketplace: your-marketplace. Ketika perintah mencopot plugin, output mencantumkan mereka di bawah baris seperti Also uninstalled 2 plugins from this marketplace:. Untuk menggunakan salah satu dari mereka lagi, tambahkan marketplace kembali dan instal ulang plugin. Jika Anda membatasi ke file pengaturan yang tidak mendeklarasikan marketplace, perintah gagal dengan Marketplace 'your-marketplace' is not declared in project settings. Omit --scope to remove it from all scopes.

plugin marketplace update

Segarkan satu marketplace, atau setiap marketplace, dari sumbernya untuk mengambil plugin dan versi baru. Marketplace yang ditambahkan dengan branch atau tag ref diperbarui ke commit terbaru dari ref itu, bukan branch default repositori.
Segarkan satu marketplace:
Claude Code mencetak Successfully updated marketplace: your-marketplace. Ketika Anda menghilangkan nama, mencetak hitungan seperti Successfully updated 2 marketplaces.

/plugin dalam sesi

Di dalam sesi interaktif, /plugin membuka panel plugin. Setiap subperintah membuka panel di tab, menjalankan tindakan di sana, atau mencetak hasil inline. /plugins dan /marketplace adalah alias untuk /plugin. Anda hanya dapat menjalankan perintah ini dalam sesi terminal interaktif. Dalam run non-interaktif seperti claude -p, Claude Code menjawab bahwa /plugin tidak tersedia di lingkungan ini. Untuk permukaan mana yang memiliki /plugin, cara menginstal tanpanya, dan apa yang ditunjukkan setiap tab panel, lihat Instal dan kelola plugin. <plugin> adalah plugin name atau name@marketplace. Tabel di bawah mencantumkan setiap bentuk sesi. Subperintah shell init, update, details, prune, eval, eval init, dan test tidak memiliki bentuk sesi. Jika Anda menamai plugin yang tidak diinstal dalam proyek saat ini dalam /plugin enable, disable, uninstall, atau configure, Claude Code mencetak Plugin "<plugin>" is not installed in this project alih-alih bertindak.

/reload-plugins

Terapkan perubahan plugin yang tertunda ke sesi yang sedang berjalan tanpa memulai ulang. Perubahan yang tertunda adalah plugin yang Anda instal, perbarui, aktifkan, nonaktifkan, atau edit di disk sejak sesi dimulai. Ketika Anda menutup panel /plugin dengan perubahan yang tertunda yang Anda buat di dalamnya, Claude Code menjalankan /reload-plugins untuk Anda. Jalankan sendiri setelah perubahan plugin yang terjadi di luar panel, seperti perintah claude plugin yang Anda jalankan di terminal lain.

Ringkasan reload

Claude Code memuat ulang setiap plugin aktif dan mencetak satu baris ringkasan, Reloaded: N plugins · N skills · N agents · N hooks · N plugin MCP servers · N plugin LSP servers, menghilangkan hitungan server MCP plugin dalam sesi tanpa terminal interaktif. Ketika plugin apa pun gagal, ringkasan menambahkan N errors during load. Run /plugin for details. Hitungan skills mencakup setiap skill yang disediakan plugin, baik entri commands/ maupun skill SKILL.md. Hitungan agents adalah jumlah agen yang dimuat dalam sesi, termasuk yang tidak berasal dari plugin. Ketika dependensi plugin yang dimuat ulang hilang, Claude Code menginstalnya, memuat ulang lagi, dan menambahkan (+ N dependencies: <names>) resolved ke ringkasan.

Reload yang mengubah alat MCP

Ketika reload akan menambah atau menghapus server MCP plugin atau alat LSP, dan perubahan itu akan membatalkan cache prompt, Claude Code tidak menerapkan reload. Mencetak baris seperti This reload changes MCP tools (<server>) — your next message will re-read the whole conversation instead of using the cache. Run /reload-plugins --force to apply. Lewatkan --force untuk menerapkannya.

Sesi tanpa terminal interaktif

/reload-plugins juga berjalan dalam sesi tanpa terminal interaktif, seperti aplikasi desktop, Agent SDK, dan mode non-interaktif dengan -p. Memerlukan Claude Code v2.1.260 atau lebih baru. Dalam sesi itu, perintah berjalan hanya ketika Anda mengetiknya ke dalam sesi sendiri, seperti dalam prompt -p atau kotak prompt aplikasi desktop. Ketika tiba dengan cara lain, seperti melalui Remote Control atau pesan yang disalurkan dari Slack, perintah menjawab /reload-plugins isn't available over a remote connection in this session. dan memuat ulang tidak ada. Reload dalam sesi itu tidak menghubungkan atau memutuskan server MCP plugin. Perubahan itu berlaku dalam sesi berikutnya Anda.

Flag yang memuat plugin untuk satu sesi

Dua flag claude memuat plugin untuk satu sesi saja, tanpa menginstalnya. Keduanya dapat diulang. Penulis plugin menggunakannya untuk menguji plugin sebelum menerbitkan. Untuk alur kerja muat-edit-muat ulang, lihat Kembangkan tanpa marketplace. Plugin yang dimuat flag apa pun adalah plugin hanya sesi. claude plugin list menampilkannya hanya ketika flag yang sama mendahului subperintah, seperti dalam claude --plugin-dir ./my-plugin plugin list. Plugin muncul sebagai <name>@inline di bawah judul yang dimulai dengan Session-only plugins, dan --json melaporkan scope sebagai session. Ketika plugin hanya sesi berbagi nama dengan plugin yang diinstal, Claude Code memuat salinan hanya sesi untuk sesi itu dan melewati yang diinstal. Salinan yang diinstal memuat sebagai gantinya jika Anda menonaktifkan salinan hanya sesi dengan claude plugin disable <name>@inline, atau jika pengaturan terkelola mengunci nama plugin itu. Untuk prioritas, lihat Referensi pemuatan plugin. Administrator dapat menolak kedua flag, dan folder yang dinamai dalam variabel CLAUDE_CODE_PLUGIN_DIRS, dengan pengaturan terkelola disableSideloadFlags. Claude Code kemudian mencetak bahwa flag dinonaktifkan oleh pengaturan terkelola organisasi Anda dan keluar 1 tanpa memulai. Dari Agent SDK, opsi plugins adalah setara dengan --plugin-dir.

Langkah berikutnya