Sebuah marketplace plugin adalah katalog yang memungkinkan Anda mendistribusikan plugin kepada orang lain. Marketplace menyediakan penemuan terpusat, pelacakan versi, pembaruan otomatis, dan dukungan untuk berbagai jenis sumber (repositori git, jalur lokal, dan lainnya). Panduan ini menunjukkan cara membuat marketplace Anda sendiri untuk berbagi plugin dengan tim atau komunitas Anda. Mencari cara memasang plugin dari marketplace yang sudah ada? Lihat Temukan dan pasang plugin yang sudah dibuat.Documentation Index
Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt
Use this file to discover all available pages before exploring further.
Ikhtisar
Membuat dan mendistribusikan marketplace melibatkan:- Membuat plugin: bangun satu atau lebih plugin dengan skills, agents, hooks, MCP servers, atau LSP servers. Panduan ini mengasumsikan Anda sudah memiliki plugin untuk didistribusikan; lihat Buat plugin untuk detail tentang cara membuat plugin.
- Membuat file marketplace: tentukan
marketplace.jsonyang mencantumkan plugin Anda dan di mana menemukannya (lihat Buat file marketplace). - Host marketplace: dorong ke GitHub, GitLab, atau host git lainnya (lihat Host dan distribusikan marketplace).
- Bagikan dengan pengguna: pengguna menambahkan marketplace Anda dengan
/plugin marketplace adddan memasang plugin individual (lihat Temukan dan pasang plugin).
/plugin marketplace update.
Panduan: buat marketplace lokal
Contoh ini membuat marketplace dengan satu plugin: skillquality-review untuk ulasan kode. Anda akan membuat struktur direktori, menambahkan skill, membuat manifest plugin dan katalog marketplace, kemudian memasang dan mengujinya.
Buat skill
Buat file
SKILL.md yang mendefinisikan apa yang dilakukan skill quality-review.my-marketplace/plugins/quality-review-plugin/skills/quality-review/SKILL.md
Buat manifest plugin
Buat file
plugin.json yang mendeskripsikan plugin. Manifest berada di direktori .claude-plugin/.my-marketplace/plugins/quality-review-plugin/.claude-plugin/plugin.json
Menetapkan
version berarti pengguna hanya menerima pembaruan ketika Anda mengubah bidang ini, jadi tingkatkan pada setiap rilis. Jika Anda menghilangkan version dan menghosting marketplace ini di git, setiap commit secara otomatis dihitung sebagai versi baru. Lihat Version resolution untuk memilih pendekatan yang tepat.Buat file marketplace
Buat katalog marketplace yang mencantumkan plugin Anda.
my-marketplace/.claude-plugin/marketplace.json
Cara plugin dipasang: Ketika pengguna memasang plugin, Claude Code menyalin direktori plugin ke lokasi cache. Ini berarti plugin tidak dapat mereferensikan file di luar direktorinya menggunakan jalur seperti
../shared-utils, karena file tersebut tidak akan disalin.Jika Anda perlu berbagi file di seluruh plugin, gunakan symlink. Lihat Plugin caching and file resolution untuk detail.Buat file marketplace
Buat.claude-plugin/marketplace.json di root repositori Anda. File ini mendefinisikan nama marketplace Anda, informasi pemilik, dan daftar plugin dengan sumbernya.
Setiap entri plugin memerlukan minimal name dan source (di mana mengambilnya). Lihat skema lengkap di bawah untuk semua field yang tersedia.
Skema marketplace
Field yang diperlukan
| Field | Type | Deskripsi | Contoh |
|---|---|---|---|
name | string | Identifier marketplace (kebab-case, tanpa spasi). Ini menghadap publik: pengguna melihatnya saat memasang plugin (misalnya, /plugin install my-tool@your-marketplace). | "acme-tools" |
owner | object | Informasi pengelola marketplace (lihat field di bawah) | |
plugins | array | Daftar plugin yang tersedia | Lihat di bawah |
Nama yang dicadangkan: Nama marketplace berikut dicadangkan untuk penggunaan resmi Anthropic dan tidak dapat digunakan oleh marketplace pihak ketiga:
claude-code-marketplace, claude-code-plugins, claude-plugins-official, anthropic-marketplace, anthropic-plugins, agent-skills, knowledge-work-plugins, life-sciences. Nama yang meniru marketplace resmi (seperti official-claude-plugins atau anthropic-tools-v2) juga diblokir.Field pemilik
| Field | Type | Diperlukan | Deskripsi |
|---|---|---|---|
name | string | Ya | Nama pengelola atau tim |
email | string | Tidak | Email kontak untuk pengelola |
Field opsional
| Field | Type | Deskripsi |
|---|---|---|
$schema | string | URL JSON Schema untuk autocomplete dan validasi editor. Claude Code mengabaikan field ini saat waktu muat. |
description | string | Deskripsi marketplace singkat |
version | string | Versi manifest marketplace |
metadata.pluginRoot | string | Direktori dasar yang ditambahkan ke jalur sumber plugin relatif (misalnya, "./plugins" memungkinkan Anda menulis "source": "formatter" alih-alih "source": "./plugins/formatter") |
allowCrossMarketplaceDependenciesOn | array | Marketplace lain yang plugin di marketplace ini dapat bergantung padanya. Dependensi dari marketplace yang tidak tercantum di sini diblokir saat instalasi. Lihat Bergantung pada plugin dari marketplace lain. |
description dan version juga diterima di bawah metadata untuk kompatibilitas mundur.
Entri plugin
Setiap entri plugin dalam arrayplugins mendeskripsikan plugin dan di mana menemukannya. Anda dapat menyertakan field apa pun dari skema manifest plugin (seperti description, version, author, commands, hooks, dll.), ditambah field khusus marketplace ini: source, category, tags, dan strict.
Field yang diperlukan
| Field | Type | Deskripsi |
|---|---|---|
name | string | Identifier plugin (kebab-case, tanpa spasi). Ini menghadap publik: pengguna melihatnya saat memasang (misalnya, /plugin install my-plugin@marketplace). |
source | string|object | Di mana mengambil plugin (lihat Plugin sources di bawah) |
Field plugin opsional
Field metadata standar:| Field | Type | Deskripsi |
|---|---|---|
description | string | Deskripsi plugin singkat |
version | string | Versi plugin. Jika diatur (di sini atau di plugin.json), plugin disematkan ke string ini dan pengguna hanya menerima pembaruan saat berubah. Hilangkan untuk kembali ke SHA commit git. Lihat Version resolution. |
author | object | Informasi penulis plugin (name diperlukan, email opsional) |
homepage | string | URL homepage atau dokumentasi plugin |
repository | string | URL repositori kode sumber |
license | string | Identifier lisensi SPDX (misalnya, MIT, Apache-2.0) |
keywords | array | Tag untuk penemuan dan kategorisasi plugin |
category | string | Kategori plugin untuk organisasi |
tags | array | Tag untuk kemudahan pencarian |
strict | boolean | Mengontrol apakah plugin.json adalah otoritas untuk definisi komponen (default: true). Lihat Strict mode di bawah. |
| Field | Type | Deskripsi |
|---|---|---|
skills | string|array | Jalur kustom ke direktori skill yang berisi <name>/SKILL.md |
commands | string|array | Jalur kustom ke file skill .md datar atau direktori |
agents | string|array | Jalur kustom ke file agent |
hooks | string|object | Konfigurasi hooks kustom atau jalur ke file hooks |
mcpServers | string|object | Konfigurasi MCP server atau jalur ke config MCP |
lspServers | string|object | Konfigurasi LSP server atau jalur ke config LSP |
Plugin sources
Plugin sources memberitahu Claude Code di mana mengambil setiap plugin individual yang tercantum di marketplace Anda. Ini diatur dalam fieldsource dari setiap entri plugin di marketplace.json.
Setelah plugin diklon atau disalin ke mesin lokal, plugin disalin ke cache plugin lokal yang diversi di ~/.claude/plugins/cache.
| Source | Type | Fields | Catatan |
|---|---|---|---|
| Relative path | string (misalnya "./my-plugin") | none | Direktori lokal dalam repo marketplace. Harus dimulai dengan ./. Diselesaikan relatif terhadap root marketplace, bukan direktori .claude-plugin/ |
github | object | repo, ref?, sha? | |
url | object | url, ref?, sha? | Sumber URL Git |
git-subdir | object | url, path, ref?, sha? | Subdirektori dalam repo git. Mengklon secara sparse untuk meminimalkan bandwidth untuk monorepo |
npm | object | package, version?, registry? | Dipasang via npm install |
Marketplace sources vs plugin sources: Ini adalah konsep berbeda yang mengontrol hal berbeda.
- Marketplace source — di mana mengambil katalog
marketplace.jsonitu sendiri. Diatur ketika pengguna menjalankan/plugin marketplace addatau dalam pengaturanextraKnownMarketplaces. Mendukungref(branch/tag) tetapi bukansha. - Plugin source — di mana mengambil plugin individual yang tercantum di marketplace. Diatur dalam field
sourcedari setiap entri plugin di dalammarketplace.json. Mendukung baikref(branch/tag) maupunsha(commit yang tepat).
acme-corp/plugin-catalog (marketplace source) dapat mencantumkan plugin yang diambil dari acme-corp/code-formatter (plugin source). Marketplace source dan plugin source menunjuk ke repositori berbeda dan disematkan secara independen.Jalur relatif
Untuk plugin di repositori yang sama, gunakan jalur yang dimulai dengan./:
.claude-plugin/. Dalam contoh di atas, ./plugins/my-plugin menunjuk ke <repo>/plugins/my-plugin, meskipun marketplace.json berada di <repo>/.claude-plugin/marketplace.json. Jangan gunakan ../ untuk mereferensikan jalur di luar root marketplace.
Jalur relatif hanya berfungsi ketika pengguna menambahkan marketplace Anda melalui Git (GitHub, GitLab, atau URL git). Jika pengguna menambahkan marketplace Anda melalui URL langsung ke file
marketplace.json, jalur relatif tidak akan terselesaikan dengan benar. Untuk distribusi berbasis URL, gunakan sumber GitHub, npm, atau URL git sebagai gantinya. Lihat Troubleshooting untuk detail.Repositori GitHub
| Field | Type | Deskripsi |
|---|---|---|
repo | string | Diperlukan. Repositori GitHub dalam format owner/repo |
ref | string | Opsional. Branch atau tag Git (default ke branch default repositori) |
sha | string | Opsional. SHA commit git 40-karakter penuh untuk menyematkan ke versi yang tepat |
Repositori Git
| Field | Type | Deskripsi |
|---|---|---|
url | string | Diperlukan. URL repositori git lengkap (https:// atau git@). Akhiran .git opsional, jadi URL Azure DevOps dan AWS CodeCommit tanpa akhiran berfungsi |
ref | string | Opsional. Branch atau tag Git (default ke branch default repositori) |
sha | string | Opsional. SHA commit git 40-karakter penuh untuk menyematkan ke versi yang tepat |
Subdirektori Git
Gunakangit-subdir untuk menunjuk ke plugin yang berada di dalam subdirektori repositori git. Claude Code menggunakan klon parsial dan sparse untuk mengambil hanya subdirektori, meminimalkan bandwidth untuk monorepo besar.
url juga menerima shorthand GitHub (owner/repo) atau URL SSH (git@github.com:owner/repo.git).
| Field | Type | Deskripsi |
|---|---|---|
url | string | Diperlukan. URL repositori Git, shorthand GitHub owner/repo, atau URL SSH |
path | string | Diperlukan. Jalur subdirektori dalam repo yang berisi plugin (misalnya, "tools/claude-plugin") |
ref | string | Opsional. Branch atau tag Git (default ke branch default repositori) |
sha | string | Opsional. SHA commit git 40-karakter penuh untuk menyematkan ke versi yang tepat |
Paket npm
Plugin yang didistribusikan sebagai paket npm dipasang menggunakannpm install. Ini berfungsi dengan paket apa pun di registry npm publik atau registry pribadi yang dihosting tim Anda.
version:
registry:
| Field | Type | Deskripsi |
|---|---|---|
package | string | Diperlukan. Nama paket atau paket scoped (misalnya, @org/plugin) |
version | string | Opsional. Versi atau rentang versi (misalnya, 2.1.0, ^2.0.0, ~1.5.0) |
registry | string | Opsional. URL registry npm kustom. Default ke registry npm sistem (biasanya npmjs.org) |
Entri plugin lanjutan
Contoh ini menunjukkan entri plugin menggunakan banyak field opsional, termasuk jalur kustom untuk commands, agents, hooks, dan MCP servers:commandsdanagents: Anda dapat menentukan beberapa direktori atau file individual. Jalur relatif terhadap root plugin.${CLAUDE_PLUGIN_ROOT}: Gunakan variabel ini dalam hooks dan config MCP server untuk mereferensikan file dalam direktori instalasi plugin. Ini diperlukan karena plugin disalin ke lokasi cache saat dipasang. Untuk dependensi atau state yang harus bertahan pembaruan plugin, gunakan${CLAUDE_PLUGIN_DATA}sebagai gantinya.strict: false: Karena ini diatur ke false, plugin tidak memerlukanplugin.jsonsendiri. Entri marketplace mendefinisikan semuanya. Lihat Strict mode di bawah.
Strict mode
Fieldstrict mengontrol apakah plugin.json adalah otoritas untuk definisi komponen (skills, agents, hooks, MCP servers, output styles).
| Value | Perilaku |
|---|---|
true (default) | plugin.json adalah otoritas. Entri marketplace dapat melengkapinya dengan komponen tambahan, dan kedua sumber digabungkan. |
false | Entri marketplace adalah definisi lengkap. Jika plugin juga memiliki plugin.json yang mendeklarasikan komponen, itu adalah konflik dan plugin gagal dimuat. |
strict: true: plugin memilikiplugin.jsonsendiri dan mengelola komponennya sendiri. Entri marketplace dapat menambahkan skills atau hooks tambahan di atas. Ini adalah default dan berfungsi untuk sebagian besar plugin.strict: false: operator marketplace menginginkan kontrol penuh. Repo plugin menyediakan file mentah, dan entri marketplace mendefinisikan file mana yang diekspos sebagai skills, agents, hooks, dll. Berguna ketika marketplace merestruktur atau mengkurasi komponen plugin secara berbeda dari yang dimaksudkan penulis plugin.
Host dan distribusikan marketplace
Host di GitHub (direkomendasikan)
GitHub menyediakan metode distribusi paling mudah:- Buat repositori: Siapkan repositori baru untuk marketplace Anda
- Tambahkan file marketplace: Buat
.claude-plugin/marketplace.jsondengan definisi plugin Anda - Bagikan dengan tim: Pengguna menambahkan marketplace Anda dengan
/plugin marketplace add owner/repo
Host di layanan git lainnya
Layanan hosting git apa pun berfungsi, seperti GitLab, Bitbucket, dan server yang dihosting sendiri. Pengguna menambahkan dengan URL repositori lengkap:Repositori pribadi
Claude Code mendukung pemasangan plugin dari repositori pribadi. Untuk instalasi manual dan pembaruan, Claude Code menggunakan helper kredensial git yang ada, jadi akses HTTPS melaluigh auth login, Keychain macOS, atau git-credential-store berfungsi sama seperti di terminal Anda. Akses SSH berfungsi selama host sudah ada di file known_hosts Anda dan kunci dimuat di ssh-agent, karena Claude Code menekan prompt SSH interaktif untuk sidik jari host dan passphrase kunci.
Pembaruan otomatis latar belakang berjalan saat startup tanpa helper kredensial, karena prompt interaktif akan memblokir Claude Code dari startup. Untuk mengaktifkan pembaruan otomatis untuk marketplace pribadi, atur token autentikasi yang sesuai di lingkungan Anda:
| Provider | Variabel lingkungan | Catatan |
|---|---|---|
| GitHub | GITHUB_TOKEN atau GH_TOKEN | Token akses pribadi atau token GitHub App |
| GitLab | GITLAB_TOKEN atau GL_TOKEN | Token akses pribadi atau token proyek |
| Bitbucket | BITBUCKET_TOKEN | Sandi aplikasi atau token akses repositori |
.bashrc, .zshrc) atau teruskan saat menjalankan Claude Code:
Untuk lingkungan CI/CD, konfigurasikan token sebagai variabel lingkungan rahasia. GitHub Actions secara otomatis menyediakan
GITHUB_TOKEN untuk repositori dalam organisasi yang sama.Uji secara lokal sebelum distribusi
Uji marketplace Anda secara lokal sebelum berbagi:Wajibkan marketplace untuk tim Anda
Anda dapat mengonfigurasi repositori Anda sehingga anggota tim secara otomatis diminta untuk memasang marketplace Anda ketika mereka mempercayai folder proyek. Tambahkan marketplace Anda ke.claude/settings.json:
Jika Anda menggunakan sumber
directory atau file lokal dengan jalur relatif, jalur diselesaikan terhadap checkout utama repositori Anda. Ketika Anda menjalankan Claude Code dari git worktree, jalur masih menunjuk ke checkout utama, jadi semua worktrees berbagi lokasi marketplace yang sama. Status marketplace disimpan sekali per pengguna di ~/.claude/plugins/known_marketplaces.json, bukan per proyek.Pra-isi plugin untuk container
Untuk image container dan lingkungan CI, Anda dapat pra-isi direktori plugin saat waktu build sehingga Claude Code dimulai dengan marketplace dan plugin yang sudah tersedia, tanpa mengklon apa pun saat runtime. Atur variabel lingkunganCLAUDE_CODE_PLUGIN_SEED_DIR untuk menunjuk ke direktori ini.
Untuk melapisi beberapa direktori seed, pisahkan jalur dengan : di Unix atau ; di Windows. Claude Code mencari setiap direktori secara berurutan, dan seed pertama yang berisi marketplace atau cache plugin yang diberikan menang.
Direktori seed mencerminkan struktur ~/.claude/plugins:
~/.claude/plugins yang dihasilkan ke image Anda dan tunjukkan CLAUDE_CODE_PLUGIN_SEED_DIR ke sana.
Untuk melewati langkah copy, atur CLAUDE_CODE_PLUGIN_CACHE_DIR ke jalur target seed Anda selama build sehingga plugin dipasang langsung ke sana:
CLAUDE_CODE_PLUGIN_SEED_DIR=/opt/claude-seed di lingkungan runtime container Anda sehingga Claude Code membaca dari seed saat startup.
Saat startup, Claude Code mendaftarkan marketplace yang ditemukan di known_marketplaces.json seed ke dalam konfigurasi utama, dan menggunakan cache plugin yang ditemukan di bawah cache/ di tempat tanpa mengklon ulang. Ini berfungsi dalam mode interaktif dan mode non-interaktif dengan flag -p.
Detail perilaku:
- Read-only: direktori seed tidak pernah ditulis. Pembaruan otomatis dinonaktifkan untuk marketplace seed karena git pull akan gagal di filesystem read-only.
- Entri seed mengambil prioritas: marketplace yang dideklarasikan dalam seed menimpa entri yang cocok apa pun dalam konfigurasi pengguna di setiap startup. Untuk opt out dari plugin seed, gunakan
/plugin disabledaripada menghapus marketplace. - Resolusi jalur: Claude Code menemukan konten marketplace dengan menyelidiki
$CLAUDE_CODE_PLUGIN_SEED_DIR/marketplaces/<name>/saat runtime, bukan dengan mempercayai jalur yang disimpan di dalam JSON seed. Ini berarti seed berfungsi dengan benar bahkan ketika dipasang di jalur berbeda dari tempat dibangun. - Mutasi diblokir: menjalankan
/plugin marketplace removeatau/plugin marketplace updateterhadap marketplace yang dikelola seed gagal dengan panduan untuk meminta administrator Anda memperbarui image seed. - Komposisi dengan pengaturan: jika
extraKnownMarketplacesatauenabledPluginsmendeklarasikan marketplace yang sudah ada di seed, Claude Code menggunakan salinan seed alih-alih mengklon.
Pembatasan marketplace yang dikelola
Untuk organisasi yang memerlukan kontrol ketat atas sumber plugin, administrator dapat membatasi marketplace plugin mana yang diizinkan pengguna untuk tambahkan menggunakan pengaturanstrictKnownMarketplaces dalam pengaturan yang dikelola.
Ketika strictKnownMarketplaces dikonfigurasi dalam pengaturan yang dikelola, perilaku pembatasan tergantung pada nilainya:
| Value | Perilaku |
|---|---|
| Tidak terdefinisi (default) | Tidak ada pembatasan. Pengguna dapat menambahkan marketplace apa pun |
Array kosong [] | Lockdown lengkap. Pengguna tidak dapat menambahkan marketplace baru apa pun |
| Daftar sumber | Pengguna hanya dapat menambahkan marketplace yang cocok dengan daftar izin secara tepat |
Konfigurasi umum
Nonaktifkan semua penambahan marketplace:".*" sebagai pathPattern untuk mengizinkan jalur filesystem apa pun sambil tetap mengontrol sumber jaringan dengan hostPattern.
strictKnownMarketplaces membatasi apa yang dapat ditambahkan pengguna, tetapi tidak mendaftarkan marketplace dengan sendirinya. Untuk membuat marketplace yang diizinkan tersedia secara otomatis tanpa pengguna menjalankan /plugin marketplace add, pasangkan dengan extraKnownMarketplaces dalam managed-settings.json yang sama. Lihat Menggunakan keduanya bersama-sama.Cara pembatasan bekerja
Pembatasan diperiksa sebelum operasi jaringan atau filesystem apa pun. Pemeriksaan berjalan pada marketplace add dan pada plugin install, update, refresh, dan auto-update. Jika marketplace ditambahkan sebelum kebijakan dikonfigurasi dan sumbernya tidak lagi cocok dengan daftar izin, Claude Code menolak untuk memasang atau memperbarui plugin darinya. Penegakan yang sama berlaku untukblockedMarketplaces.
Daftar izin menggunakan pencocokan tepat untuk sebagian besar jenis sumber. Agar marketplace diizinkan, semua field yang ditentukan harus cocok secara tepat:
- Untuk sumber GitHub:
repodiperlukan, danrefataupathjuga harus cocok jika ditentukan dalam daftar izin - Untuk sumber URL: URL lengkap harus cocok secara tepat
- Untuk sumber
hostPattern: host marketplace dicocokkan dengan pola regex - Untuk sumber
pathPattern: jalur filesystem marketplace dicocokkan dengan pola regex
.git, atau bentuk ssh:// versus https:// diperlakukan sebagai nilai berbeda. Jika marketplace organisasi Anda dapat diklon oleh lebih dari satu bentuk URL, lebih suka entri hostPattern daripada URL literal sehingga semua bentuk cocok.
Karena strictKnownMarketplaces diatur dalam pengaturan yang dikelola, konfigurasi pengguna individual dan proyek tidak dapat mengganti pembatasan ini.
Untuk detail konfigurasi lengkap termasuk semua jenis sumber yang didukung dan perbandingan dengan extraKnownMarketplaces, lihat referensi strictKnownMarketplaces.
Resolusi versi dan saluran rilis
Versi plugin menentukan jalur cache dan deteksi pembaruan: jika versi yang diselesaikan cocok dengan apa yang sudah dimiliki pengguna,/plugin update dan auto-update melewati plugin.
Claude Code menyelesaikan versi plugin dari yang pertama dari ini yang diatur:
versiondalamplugin.jsonpluginversiondalam entri marketplace plugin- SHA commit git dari sumber plugin
github, url, git-subdir, dan jalur relatif di dalam marketplace yang dihosting git, Anda dapat menghilangkan version sepenuhnya dan setiap commit baru diperlakukan sebagai versi baru. Ini adalah setup paling sederhana untuk plugin internal atau yang sedang dikembangkan secara aktif.
Siapkan saluran rilis
Untuk mendukung saluran rilis “stable” dan “latest” untuk plugin Anda, Anda dapat menyiapkan dua marketplace yang menunjuk ke refs atau SHA berbeda dari repo yang sama. Anda kemudian dapat menetapkan dua marketplace ke grup pengguna berbeda melalui pengaturan yang dikelola.Contoh
Tetapkan saluran ke grup pengguna
Tetapkan setiap marketplace ke grup pengguna yang sesuai melalui pengaturan yang dikelola. Misalnya, grup stabil menerima:latest-tools sebagai gantinya:
Sematkan versi dependensi
Plugin dapat membatasi dependensinya ke rentang semver sehingga pembaruan dependensi tidak merusak plugin yang bergantung. Lihat Batasi versi dependensi plugin untuk konvensi git-tag{plugin-name}--v{version}, sintaks rentang, dan bagaimana beberapa batasan pada dependensi yang sama digabungkan.
Validasi dan pengujian
Uji marketplace Anda sebelum berbagi. Validasi sintaks JSON marketplace Anda:Kelola marketplace dari CLI
Claude Code menyediakan subperintahclaude plugin marketplace non-interaktif untuk scripting dan otomasi. Ini setara dengan perintah /plugin marketplace yang tersedia dalam sesi interaktif.
Plugin marketplace add
Tambahkan marketplace dari repositori GitHub, URL git, URL jarak jauh, atau jalur lokal.<source>: Shorthand GitHubowner/repo, URL git, URL jarak jauh ke filemarketplace.json, atau jalur direktori lokal. Untuk menyematkan ke branch atau tag, tambahkan@refke shorthand GitHub atau#refke URL git
| Opsi | Deskripsi | Default |
|---|---|---|
--scope <scope> | Di mana mendeklarasikan marketplace: user, project, atau local. Lihat Plugin installation scopes | user |
--sparse <paths...> | Batasi checkout ke direktori tertentu melalui git sparse-checkout. Berguna untuk monorepo |
owner/repo:
@ref:
marketplace.json secara langsung:
.claude/settings.json:
Plugin marketplace list
Daftar semua marketplace yang dikonfigurasi.| Opsi | Deskripsi |
|---|---|
--json | Output sebagai JSON |
Plugin marketplace remove
Hapus marketplace yang dikonfigurasi. Aliasrm juga diterima.
<name>: nama marketplace untuk dihapus, seperti yang ditunjukkan olehclaude plugin marketplace list. Ini adalahnamedarimarketplace.json, bukan sumber yang Anda teruskan keadd
Plugin marketplace update
Segarkan marketplace dari sumbernya untuk mengambil plugin baru dan perubahan versi.[name]: nama marketplace untuk diperbarui, seperti yang ditunjukkan olehclaude plugin marketplace list. Memperbarui semua marketplace jika dihilangkan
remove maupun update gagal ketika dijalankan terhadap marketplace yang dikelola seed, yang bersifat read-only. Saat memperbarui semua marketplace, entri yang dikelola seed dilewati dan marketplace lainnya masih diperbarui. Untuk mengubah plugin yang disediakan seed, minta administrator Anda memperbarui image seed. Lihat Pra-isi plugin untuk container.
Troubleshooting
Marketplace tidak memuat
Gejala: Tidak dapat menambahkan marketplace atau melihat plugin darinya Solusi:- Verifikasi URL marketplace dapat diakses
- Periksa bahwa
.claude-plugin/marketplace.jsonada di jalur yang ditentukan - Pastikan sintaks JSON valid dan frontmatter terbentuk dengan baik menggunakan
claude plugin validateatau/plugin validate - Untuk repositori pribadi, konfirmasi Anda memiliki izin akses
Kesalahan validasi marketplace
Jalankanclaude plugin validate . atau /plugin validate . dari direktori marketplace Anda untuk memeriksa masalah. Validator memeriksa plugin.json, frontmatter skill/agent/command, dan hooks/hooks.json untuk kesalahan sintaks dan skema. Kesalahan umum:
| Kesalahan | Penyebab | Solusi |
|---|---|---|
File not found: .claude-plugin/marketplace.json | Manifest hilang | Buat .claude-plugin/marketplace.json dengan field yang diperlukan |
Invalid JSON syntax: Unexpected token... | Kesalahan sintaks JSON dalam marketplace.json | Periksa koma yang hilang, koma ekstra, atau string yang tidak dikutip |
Duplicate plugin name "x" found in marketplace | Dua plugin berbagi nama yang sama | Berikan setiap plugin nilai name yang unik |
plugins[0].source: Path contains ".." | Jalur sumber berisi .. | Gunakan jalur relatif terhadap root marketplace tanpa ... Lihat Jalur relatif |
YAML frontmatter failed to parse: ... | YAML tidak valid dalam file skill, agent, atau command | Perbaiki sintaks YAML dalam blok frontmatter. Saat runtime file ini dimuat tanpa metadata. |
Invalid JSON syntax: ... (hooks.json) | hooks/hooks.json yang tidak terbentuk dengan baik | Perbaiki sintaks JSON. hooks/hooks.json yang tidak terbentuk dengan baik mencegah seluruh plugin dari dimuat. |
Marketplace has no plugins defined: tambahkan setidaknya satu plugin ke arraypluginsNo marketplace description provided: tambahkandescriptiontingkat atas untuk membantu pengguna memahami marketplace AndaPlugin name "x" is not kebab-case: nama plugin berisi huruf besar, spasi, atau karakter khusus. Ubah nama menjadi huruf kecil, digit, dan tanda hubung saja (misalnya,my-plugin). Claude Code menerima bentuk lain, tetapi sinkronisasi marketplace Claude.ai menolaknya.
Kegagalan instalasi plugin
Gejala: Marketplace muncul tetapi instalasi plugin gagal Solusi:- Verifikasi URL sumber plugin dapat diakses
- Periksa bahwa direktori plugin berisi file yang diperlukan
- Untuk sumber GitHub, pastikan repositori publik atau Anda memiliki akses
- Uji sumber plugin secara manual dengan mengklon/mengunduh
Autentikasi repositori pribadi gagal
Gejala: Kesalahan autentikasi saat memasang plugin dari repositori pribadi Solusi: Untuk instalasi manual dan pembaruan:- Verifikasi Anda diautentikasi dengan penyedia git Anda (misalnya, jalankan
gh auth statusuntuk GitHub) - Periksa bahwa helper kredensial Anda dikonfigurasi dengan benar:
git config --global credential.helper - Coba klon repositori secara manual untuk memverifikasi kredensial Anda berfungsi
- Atur token yang sesuai di lingkungan Anda:
echo $GITHUB_TOKEN - Periksa bahwa token memiliki izin yang diperlukan (akses baca ke repositori)
- Untuk GitHub, pastikan token memiliki scope
repountuk repositori pribadi - Untuk GitLab, pastikan token memiliki setidaknya scope
read_repository - Verifikasi token belum kedaluwarsa
Pembaruan marketplace gagal di lingkungan offline
Gejala: Marketplacegit pull gagal dan Claude Code menghapus cache yang ada, menyebabkan plugin menjadi tidak tersedia.
Penyebab: Secara default, ketika git pull gagal, Claude Code menghapus klon yang sudah usang dan mencoba mengklon ulang. Di lingkungan offline atau airgapped, mengklon ulang gagal dengan cara yang sama, meninggalkan direktori marketplace kosong.
Solusi: Atur CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE=1 untuk menyimpan cache yang ada ketika pull gagal alih-alih menghapusnya:
git pull dan terus menggunakan status terakhir yang diketahui baik. Untuk deployment yang sepenuhnya offline di mana repositori tidak akan pernah dapat dijangkau, gunakan CLAUDE_CODE_PLUGIN_SEED_DIR untuk pra-isi direktori plugin saat waktu build sebagai gantinya.
Operasi Git time out
Gejala: Instalasi plugin atau pembaruan marketplace gagal dengan kesalahan timeout seperti “Git clone timed out after 120s” atau “Git pull timed out after 120s”. Penyebab: Claude Code menggunakan timeout 120 detik untuk semua operasi git, termasuk mengklon repositori plugin dan menarik pembaruan marketplace. Repositori besar atau koneksi jaringan lambat mungkin melebihi batas ini. Solusi: Tingkatkan timeout menggunakan variabel lingkunganCLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS. Nilainya dalam milidetik:
Plugin dengan jalur relatif gagal di marketplace berbasis URL
Gejala: Menambahkan marketplace melalui URL (sepertihttps://example.com/marketplace.json), tetapi plugin dengan sumber jalur relatif seperti "./plugins/my-plugin" gagal dipasang dengan kesalahan “path not found”.
Penyebab: Marketplace berbasis URL hanya mengunduh file marketplace.json itu sendiri. Mereka tidak mengunduh file plugin dari server. Jalur relatif dalam entri marketplace mereferensikan file di server jarak jauh yang tidak diunduh.
Solusi:
- Gunakan sumber eksternal: Ubah entri plugin untuk menggunakan sumber GitHub, npm, atau URL git alih-alih jalur relatif:
- Gunakan marketplace berbasis Git: Host marketplace Anda di repositori Git dan tambahkan dengan URL git. Marketplace berbasis Git mengklon seluruh repositori, membuat jalur relatif berfungsi dengan benar.
File tidak ditemukan setelah instalasi
Gejala: Plugin dipasang tetapi referensi ke file gagal, terutama file di luar direktori plugin Penyebab: Plugin disalin ke direktori cache daripada digunakan di tempat. Jalur yang mereferensikan file di luar direktori plugin (seperti../shared-utils) tidak akan berfungsi karena file tersebut tidak disalin.
Solusi: Lihat Plugin caching and file resolution untuk solusi termasuk symlink dan restruktur direktori.
Untuk alat debugging tambahan dan masalah umum, lihat Debugging and development tools.
Lihat juga
- Temukan dan pasang plugin yang sudah dibuat - Memasang plugin dari marketplace yang ada
- Plugins - Membuat plugin Anda sendiri
- Plugins reference - Spesifikasi teknis lengkap dan skema
- Plugin settings - Opsi konfigurasi plugin
- strictKnownMarketplaces reference - Pembatasan marketplace yang dikelola