marketplace.json Anda di tempat di mana orang lain dapat menambahkannya dengan /plugin marketplace add, memasang plugin-nya, dan terus menerima perubahan Anda setelah Anda push.
Halaman ini untuk orang yang mengoperasikan marketplace.
Kasus-kasus ini tercakup di halaman lain:
- Anda belum menulis file katalog: mulai dengan Create a marketplace
- Anda adalah admin yang memerlukan, membatasi, atau pra-memasang marketplace di seluruh mesin organisasi Anda: baca Manage plugins for your organization
name plugin.
Host your marketplace
Anda dapat menghost marketplace di GitHub, di host git lain, sebagai URLmarketplace.json yang dihosting, atau di direktori pada filesystem bersama. Kirim perintah add kepada pengguna Anda untuk host Anda dan beri tahu mereka apa yang mereka butuhkan di mesin mereka:
Untuk mengunci branch atau tag dari marketplace GitHub atau git-URL, beri tahu pengguna untuk menambahkan
#<ref>, seperti dalam your-org/your-marketplace#stable. Plugin commands reference mencantumkan setiap bentuk yang diterima perintah.
Penambahan yang berhasil mencetak Successfully added marketplace: your-marketplace. Claude Code mengambil nama itu dari field name di marketplace.json Anda, bukan dari nama repositori.
Pengguna kemudian memasang plugin berdasarkan name entri dan name marketplace, seperti dalam /plugin install code-formatter@your-marketplace.
Register the marketplace for everyone in a repository
Untuk berbagi marketplace dengan semua orang yang bekerja di satu repositori, jalankanclaude plugin marketplace add your-org/your-marketplace --scope project di sana sekali dari shell Anda dan commit .claude/settings.json yang ditulis. Claude Code kemudian mendaftarkan marketplace untuk setiap rekan kerja yang trusts the folder.
Avoid relative-path entries in a URL-hosted marketplace
Ketika pengguna menambahkan marketplace Anda sebagai URLmarketplace.json bare, Claude Code hanya mengunduh file itu. Entri di array plugins Anda yang source-nya adalah path relatif seperti ./plugins/formatter kemudian gagal saat instalasi dengan its marketplace entry path does not stay inside the marketplace directory. Berikan setiap entri source yang dapat diambil sendiri, seperti repositori github atau URL archive, atau host marketplace di repositori git sehingga Claude Code mengkloning seluruh pohon.
Edit plugins in place on a shared directory
Ketika pengguna menambahkan marketplace Anda dari direktori bersama, Claude Code membaca plugin dengan source path relatif langsung dari direktori itu alih-alih menyalinnya. Pengguna melihat edit Anda ketika mereka memulai sesi berikutnya atau menjalankan/reload-plugins, tanpa langkah pembaruan atau bump versi.
Keep plugin files out of Git LFS
Jauhkan file yang plugin Anda butuhkan dari Git LFS. Ketika pengguna menambahkan marketplace yang dihosting di repositori git, atau memasang plugin berbasis git yang dicantumkannya, Claude Code mengkloning marketplace atau repositori plugin itu ke mesin mereka. Klon tidak pernah mengunduh konten LFS, jadi file yang dilacak LFS tiba sebagai file pointer.Share files within a marketplace with symlinks
Untuk berbagi file antara plugin Anda dan bagian lain dari marketplace yang sama, buat symbolic links di dalam direktori plugin Anda. Ketika Claude Code menyalin plugin ke cache-nya, ia menangani setiap symlink berdasarkan di mana target diselesaikan:- Dalam direktori plugin itu sendiri: symlink dipertahankan sebagai symlink relatif dalam cache, jadi tetap menyelesaikan target yang disalin saat runtime.
- Di tempat lain dalam marketplace yang sama: symlink didereferensi. Konten target disalin ke cache di tempatnya. Ini memungkinkan direktori
skills/meta-plugin untuk menghubungkan ke skills yang ditentukan oleh plugin lain di marketplace. - Di luar marketplace: symlink dilewati untuk keamanan.
command source yang mode-nya adalah default copy, Claude Code hanya mempertahankan symlink yang diselesaikan dalam direktori plugin itu sendiri dan melewati semua yang lain.
Perintah berikut membuat link dari dalam plugin marketplace ke skill bersama yang ditentukan oleh plugin sibling. Di Windows, gunakan mklink /D dari Command Prompt yang ditinggikan atau aktifkan Developer Mode:
Distribute through organization settings
Pada paket Team atau Enterprise, Anda juga dapat mendistribusikan marketplace melalui Organization settings > Plugins & skills di claude.ai alih-alih menghosting-nya di tempat pengguna menambahkannya sendiri. Organization sync membaca repositori melalui koneksi GitHub atau GitLab organisasi Anda di claude.ai, jadi kredensial git pengguna Anda tidak terlibat. Organization sync lebih ketat tentang repositori daripada/plugin marketplace add:
- Marketplace repository: di github.com dan gitlab.com, harus pribadi atau internal
- Plugin sources: setiap plugin source harus bertipe
github,url, ataugit-subdir, atau relative path yang dimulai dengan./ - Top-level
bin/directory: claude.ai menolak plugin yang memilikinya dan mensinkronkan sisa marketplace. Pesan kesalahan dimulai denganPlugin contains a top-level bin/ directory. Simpan executable di direktori lain, sepertiscripts/, dan referensikan sebagai${CLAUDE_PLUGIN_ROOT}/scripts/<name>dari hooks atau konfigurasi server MCP Anda
Grant access to a private marketplace
Ketika pengguna menambahkan, memasang dari, atau memperbarui marketplace Anda, Claude Code menjalankangit di mesin mereka dengan prompt interaktif dimatikan dan mengandalkan kredensial apa pun yang sudah dipegang mesin itu. Claude Code tidak memiliki token git sendiri, dan marketplace.json tidak memiliki field untuk satu.
Anda memilih apakah klon berjalan melalui SSH atau HTTPS berdasarkan bentuk perintah add yang Anda kirim pengguna:
- GitHub
owner/repo: Claude Code menyelidikissh -T git@github.comdan mengkloning melalui SSH ketika penyelidikan berhasil. Jika penyelidikan gagal, atau klon SSH itu sendiri gagal, ia mengkloning melalui HTTPS. Pengguna di mesin tanpa kunci SSH GitHub dapat mengaturCLAUDE_CODE_PLUGIN_PREFER_HTTPS=1untuk melewati penyelidikan dan mengkloning melalui HTTPS. git@host:path.git: SSH.https://example.com/repo.git: HTTPS.
- SSH: kunci harus bekerja tanpa prompt passphrase, misalnya karena dimuat di
ssh-agent. Host harus sudah ada diknown_hosts. - HTTPS: Claude Code membiarkan helper kredensial git pengguna diaktifkan tetapi melarangnya dari prompting. Kredensial yang sudah disimpan helper bekerja; satu yang harus diminta gagal. Di GitHub,
gh auth logindiikuti olehgh auth setup-gitmenyimpan satu.
Serve users who have no git-host account
Pengguna tanpa akun git-host dapat menambahkan marketplace yang Anda layani sebagai URLmarketplace.json atau dari direktori bersama, tetapi mereka hanya dapat memasang plugin yang entry source-nya juga dapat mereka jangkau. Entri yang menunjuk ke repositori github pribadi masih gagal saat instalasi untuk mereka, karena Claude Code mengambilnya dengan git non-interaktif yang sama yang digunakan untuk marketplace yang dihosting git.
Entry source ini tidak memerlukan akun git:
archive: zip yang diunduh melalui HTTPS. Pengguna tidak memerlukangitatau akun, hanya akses jaringan ke URL. Memerlukan Claude Code v2.1.224 atau lebih baru. Pin setiap archive dengansha256sehingga Claude Code menolak unduhan yang berubah. Untuk mengirim kredensial dengan unduhan, lihat Authenticate archive downloads.- Repositori git publik: Claude Code mengkloning source
urlataugit-subdirpublik melalui HTTPS tanpa kredensial ketika entri memberikan URLhttps://. Untuk sourcegithub, atau sourcegit-subdiryang ditulis sebagaiowner/repo, pengguna tanpa kunci SSH GitHub mengaturCLAUDE_CODE_PLUGIN_PREFER_HTTPS=1.
directory pada filesystem bersama juga bekerja tanpa akun git. Pengguna hanya memerlukan akses baca ke path.
What background auto-update does with credentials
Background auto-update adalah refresh tanpa pengawasan Claude Code dari marketplace dan plugin yang dipasang setelah sesi dimulai. Ini dimatikan untuk marketplace Anda sampai pengguna atau admin menyalakannya, seperti yang tercakup di bawah Keep users up to date. Ketika aktif untuk marketplace pribadi, pemeriksaan latar belakang untuk commit baru menggunakan helper kredensial git yang dikonfigurasi pengguna dan tidak pernah prompt. Setiap jenis remote dan helper memberikan hasil yang berbeda:- SSH remotes: kunci yang dimuat di
ssh-agentmengautentikasi pemeriksaan. - HTTPS remotes dengan kredensial yang disimpan: helper yang dapat menyediakan kredensial yang disimpan tanpa prompting mengautentikasi pemeriksaan. Git Credential Manager, helper Keychain macOS, dan
git-credential-storebekerja dengan cara ini setelah mereka memegang kredensial untuk host. - HTTPS remotes dengan helper yang perlu prompt: helper tidak dapat menjawab di latar belakang. Pembaruan gagal diam-diam dan checkout yang ada tetap di tempat, jadi plugin pengguna terus bekerja dari status yang terakhir disinkronkan.
- Checkout sudah terbaru: Claude Code membiarkannya apa adanya.
- Pemeriksaan menemukan commit baru, atau gagal karena tidak dapat menjangkau atau mengautentikasi ke remote: Claude Code mengkloning marketplace lagi dan mengganti checkout yang ada dengan klon baru. Jika klon itu gagal, checkout yang ada tetap di tempat. Klon ulang dapat time out on large repositories.
- Simpan kredensial: masuk ke helper kredensial terlebih dahulu sehingga memegang kredensial untuk host. Untuk GitHub, jalankan
gh auth login, kemudiangh auth setup-git. - Simpan checkout saat gagal: jika pengguna mengatur
CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE=1, Claude Code menyimpan checkout yang ada tanpa mencoba klon ulang ketika pemeriksaan latar belakang tidak dapat menjangkau atau mengautentikasi ke remote. Plugin terus bekerja dari status yang terakhir disinkronkan.
GITHUB_TOKEN atau token provider lain di lingkungan, itu saja tidak mengautentikasi pemeriksaan latar belakang. Token berlaku melalui helper kredensial, seperti helper CLI gh, yang membaca GH_TOKEN dan GITHUB_TOKEN.
Roll out to a whole company
Meluncurkan plugin ke perusahaan melibatkan Anda sebagai pemilik marketplace, administrator yang mengontrol pengaturan terkelola, dan setiap orang yang menggunakan Claude Code. Anda dapat menjalankan peluncuran tanpa administrator, dalam hal ini setiap orang menambahkan marketplace dan memasang plugin sendiri.
Untuk orang yang tidak memiliki akun git-host, bagian-bagian ini masing-masing mencakup satu cara untuk menjangkau mereka:
- Entry sources yang tidak memerlukan akun git: Serve users who have no git-host account
- Direktori plugin yang sudah diisi sebelumnya: Seed containers and CI, yang juga melayani pengguna yang tidak memiliki akun git-host
- Pengaturan organisasi claude.ai: Distribute through organization settings, di mana kredensial git pengguna Anda tidak terlibat
Keep users up to date
Perubahan Anda mencapai pengguna melalui background auto-update, setelah diaktifkan untuk marketplace Anda, atau ketika pengguna memperbarui plugin sendiri. Dalam kedua kasus pengguna mendapatkan salinan baru plugin hanya ketika versi yang dihitung berubah, seperti dijelaskan di bawah Release a new version.Turn on auto-update
Background auto-update dimatikan untuk marketplace Anda secara default, danmarketplace.json tidak memiliki field untuk menyalakannya. Pengguna atau admin menyalakannya:
- Beri tahu pengguna untuk menyalakannya: setiap pengguna pergi ke Marketplaces di
/plugin, memilih marketplace Anda, dan memilih Enable auto-update. - Minta admin untuk mengaturnya: jika admin mengatur
"autoUpdate": truepada entriextraKnownMarketplacesmarketplace Anda dalam pengaturan terkelola, itu aktif untuk semua orang yang menerima pengaturan itu. Lihat Set update policy.
/plugin marketplace update <name> dalam sesi atau claude plugin update <plugin>@<name> di shell.
Untuk apa yang pengguna lihat ketika pembaruan mencapai mereka, lihat When auto-update runs.
Release a new version
Untuk merilis versi baru kepada pengguna, ubahversion plugin. Pengguna mendapatkan salinan baru hanya ketika versi yang dihitung plugin berbeda dari yang mereka miliki. Versi itu berasal dari plugin.json terlebih dahulu, kemudian dari entri marketplace, per Versions and updates.
Plugin yang pengguna load in place dari marketplace yang mereka tambahkan sebagai direktori lokal tidak dikendalikan oleh version. Ia memuat file Anda saat ini di setiap awal sesi, apa pun string versinya.
Untuk setiap instalasi selain in-place load atau satu dari command source, tingkatkan version pada setiap rilis atau hilangkan:
- Bump
versionpada setiap rilis: pengguna tetap pada salinan cache mereka sampai string berubah. Jika Anda mengatur"version": "1.0.0"dan push commit baru tanpa mengubahnya, pengguna tidak menerimanya. - Hilangkan
version: pengguna melacak commit Anda sebagai gantinya. Tinggalkanversiondariplugin.jsondan entri marketplace.
version di plugin.json dan entri marketplace. Jika Anda melakukannya, Claude Code menggunakan nilai plugin.json tanpa peringatan, dan claude plugin validate melaporkan ketidakcocokan sebagai Entry declares version "<a>" but <path>/plugin.json says "<b>".
Hold users on one version
Satu marketplace melayani satu versi setiap plugin pada satu waktu, jadi Anda menahan pengguna pada versi dengan memilih apa yang setiap entri tunjuk:refdanshapada entri plugin:refmenamai branch atau tag danshamenamai commit untuk sourcegithub,url, ataugit-subdir. Lihat Plugin sources.#<ref>pada perintah add: pengguna yang menambahkanyour-org/your-marketplace#stablemendapatkan branch atau tag itu dari katalog. Untuk dua baris rilis sekaligus, lihat Run release channels.<plugin>--v<version>tags: rentang versi dependensi diselesaikan terhadap tag ini. Lihat Release a plugin that others depend on.
Change the command of a command source
Jika Anda mengubahcommand dari command source, atau mengalihkan mode-nya, setiap pengguna harus menerima perintah baru sebelum Claude Code menjalankannya. Claude Code hanya menjalankan perintah yang tepat yang diterima pengguna ketika mereka memasang atau terakhir memperbarui plugin.
Setelah salinan marketplace pengguna mengambil perubahan, pengguna itu melihat berikut:
- Tidak ada lagi background runs: once-per-session run perintah berhenti untuk pengguna itu, jadi output baru tool tidak mencapai mereka.
- Entri di tab
/pluginErrors: entri menunjukkan perintah baru dan perintahclaude plugin updateuntuk dijalankan.
claude plugin update yang ditunjukkan entri itu, di terminal. Claude Code menunjukkan perintah baru dan meminta mereka menerimanya.
Run release channels
Untuk menawarkan track stabil dan early-access, host dua marketplace yang entri-nya menunjuk ke ref berbeda dari plugin yang sama, dan biarkan setiap pengguna menambahkan yang mereka inginkan. Claude Code tidak memiliki konsep release-channel, dan satu marketplace melayani satu versi setiap plugin pada satu waktu. Berikan dua filemarketplace.json nilai name yang berbeda. Claude Code mengidentifikasi marketplace berdasarkan name-nya, jadi pengguna tidak dapat memiliki dua marketplace dengan nama yang sama terdaftar sekaligus.
Dengan dua katalog ini, pengguna yang menambahkan stable-tools memasang code-formatter dari branch stable, dan pengguna yang menambahkan latest-tools memasangnya dari latest:
plugin.json yang berbeda, atau hilangkan version sehingga commit SHA membedakan mereka. Pembaruan dideteksi dengan membandingkan versi, jadi ref yang bergerak tanpa perubahan versi meninggalkan pengguna pada salinan cache.
Untuk menetapkan channel ke grup pengguna alih-alih membiarkan pengguna memilih, admin memberikan setiap grup entri extraKnownMarketplaces yang cocok, seperti dijelaskan di bawah Set update policy.
Rename or remove a plugin
name plugin adalah pengidentifinya. Pengguna mereferensikannya dalam kunci pengaturan enabledPlugins dan pluginConfigs dan di /plugin install, jadi mengubahnya merusak setiap instalasi yang ada.
Untuk mengubah label yang pengguna lihat di /plugin tanpa merusak apa pun, atur displayName di plugin.json dan simpan name tidak berubah.
Migrate users with a renames map
Ketika Anda harus mengubahname, tambahkan peta renames tingkat atas ke marketplace.json sehingga Claude Code memigrasikan pengguna yang ada alih-alih melaporkan Plugin "<name>" not found in marketplace. Lakukan hal yang sama ketika Anda menghapus entri dari plugins. Migrasi otomatis memerlukan Claude Code v2.1.193 atau lebih baru.
Petakan setiap nama lama ke nama saat ini, atau ke null ketika plugin hilang. Marketplace ini mengganti nama formatter menjadi code-formatter dan mencatat bahwa legacy-linter dihapus:
- Entri yang diganti nama: plugin memuat di bawah nama barunya.
claude plugin listdan detail plugin di bawah/pluginmenunjukkanRenamed to "code-formatter" in the "your-marketplace" marketplacesekali, dan Claude Code menulis ulang kunci lama ke yang baru dienabledPluginsdanpluginConfigsdalam scope pengaturan pengguna, proyek, dan lokal. - Entri
null: kunci lama dijatuhkan dari scope itu dan pengguna melihatRemoved from the "your-marketplace" marketplace. - Diaktifkan dalam pengaturan terkelola: plugin masih memuat di bawah nama barunya, tetapi Claude Code tidak dapat menulis ulang pengaturan terkelola, jadi pemberitahuan berulang sampai admin memperbarui
enabledPluginsdi sana.
Plugin "<name>" not cached at <path> sampai pengguna menjalankan /plugin install code-formatter@your-marketplace sekali dalam sesi.
Perlakukan renames sebagai riwayat append-only. Simpan entri lama setelah semua orang bermigrasi. Ketika Anda mengganti nama lagi, tambahkan entri kedua daripada mengedit yang pertama, karena Claude Code mengikuti rantai dari nama tertua.
Di shell Anda, jalankan claude plugin validate . setelah mengedit peta. Ini menolak rantai yang bersiklus atau yang berakhir di mana pun selain null atau nama di plugins, dengan renames.<name>: chain does not resolve.
Uninstall removed plugins from users’ machines
Untuk mencopot plugin yang dihapus dari mesin pengguna alih-alih meninggalkan salinan di belakang, atur"forceRemoveDeletedPlugins": true di tingkat atas marketplace.json. Tanpa field, plugin yang dihapus tetap terpasang dan melaporkan Plugin "<name>" not found in marketplace ketika sesi memuat-nya. Dengan itu, Claude Code melakukan berikut di setiap awal sesi:
- Membandingkan apa yang pengguna pasang dari marketplace Anda terhadap entri dan peta
renames, dan memperlakukan plugin apa pun yang tidak tercantum atau diganti nama sebagai dihapus. - Mencopot setiap plugin yang dihapus dari scope pengguna, proyek, dan lokal. Plugin yang hanya pengaturan terkelola pasang tetap di tempat.
- Mencantumkan setiap plugin yang dihapus di bawah heading Flagged di
/plugindengan statusRemoved from marketplace.
Autentikasi unduhan arsip
Untuk mengautentikasi unduhanarchive, seperti unduhan dari registri pribadi, atur header HTTP yang dikirim Claude Code dengannya. Anda dapat mengatur headers di salah satu tempat berikut:
- Sumber
urlmarketplace: sumberurlyang Anda daftarkan marketplace darinya, seperti entriextraKnownMarketplaces. - Entri plugin: pada Claude Code v2.1.238 atau lebih baru, Anda dapat mengaturnya pada entri
marketplace.jsonplugin sebagai gantinya, di sampingsource.
headersHelper sebagai gantinya dari headers ketika nilainya berumur pendek, seperti token yang dihasilkan registri Anda atas permintaan. Claude Code menjalankan perintah dan mengirim objek JSON yang dicetak sebagai header tempat tersebut. Memerlukan Claude Code v2.1.238 atau lebih baru.
Referensi marketplace mencantumkan bidang entri headers dan headersHelper.
Tempat yang Anda pilih menentukan unduhan mana yang mendapatkan header dan kapan Claude Code menjalankan perintah:
Jika kedua tempat mengatur header dengan nama yang sama, Claude Code mengirim nilai entri. Dalam satu tempat, header yang dicetak perintah menimpa header dengan nama yang sama yang tercantum dalam
headers.
Tambahkan headersHelper ke entri plugin
Entri ini mengaturheadersHelper di samping source. Ini juga mengatur "strict": false, yang Claude Code perlukan dari entri marketplace.json yang mengatur headersHelper:
claude plugin install my-plugin@your-marketplace di shell Anda. Claude Code menunjukkan perintah dan URL arsip, dan mengunduh zip setelah Anda menerima.
Tulis perintah headersHelper
Baik Anda mengaturheadersHelper pada sumber url marketplace atau pada entri plugin, tulis perintah untuk memenuhi persyaratan berikut:
- Teks perintah: paling banyak 500 karakter ASCII yang dapat dicetak, tanpa run empat atau lebih spasi.
- Output: cetak satu objek JSON dari nama header dan nilai string pada stdout, kemudian keluar 0 dalam 10 detik.
- Shell dan direktori kerja: Claude Code menjalankan perintah melalui
sh, atau melaluicmd.exedi Windows. Direktori kerja adalah direktori konfigurasi, yaitu~/.claudeatauCLAUDE_CONFIG_DIR. Berikan jalur absolut atau perintah padaPATH, karena jalur relatif diselesaikan terhadap direktori tersebut, bukan proyek pengguna. - Variabel yang Claude Code hapus: ketika perintah diatur dalam entri
marketplace.json, atau dalam.claude/settings.jsonatau.claude/settings.local.jsonproyek, Claude Code menghapus dari lingkungan setiap variabel yang namanya terlihat seperti kredensial, dengan aturan yang sama yang diterapkannya pada MCPheadersHelper.ANTHROPIC_API_KEYdanMY_REGISTRY_TOKENkeduanya dihapus, jadi biarkan perintah membaca kredensialnya dari file atau penyimpanan kredensial. Penghapusan ini tidak berlaku untuk perintah yang diatur dalam pengaturan pengguna, file--settings, atau pengaturan terkelola. - Variabel yang Claude Code atur:
CLAUDE_CODE_MARKETPLACE_URLdanCLAUDE_CODE_MARKETPLACE_NAMEuntuk perintah sumberurl, danCLAUDE_CODE_PLUGIN_NAMEdanCLAUDE_CODE_PLUGIN_ARCHIVE_URLuntuk perintah entri.CLAUDE_CODE_MARKETPLACE_NAMEtidak diatur pada pengambilan pertama setelah pengguna menambahkan marketplace berdasarkan URL, karena pengambilan tersebut adalah yang menyediakan nama.
Kapan Claude Code melewati perintah headersHelper atau menghapus outputnya
PerintahheadersHelper tidak berjalan, atau header dari headers atau dari output perintah dihapus, ketika salah satu dari berikut berlaku:
- Perintah gagal: jika perintah keluar non-nol, berjalan melampaui 10 detik, atau mencetak apa pun selain objek JSON dari nilai string, pengambilan atau unduhan yang perintah dijalankan tidak terjadi.
- URL Marketplace tidak dimulai dengan
https://: perintah sumberurltersebut tidak berjalan, dan permintaan hanya membawa header yang tercantum dalam bidangheaders-nya. - Pengalihan meninggalkan asal: ketika unduhan dialihkan dari asal URL arsip, permintaan yang dialihkan tidak membawa nilai
headersatau output perintah dari sumberurlmarketplace atau entri plugin. - Entri mengatur header perutean atau identitas: Claude Code menghapus nama perutean permintaan dan identitas klien seperti
Host,Cookie, danX-Forwarded-*dariheadersentri dan output perintah, dan mempertahankan nama autentikasi sepertiAuthorization. Setiap entrimarketplace.jsondisaring dengan cara ini. Untuk entri plugin inline dalam pengaturan, lihatextraKnownMarketplaces. - Perintah diatur dalam pengaturan direktori
--add-dir: perintah diabaikan, pada sumberurldan pada entri plugin inline juga, dan hanyaheadersfile tersebut yang dikirim. - Pengaturan terkelola memblokir perintah: mengatur
disableCommandPluginSourcesketruememblokir perintahheadersHelper, danallowManagedHooksOnlyjuga memblokir mereka kecualidisableCommandPluginSourcessecara eksplisitfalse. Di bawah salah satu blok, Claude Code masih menjalankan perintah untuk marketplace yang pengaturan terkelola sendiri nyatakan.
Bagaimana pengguna menerima perintah headersHelper
Pengguna menerima perintah entri plugin setiap kali mereka memasang atau memperbarui plugin tersebut saja. Mereka melakukan itu dari tampilan plugin sendiri di/plugin, atau dengan claude plugin install atau claude plugin update. Claude Code menunjukkan perintah dan URL arsip, dan menjalankan perintah hanya setelah pengguna menerima.
Dalam shell non-interaktif, teruskan --yes untuk menerima perintah. Untuk menerima hanya perintah yang ditampilkan run --json sebelumnya, teruskan --accept-command dengan sha256 yang dilaporkan run.
Claude Code menjalankan hanya perintah yang ditunjukkan, untuk URL arsip yang ditunjukkan. Jika perintah entri atau URL arsip berubah di antara, Claude Code menolak pemasangan atau pembaruan. Perubahan dalam string kueri saja tidak dihitung.
Pemasangan dan pembaruan yang menolak perintah alih-alih bertanya
Pada operasi apa pun selain pemasangan atau pembaruan plugin tunggal, Claude Code tidak menjalankan perintah entri atau mengunduh arsipnya. Plugin tetap pada versi terpasang atau tetap tidak terpasang, dan pengguna melihat salah satu hasil berikut:- Memasang beberapa plugin sekaligus, dari saran plugin, atau sebagai ketergantungan plugin lain: Claude Code menolak plugin yang memiliki perintah dan mengarahkan pengguna ke tampilan plugin sendiri di
/plugin. Plugin lain dalam pemasangan massal masih terpasang. Plugin yang bergantung pada plugin yang ditolak gagal terpasang sampai pengguna memasang plugin yang ditolak sendiri. - Pembaruan otomatis latar belakang, atau awal sesi untuk plugin yang arsipnya tidak pernah diunduh: Claude Code mencantumkan plugin dalam tab Errors
/pluginsehingga pengguna tahu untuk memasang atau memperbarui sendiri.
Kapan perintah sumber url marketplace berjalan
Anda mendeklarasikan headersHelper sumber url marketplace dalam file pengaturan, seperti entri extraKnownMarketplaces, daripada dalam katalog yang dipublikasikan marketplace. Claude Code oleh karena itu tidak meminta pengguna untuk menerimanya pada setiap pemasangan atau pembaruan. Sebagai gantinya, file pengaturan yang mendeklarasikannya menentukan kapan Claude Code menjalankannya:
Untuk entri plugin inline dalam salah satu file ini, Claude Code memerlukan kepercayaan folder atau persetujuan pengaturan yang sama seperti untuk perintah tingkat marketplace dalam file tersebut, dan pengguna juga menerima perintah entri pada setiap pemasangan atau pembaruan.
Depend on and recommend other plugins
Entri dapat mendeklarasikan dependensi pada plugin lain.- Rentang versi: dependensi dapat membawa rentang semver.
- Dependensi lintas marketplace: dependensi dari marketplace lain memasang hanya ketika marketplace Anda mencantumkan marketplace itu di
allowCrossMarketplaceDependenciesOn.
<plugin>--v<version> yang diselesaikan, dan kepercayaan lintas marketplace, lihat Plugin dependencies.
Untuk membuat Claude Code menyarankan plugin ketika proyek cocok dengannya, tambahkan blok relevance ke entri dengan sinyal yang mengidentifikasi proyek. Pengguna melihat saran dari marketplace Anda hanya ketika admin mencantumkannya di pluginSuggestionMarketplaces. Untuk sinyal dan langkah enablement, lihat Plugin relevance.
Work around what a marketplace can’t do
Beberapa hal yang diminta pemilik tidak memiliki field dimarketplace.json. Berikut adalah opsi terdekat untuk masing-masing:
- Batasi apa yang pengguna lain pasang: daftar allowlist marketplace adalah pengaturan terkelola,
strictKnownMarketplaces. Lihat Restrict what users can install. - Pasang atau aktifkan plugin tanpa pengguna bertanya: tidak ada field entri yang memasang plugin.
enabledPluginsterkelola melakukan itu untuk armada; lihat Pre-install and require plugins. - Tampilkan entri berbeda kepada pengguna berbeda: entri tidak membawa field audiens, dan setiap pengguna yang menambahkan marketplace melihat seluruh katalog. Host marketplace terpisah untuk audiens terpisah.
- Tandai plugin sebagai deprecated: tidak ada status deprecation. Opsinya adalah menghapus entri, memetakan nama-nya ke
nulldirenames, dan secara opsional mengaturforceRemoveDeletedPlugins. - Nyalakan auto-update untuk pengguna Anda: setiap pengguna menyalakannya di bawah Marketplaces di
/plugin, atau admin mengaturautoUpdatedalam pengaturan terkelola. Lihat Turn on auto-update. - Bawa kredensial git: tidak ada field marketplace yang menyimpan token git. Akses ke marketplace atau plugin yang dihosting git mengikuti setup git pengguna, per Grant access to a private marketplace. Untuk source
archive, entri dapat mengaturheadersatauheadersHelpersebagai gantinya.
Next steps
- Marketplace reference: field
marketplace.json, tipe source, dan pesan validasi - Manage plugins for your organization: memerlukan, membatasi, atau seed marketplace Anda di seluruh mesin organisasi Anda
- Plugin dependencies: tag rilis sehingga plugin yang bergantung pada Anda dapat menyelesaikan versi
- Troubleshoot plugins: kesalahan yang pengguna Anda lihat saat menambahkan atau memperbarui dari marketplace Anda