Buat plugins
Buat plugins kustom untuk memperluas Claude Code dengan skills, agents, hooks, dan MCP servers.
Plugins memungkinkan Anda memperluas Claude Code dengan fungsionalitas kustom yang dapat dibagikan di seluruh proyek dan tim. Panduan ini mencakup pembuatan plugins Anda sendiri dengan skills, agents, hooks, dan MCP servers.
Mencari untuk memasang plugins yang sudah ada? Lihat Temukan dan pasang plugins. Untuk spesifikasi teknis lengkap, lihat Referensi plugins.
Kapan menggunakan plugins vs konfigurasi standalone
Claude Code mendukung dua cara untuk menambahkan skills, agents, dan hooks kustom:
| Pendekatan | Nama skill | Terbaik untuk |
|---|---|---|
Standalone (direktori .claude/) |
/hello |
Alur kerja pribadi, kustomisasi khusus proyek, eksperimen cepat |
Plugins (direktori dengan skills, agents, hooks, atau manifes .claude-plugin/plugin.json) |
/plugin-name:hello |
Berbagi dengan rekan kerja, distribusi ke komunitas, rilis dengan versi, dapat digunakan kembali di seluruh proyek |
Mulai dengan konfigurasi standalone di .claude/ untuk iterasi cepat, kemudian konversi ke plugin ketika Anda siap untuk berbagi.
Quickstart
Quickstart ini memandu Anda melalui pembuatan plugin dengan skill kustom. Anda akan membuat manifest (file konfigurasi yang mendefinisikan plugin Anda), menambahkan skill, dan mengujinya secara lokal menggunakan flag --plugin-dir.
Prasyarat
- Claude Code diinstal dan diautentikasi
Buat plugin pertama Anda
Buat direktori plugin
Setiap plugin berada di direktorinya sendiri yang berisi skills, agents, atau hooks Anda, secara opsional bersama dengan manifest .claude-plugin/plugin.json. Lokasi tidak penting untuk quickstart ini karena Anda akan menunjukkan Claude Code ke direktori dengan --plugin-dir di langkah pengujian. Buat di mana saja yang nyaman, seperti folder scratch atau direktori projects:
mkdir my-first-plugin
Langkah-langkah yang tersisa berjalan dari direktori induk dan mereferensikan path seperti my-first-plugin/... relatif terhadapnya.
Buat manifest plugin
File manifest di .claude-plugin/plugin.json mendefinisikan identitas plugin Anda: nama, deskripsi, dan versinya. Claude Code menggunakan metadata ini untuk menampilkan plugin Anda di plugin manager.
Buat direktori .claude-plugin di dalam folder plugin Anda:
mkdir my-first-plugin/.claude-plugin
Kemudian buat my-first-plugin/.claude-plugin/plugin.json dengan konten ini:
{
"name": "my-first-plugin",
"description": "A greeting plugin to learn the basics",
"version": "1.0.0",
"author": {
"name": "Your Name"
}
}
| Field | Tujuan |
|---|---|
name |
Pengidentifikasi unik dan namespace skill. Skills diawali dengan ini (misalnya, /my-first-plugin:hello). |
description |
Ditampilkan di plugin manager saat menjelajahi atau memasang plugins. |
version |
Opsional. Jika diatur, pengguna hanya menerima pembaruan ketika Anda menaikkan field ini, kecuali untuk command source atau plugin dimuat di tempat; lihat manajemen versi. Jika dihilangkan, versi berasal dari sumber berikutnya dalam manajemen versi. |
author |
Opsional. Membantu untuk atribusi. |
Untuk field tambahan seperti homepage, repository, dan license, lihat skema manifest lengkap.
Tambahkan skill
Skills berada di direktori skills/. Setiap skill adalah folder yang berisi file SKILL.md. Nama folder menjadi nama skill, diawali dengan namespace plugin (hello/ dalam plugin bernama my-first-plugin membuat /my-first-plugin:hello).
Buat direktori skill di folder plugin Anda:
mkdir -p my-first-plugin/skills/hello
Kemudian buat my-first-plugin/skills/hello/SKILL.md dengan konten ini:
---
description: Greet the user with a friendly message
disable-model-invocation: true
---
Greet the user warmly and ask how you can help them today.
Uji plugin Anda
Jalankan Claude Code dengan flag --plugin-dir untuk memuat plugin Anda:
claude --plugin-dir ./my-first-plugin
Setelah Claude Code dimulai, coba skill baru Anda:
/my-first-plugin:hello
Anda akan melihat Claude merespons dengan salam. Jalankan /help dan buka tab Custom commands untuk melihat skill Anda terdaftar di bawah namespace plugin.
Mengapa namespace? Plugin skills selalu diberi namespace (seperti /my-first-plugin:hello) untuk mencegah konflik ketika beberapa plugins memiliki skills dengan nama yang sama.
Untuk mengubah awalan namespace, perbarui field name di plugin.json.
Tambahkan argumen skill
Buat skill Anda dinamis dengan menerima input pengguna. Placeholder $ARGUMENTS menangkap teks apa pun yang disediakan pengguna setelah nama skill.
Perbarui file SKILL.md Anda:
---
description: Greet the user with a personalized message
---
# Hello Skill
Greet the user named "$ARGUMENTS" warmly and ask how you can help them today. Make the greeting personal and encouraging.
Jalankan /reload-plugins untuk mengambil perubahan. Kemudian coba skill dengan nama Anda:
/my-first-plugin:hello Alex
Claude akan menyapa Anda dengan nama. Untuk lebih lanjut tentang meneruskan argumen ke skills, lihat Skills.
Flag --plugin-dir berguna untuk pengembangan dan pengujian. Ketika Anda siap untuk berbagi plugin Anda dengan orang lain, lihat Buat dan distribusikan marketplace plugin.
Kembangkan plugin di direktori skills Anda
Alih-alih meneruskan --plugin-dir pada setiap peluncuran, Anda dapat menyimpan plugin di direktori skills Anda dan membuat Claude Code memuatnya secara otomatis. claude plugin init membuat scaffolding untuk satu:
claude plugin init my-tool
Ini membuat ~/.claude/skills/my-tool/ dengan manifest .claude-plugin/plugin.json dan SKILL.md pemula. Pada sesi berikutnya, plugin ini dimuat sebagai my-tool@skills-dir tanpa langkah marketplace atau instalasi.
Untuk aturan auto-load, cakupan pribadi vs. proyek, persyaratan workspace-trust, dan cara memperbarui atau menghapus satu, lihat Skills-directory plugins.
Ikhtisar struktur plugin
Anda telah membuat plugin dengan skill, tetapi plugins dapat mencakup banyak hal lagi: agents kustom, hooks, MCP servers, LSP servers, dan background monitors.
Kesalahan umum: Jangan letakkan commands/, agents/, skills/, atau hooks/ di dalam direktori .claude-plugin/. Hanya plugin.json yang masuk ke dalam .claude-plugin/. Semua direktori lainnya harus berada di tingkat root plugin.
Plugin root adalah direktori plugin individual itu sendiri, seperti my-first-plugin/ dari quickstart. Ini tidak pernah ~/.claude/. Sebagai contoh, Claude Code tidak membaca .mcp.json yang ditempatkan di ~/.claude/.mcp.json.
| Direktori | Lokasi | Tujuan |
|---|---|---|
.claude-plugin/ |
Root plugin | Berisi manifest plugin.json (opsional jika komponen menggunakan lokasi default) |
skills/ |
Root plugin | Skills sebagai direktori <name>/SKILL.md |
commands/ |
Root plugin | Skills sebagai file Markdown datar. Gunakan skills/ untuk plugins baru |
agents/ |
Root plugin | Definisi agent kustom |
hooks/ |
Root plugin | Event handlers di hooks.json |
.mcp.json |
Root plugin | Konfigurasi MCP server |
.lsp.json |
Root plugin | Konfigurasi LSP server untuk code intelligence |
monitors/ |
Root plugin | Konfigurasi background monitor di monitors.json |
bin/ |
Root plugin | Executable yang ditambahkan ke PATH tool Bash saat plugin diaktifkan. Anda tidak dapat menyertakan direktori ini dalam plugin yang Anda distribusikan melalui pengaturan organisasi claude.ai |
settings.json |
Root plugin | Settings default yang diterapkan ketika plugin diaktifkan |
Plugin yang mengirimkan tepat satu skill dapat menempatkan SKILL.md langsung di root plugin alih-alih membuat direktori skills/. Claude Code memuatnya sebagai skill tunggal dan menggunakan field frontmatter name untuk nama invokasi. Gunakan tata letak skills/ untuk plugins yang mungkin berkembang menjadi lebih dari satu skill.
Kembangkan plugins yang lebih kompleks
Setelah Anda nyaman dengan plugins dasar, Anda dapat membuat ekstensi yang lebih canggih.
Tambahkan Skills ke plugin Anda
Plugins dapat mencakup Agent Skills untuk memperluas kemampuan Claude. Skills diinvokasi oleh model: Claude secara otomatis menggunakannya berdasarkan konteks tugas.
Tambahkan direktori skills/ di root plugin Anda dengan folder Skill yang berisi file SKILL.md:
my-plugin/
├── .claude-plugin/
│ └── plugin.json
└── skills/
└── code-review/
└── SKILL.md
Setiap SKILL.md berisi frontmatter YAML dan instruksi. Sertakan description sehingga Claude tahu kapan menggunakan skill:
---
description: Reviews code for best practices and potential issues. Use when reviewing code, checking PRs, or analyzing code quality.
---
When reviewing code, check for:
1. Code organization and structure
2. Error handling
3. Security concerns
4. Test coverage
Setelah memasang plugin, periksa ringkasan instalasi: jika melaporkan Run /reload-plugins to activate., lihat Terapkan perubahan plugin tanpa memulai ulang untuk memuat Skills dalam sesi Anda saat ini. Untuk panduan authoring Skill lengkap termasuk progressive disclosure dan pembatasan tool, lihat Agent Skills.
Tambahkan LSP servers ke plugin Anda
Untuk bahasa umum seperti TypeScript, Python, dan Rust, pasang plugin LSP yang sudah dibangun sebelumnya dari marketplace resmi. Buat plugin LSP kustom hanya ketika Anda memerlukan dukungan untuk bahasa yang belum tercakup.
Plugin LSP (Language Server Protocol) memberikan Claude code intelligence real-time. Jika Anda perlu mendukung bahasa yang tidak memiliki plugin LSP resmi, Anda dapat membuat plugin Anda sendiri dengan menambahkan file .lsp.json ke plugin Anda:
{
"go": {
"command": "gopls",
"args": ["serve"],
"extensionToLanguage": {
".go": "go"
}
}
}
Pengguna yang memasang plugin Anda harus memiliki binary language server yang diinstal di mesin mereka.
Untuk mengonfirmasi server dimulai, luncurkan Claude Code dengan plugin diaktifkan dan periksa tab /plugin Errors: language server yang gagal dimulai muncul di sana, misalnya dengan Executable not found in $PATH ketika binary tidak diinstal. Entri dengan konfigurasi yang tidak valid dilewati sebagai gantinya; jalankan claude --debug untuk melihat alasannya.
Untuk opsi konfigurasi LSP lengkap, lihat LSP servers.
Tambahkan background monitors ke plugin Anda
Background monitors memungkinkan plugin Anda untuk menonton logs, file, atau status eksternal di latar belakang dan memberi tahu Claude saat event tiba. Claude Code memulai setiap monitor secara otomatis ketika plugin aktif, jadi Anda tidak perlu menginstruksikan Claude untuk memulai watch.
Tambahkan file monitors/monitors.json di root plugin dengan array entri monitor:
[
{
"name": "error-log",
"command": "tail -F ./logs/error.log",
"description": "Application error log"
}
]
Setiap baris stdout dari command dikirimkan ke Claude sebagai notifikasi selama sesi. Untuk skema lengkap, termasuk trigger when dan substitusi variabel, lihat Monitors.
Kirim default settings dengan plugin Anda
Plugins dapat menyertakan file settings.json di root plugin untuk menerapkan konfigurasi default ketika plugin diaktifkan. Saat ini, hanya key agent dan subagentStatusLine yang didukung.
Mengatur agent mengaktifkan salah satu custom agents plugin sebagai thread utama, menerapkan system prompt, pembatasan tool, dan modelnya. Ini memungkinkan plugin untuk mengubah perilaku Claude Code secara default ketika diaktifkan.
{
"agent": "security-reviewer"
}
Contoh ini mengaktifkan agent security-reviewer yang didefinisikan di direktori agents/ plugin. Settings dari settings.json mengambil prioritas atas settings yang dideklarasikan di plugin.json. Key yang tidak dikenal diabaikan secara diam-diam.
Organisir plugins kompleks
Untuk plugins dengan banyak komponen, organisir struktur direktori Anda berdasarkan fungsionalitas. Untuk layout direktori lengkap dan pola organisasi, lihat Struktur direktori plugin.
Uji plugins Anda secara lokal
Gunakan flag --plugin-dir untuk menguji plugins selama pengembangan. Ini memuat plugin Anda secara langsung tanpa memerlukan instalasi.
claude --plugin-dir ./my-plugin
Flag juga menerima arsip .zip dari direktori plugin.
claude --plugin-dir ./my-plugin.zip
Ketika plugin --plugin-dir memiliki nama yang sama dengan plugin marketplace yang diinstal, salinan lokal mengambil prioritas untuk sesi itu. Ini memungkinkan Anda menguji perubahan pada plugin yang sudah Anda instal tanpa mencopot pemasangannya terlebih dahulu. Pengecualian adalah plugins yang managed settings force-enable atau force-disable: --plugin-dir tidak dapat menimpa pengaturan tersebut.
Saat Anda membuat perubahan pada plugin Anda, jalankan /reload-plugins untuk mengambil pembaruan tanpa memulai ulang. Ini memuat ulang plugins, skills, agents, hooks, plugin MCP servers, dan plugin LSP servers; dalam sesi tanpa terminal interaktif, perubahan plugin MCP server menunggu sesi berikutnya Anda. Uji komponen plugin Anda:
- Coba skills Anda dengan
/plugin-name:skill-name - Periksa bahwa agents muncul di
/contextdi bawah Custom Agents, atau @-mention salah satu dengan nama scoped-nya - Picu event yang setiap hook cocokkan, seperti meminta Claude untuk mengedit file untuk hook
PostToolUse, dan konfirmasi efeknya. Claude Code mencatat hook mana yang cocok, kode keluar mereka, dan output mereka di debug log
Anda dapat memuat beberapa plugins sekaligus dengan menentukan flag berkali-kali:
claude --plugin-dir ./plugin-one --plugin-dir ./plugin-two
Untuk menguji plugin bersama dengan plugin yang bergantung padanya, lihat Uji plugin dan dependensinya secara lokal.
Mencoba plugin dengan --plugin-dir memberi tahu Anda bahwa itu dapat bekerja. Untuk mengetahui seberapa sering Claude benar-benar mencapainya dan mendapatkan hasil yang tepat, jalankan terhadap serangkaian prompt test dengan claude plugin eval. Setiap prompt berjalan beberapa kali dengan dan tanpa plugin dimuat, sehingga Anda dapat melihat apa yang dikontribusikan plugin dan menangkap regresi ketika Anda mengubahnya atau model baru dikirim.
Untuk memuat beberapa plugins dari satu tempat, teruskan folder yang menahannya, seperti --plugin-dir ./plugins. Memuat folder plugins memerlukan Claude Code v2.1.265 atau lebih baru. Claude Code membaca tingkat atas folder untuk memutuskan plugin mana yang dimuat, dan dalam sesi interaktif juga menonton folder untuk perubahan kemudian:
- Apa yang dimuat: jika folder tidak memiliki manifest atau komponen plugin di tingkat atasnya, Claude Code memperlakukannya sebagai folder plugins. Setiap subfolder langsung yang memiliki manifest
.claude-plugin/plugin.jsondimuat sebagai plugin terpisah. Claude Code melewati segalanya di folder tanpa melaporkan kesalahan, termasuk plugins yang tidak memiliki manifest. - Perubahan selama sesi interaktif: subfolder yang Anda tambahkan dimuat sebagai plugin baru setelah manifestnya ada, dan ketika Anda menghapus subfolder, pluginnya dibongkar. Claude Code mencetak baris dalam sesi untuk setiap perubahan. Jika menerapkan perubahan di tengah percakapan akan membatalkan prompt cache, Claude Code menahan itu, dan baris mengatakan untuk menjalankan
/reload-pluginsuntuk menerapkannya.
Untuk menguji plugin yang sudah dikemas sebagai arsip .zip dan dihosting di URL, seperti artefak build CI, gunakan --plugin-url sebagai gantinya. Claude Code mengambil arsip saat startup dan memuatnya hanya untuk sesi itu. Jika Claude Code tidak dapat mengambil arsip, atau arsip tidak valid, Claude Code dimulai tanpa plugin dan mencatat kesalahan pemuatan plugin yang dapat Anda tinjau di tab Errors manager /plugin. Pertimbangan kepercayaan yang sama berlaku seperti untuk sumber plugin apa pun: hanya arahkan flag ini ke arsip yang Anda kontrol atau percayai.
Untuk memuat beberapa plugins, ulangi flag untuk setiap URL:
claude --plugin-url https://example.com/my-plugin.zip --plugin-url https://example.com/other.zip
Atau teruskan URL yang dipisahkan spasi sebagai satu argumen yang dikutip:
claude --plugin-url "https://example.com/my-plugin.zip https://example.com/other.zip"
Debug masalah plugin
Jika plugin Anda tidak bekerja seperti yang diharapkan:
- Periksa struktur: Pastikan direktori Anda berada di root plugin, bukan di dalam
.claude-plugin/ - Uji komponen secara individual: Periksa setiap skill, agent, dan hook secara terpisah
- Gunakan alat validasi dan debugging: Lihat Alat debugging dan pengembangan untuk perintah CLI dan teknik troubleshooting
Bagikan plugins Anda
Ketika plugin Anda siap untuk dibagikan:
- Tambahkan dokumentasi: Sertakan
README.mddengan instruksi instalasi dan penggunaan - Pilih strategi versioning: Tentukan apakah akan menetapkan
versioneksplisit atau mengandalkan fallback yang dijelaskan di manajemen versi. - Buat atau gunakan marketplace: Distribusikan melalui plugin marketplaces untuk instalasi
- Uji dengan orang lain: Minta anggota tim menguji plugin sebelum distribusi yang lebih luas
Setelah plugin Anda berada di marketplace, orang lain dapat memasangnya menggunakan instruksi di Temukan dan pasang plugins. Untuk menjaga plugin tetap internal bagi tim Anda, hosting marketplace di private repository.
Kirimkan plugin Anda ke marketplace komunitas
Anthropic memelihara dua marketplace publik untuk plugin Claude Code:
claude-plugins-official: serangkaian plugin yang dikurasi yang dikelola oleh Anthropic. Claude Code mendaftarkannya secara otomatis saat pertama kali Anda memulai Claude Code secara interaktif. Jika Anda menjalankan Claude Code non-interaktif sebelum peluncuran interaktif pertama itu, atau kebijakan marketplace memblokir upaya sebelumnya, daftarkan sendiri denganclaude plugin marketplace add anthropics/claude-plugins-official.claude-community: marketplace komunitas publik tempat pengajuan pihak ketiga mendarat setelah review. Pengguna menambahkannya dengan/plugin marketplace add anthropics/claude-plugins-communitydan memasangnya sebagai@claude-community.
Untuk mengirimkan plugin Anda untuk review marketplace komunitas, gunakan salah satu formulir in-app:
- claude.ai: claude.ai/admin-settings/directory/submissions/plugins/new
- Console: platform.claude.com/plugins/submit
Formulir claude.ai memerlukan organisasi Team atau Enterprise dan akses manajemen direktori; Owners organisasi memiliki akses ini secara default. Penulis individual yang bukan bagian dari organisasi Team atau Enterprise dapat menggunakan formulir Console sebagai gantinya.
Jalankan claude plugin validate ./your-plugin secara lokal sebelum Anda mengirimkan, mengganti ./your-plugin dengan path ke direktori plugin Anda. Pipeline review menjalankan pemeriksaan yang sama pada setiap pengajuan, bersama dengan screening keamanan otomatis. Ketika validasi lulus, Claude Code mencetak ✔ Validation passed, atau ✔ Validation passed with warnings jika ada peringatan. Peringatan tidak gagal validasi; tambahkan --strict untuk memperlakukan mereka sebagai kesalahan.
Plugin yang disetujui disematkan ke SHA commit tertentu di katalog anthropics/claude-plugins-community, dan CI membump pin secara otomatis saat Anda push commit baru ke repository Anda. Katalog publik disinkronkan setiap malam dari pipeline review, jadi dapat ada penundaan antara persetujuan dan plugin Anda muncul di marketplace.json. Untuk memeriksa apakah plugin Anda dapat dipasang, cari namanya di katalog komunitas.
Marketplace resmi, claude-plugins-official, dikurasi secara terpisah. Anthropic memutuskan plugin mana yang akan disertakan atas kebijakannya. Tidak ada proses aplikasi, dan formulir pengajuan tidak menambahkan plugins ke marketplace resmi.
Jika Anthropic mencantumkan plugin Anda di marketplace resmi, CLI Anda dapat meminta pengguna Claude Code untuk memasangnya. Lihat Rekomendasikan plugin Anda dari CLI Anda.
Konversi konfigurasi yang ada ke plugins
Jika Anda sudah memiliki skills atau hooks di direktori .claude/ Anda, Anda dapat mengonversinya menjadi plugin untuk berbagi dan distribusi yang lebih mudah.
Langkah migrasi
Buat struktur plugin
Buat direktori plugin baru di root proyek Anda, bersama dengan folder .claude/ yang sudah ada, sehingga path cp relatif di langkah berikutnya dapat diselesaikan:
mkdir -p my-plugin/.claude-plugin
Buat file manifest di my-plugin/.claude-plugin/plugin.json:
{
"name": "my-plugin",
"description": "Migrated from standalone configuration",
"version": "1.0.0"
}
Salin file yang ada
Salin setiap direktori konfigurasi yang Anda miliki ke root plugin. Anda mungkin tidak memiliki ketiganya: jika direktori tidak ada, cp mencetak No such file or directory dan tidak menyalin apa pun, jadi lewati perintah itu atau abaikan kesalahannya.
cp -r .claude/commands my-plugin/
cp -r .claude/agents my-plugin/
cp -r .claude/skills my-plugin/
Plugin Anda sekarang berisi salinan direktori yang Anda miliki di bawah .claude/. Jalankan ls my-plugin untuk mengonfirmasi: Anda harus melihat setiap direktori yang Anda salin.
Migrasi hooks
Jika Anda memiliki hooks di settings Anda, buat direktori hooks:
mkdir my-plugin/hooks
Buat my-plugin/hooks/hooks.json dengan konfigurasi hooks Anda. Salin objek hooks dari .claude/settings.json atau settings.local.json Anda, karena formatnya sama. Perintah menerima input hook sebagai JSON di stdin, jadi gunakan jq untuk mengekstrak path file:
{
"hooks": {
"PostToolUse": [
{
"matcher": "Write|Edit",
"hooks": [{ "type": "command", "command": "jq -r '.tool_input.file_path' | xargs npm run lint:fix" }]
}
]
}
}
Uji plugin yang dimigrasikan
Muat plugin Anda untuk memverifikasi semuanya berfungsi:
claude --plugin-dir ./my-plugin
Uji setiap komponen: jalankan commands Anda, periksa bahwa agents muncul di /context, dan picu setiap event yang cocok dengan hook untuk mengonfirmasi efeknya. Claude Code mencatat hook mana yang cocok dan bagaimana mereka keluar di debug log.
Apa yang berubah saat migrasi
Standalone (.claude/) |
Plugin |
|---|---|
| Hanya tersedia di satu proyek | Dapat dibagikan melalui marketplaces |
File di .claude/commands/ |
File di plugin-name/commands/ |
Hooks di settings.json |
Hooks di hooks/hooks.json |
| Harus menyalin secara manual untuk berbagi | Pasang dengan /plugin install |
Setelah migrasi, hapus file asli dari .claude/ untuk menghindari duplikat. Definisi .claude/agents/ proyek dan pengguna menggantikan agents plugin dengan nama yang sama, jadi versi plugin hanya berlaku setelah yang asli dihapus. Plugin skills diberi namespace sebagai /plugin-name:skill-name, jadi /skill-name asli dan salinan plugin keduanya tetap tersedia daripada satu menggantikan yang lain.
Langkah berikutnya
Sekarang bahwa Anda memahami sistem plugin Claude Code, berikut adalah jalur yang disarankan untuk tujuan yang berbeda:
Untuk pengguna plugin
- Temukan dan pasang plugins: jelajahi marketplaces dan pasang plugins
- Konfigurasi marketplaces tim: atur plugins tingkat repository untuk tim Anda
Untuk pengembang plugin
- Uji plugins dengan evals: ukur apa yang diubah plugin Anda dan gerbang CI padanya
- Buat dan distribusikan marketplace: paket dan bagikan plugins Anda
- Referensi plugins: spesifikasi teknis lengkap
- Selami lebih dalam komponen plugin spesifik: