Untuk tutorial praktis dan penggunaan praktis, lihat Plugin. Untuk manajemen plugin di seluruh tim dan komunitas, lihat Marketplace plugin.
Referensi ini menyediakan spesifikasi teknis lengkap untuk sistem plugin Claude Code, termasuk skema komponen, perintah CLI, dan alat pengembangan.
Referensi komponen plugin
Bagian ini mendokumentasikan empat jenis komponen yang dapat disediakan oleh plugin.
Perintah
Plugin menambahkan perintah slash kustom yang terintegrasi dengan mulus dengan sistem perintah Claude Code.
Lokasi: direktori commands/
di root plugin
Format file: File Markdown dengan frontmatter
Untuk detail lengkap tentang struktur perintah plugin, pola pemanggilan, dan fitur, lihat Perintah plugin.
Agen
Plugin dapat menyediakan subagen khusus untuk tugas-tugas spesifik yang dapat dipanggil Claude secara otomatis ketika sesuai.
Lokasi: direktori agents/
di root plugin
Format file: File Markdown yang menjelaskan kemampuan agen
Struktur agen:
---
description: Apa yang dikhususkan oleh agen ini
capabilities: ["tugas1", "tugas2", "tugas3"]
---
# Nama Agen
Deskripsi detail tentang peran agen, keahlian, dan kapan Claude harus memanggilnya.
## Kemampuan
- Tugas spesifik yang dikuasai agen
- Kemampuan khusus lainnya
- Kapan menggunakan agen ini vs yang lain
## Konteks dan contoh
Berikan contoh kapan agen ini harus digunakan dan jenis masalah apa yang dipecahkannya.
Titik integrasi:
- Agen muncul di antarmuka
/agents
- Claude dapat memanggil agen secara otomatis berdasarkan konteks tugas
- Agen dapat dipanggil secara manual oleh pengguna
- Agen plugin bekerja bersama agen Claude bawaan
Hook
Plugin dapat menyediakan penangan event yang merespons event Claude Code secara otomatis.
Lokasi: hooks/hooks.json
di root plugin, atau inline di plugin.json
Format: Konfigurasi JSON dengan pencocokan event dan aksi
Konfigurasi hook:
{
"hooks": {
"PostToolUse": [
{
"matcher": "Write|Edit",
"hooks": [
{
"type": "command",
"command": "${CLAUDE_PLUGIN_ROOT}/scripts/format-code.sh"
}
]
}
]
}
}
Event yang tersedia:
PreToolUse
: Sebelum Claude menggunakan alat apa pun
PostToolUse
: Setelah Claude menggunakan alat apa pun
UserPromptSubmit
: Ketika pengguna mengirimkan prompt
Notification
: Ketika Claude Code mengirim notifikasi
Stop
: Ketika Claude mencoba berhenti
SubagentStop
: Ketika subagen mencoba berhenti
SessionStart
: Di awal sesi
SessionEnd
: Di akhir sesi
PreCompact
: Sebelum riwayat percakapan dipadatkan
Jenis hook:
command
: Menjalankan perintah shell atau skrip
validation
: Memvalidasi konten file atau status proyek
notification
: Mengirim peringatan atau pembaruan status
Server MCP
Plugin dapat menggabungkan server Model Context Protocol (MCP) untuk menghubungkan Claude Code dengan alat dan layanan eksternal.
Lokasi: .mcp.json
di root plugin, atau inline di plugin.json
Format: Konfigurasi server MCP standar
Konfigurasi server MCP:
{
"mcpServers": {
"plugin-database": {
"command": "${CLAUDE_PLUGIN_ROOT}/servers/db-server",
"args": ["--config", "${CLAUDE_PLUGIN_ROOT}/config.json"],
"env": {
"DB_PATH": "${CLAUDE_PLUGIN_ROOT}/data"
}
},
"plugin-api-client": {
"command": "npx",
"args": ["@company/mcp-server", "--plugin-mode"],
"cwd": "${CLAUDE_PLUGIN_ROOT}"
}
}
}
Perilaku integrasi:
- Server MCP plugin dimulai secara otomatis ketika plugin diaktifkan
- Server muncul sebagai alat MCP standar di toolkit Claude
- Kemampuan server terintegrasi dengan mulus dengan alat Claude yang ada
- Server plugin dapat dikonfigurasi secara independen dari server MCP pengguna
Skema manifest plugin
File plugin.json
mendefinisikan metadata dan konfigurasi plugin Anda. Bagian ini mendokumentasikan semua field dan opsi yang didukung.
Skema lengkap
{
"name": "plugin-name",
"version": "1.2.0",
"description": "Deskripsi singkat plugin",
"author": {
"name": "Nama Penulis",
"email": "[email protected]",
"url": "https://github.com/author"
},
"homepage": "https://docs.example.com/plugin",
"repository": "https://github.com/author/plugin",
"license": "MIT",
"keywords": ["keyword1", "keyword2"],
"commands": ["./custom/commands/special.md"],
"agents": "./custom/agents/",
"hooks": "./config/hooks.json",
"mcpServers": "./mcp-config.json"
}
Field wajib
Field | Tipe | Deskripsi | Contoh |
---|
name | string | Pengenal unik (kebab-case, tanpa spasi) | "deployment-tools" |
Field | Tipe | Deskripsi | Contoh |
---|
version | string | Versi semantik | "2.1.0" |
description | string | Penjelasan singkat tujuan plugin | "Alat otomasi deployment" |
author | object | Informasi penulis | {"name": "Tim Dev", "email": "[email protected]"} |
homepage | string | URL dokumentasi | "https://docs.example.com" |
repository | string | URL kode sumber | "https://github.com/user/plugin" |
license | string | Pengenal lisensi | "MIT" , "Apache-2.0" |
keywords | array | Tag penemuan | ["deployment", "ci-cd"] |
Field path komponen
Field | Tipe | Deskripsi | Contoh |
---|
commands | string|array | File/direktori perintah tambahan | "./custom/cmd.md" atau ["./cmd1.md"] |
agents | string|array | File agen tambahan | "./custom/agents/" |
hooks | string|object | Path konfigurasi hook atau konfigurasi inline | "./hooks.json" |
mcpServers | string|object | Path konfigurasi MCP atau konfigurasi inline | "./mcp.json" |
Aturan perilaku path
Penting: Path kustom melengkapi direktori default - tidak menggantikannya.
- Jika
commands/
ada, itu dimuat sebagai tambahan dari path perintah kustom
- Semua path harus relatif terhadap root plugin dan dimulai dengan
./
- Perintah dari path kustom menggunakan aturan penamaan dan namespace yang sama
- Beberapa path dapat ditentukan sebagai array untuk fleksibilitas
Contoh path:
{
"commands": [
"./specialized/deploy.md",
"./utilities/batch-process.md"
],
"agents": [
"./custom-agents/reviewer.md",
"./custom-agents/tester.md"
]
}
Variabel lingkungan
${CLAUDE_PLUGIN_ROOT}
: Berisi path absolut ke direktori plugin Anda. Gunakan ini di hook, server MCP, dan skrip untuk memastikan path yang benar terlepas dari lokasi instalasi.
{
"hooks": {
"PostToolUse": [
{
"hooks": [
{
"type": "command",
"command": "${CLAUDE_PLUGIN_ROOT}/scripts/process.sh"
}
]
}
]
}
}
Struktur direktori plugin
Layout plugin standar
Plugin lengkap mengikuti struktur ini:
enterprise-plugin/
├── .claude-plugin/ # Direktori metadata
│ └── plugin.json # Wajib: manifest plugin
├── commands/ # Lokasi perintah default
│ ├── status.md
│ └── logs.md
├── agents/ # Lokasi agen default
│ ├── security-reviewer.md
│ ├── performance-tester.md
│ └── compliance-checker.md
├── hooks/ # Konfigurasi hook
│ ├── hooks.json # Konfigurasi hook utama
│ └── security-hooks.json # Hook tambahan
├── .mcp.json # Definisi server MCP
├── scripts/ # Skrip hook dan utilitas
│ ├── security-scan.sh
│ ├── format-code.py
│ └── deploy.js
├── LICENSE # File lisensi
└── CHANGELOG.md # Riwayat versi
Direktori .claude-plugin/
berisi file plugin.json
. Semua direktori lain (commands/, agents/, hooks/) harus berada di root plugin, bukan di dalam .claude-plugin/
.
Referensi lokasi file
Komponen | Lokasi Default | Tujuan |
---|
Manifest | .claude-plugin/plugin.json | File metadata wajib |
Perintah | commands/ | File markdown perintah slash |
Agen | agents/ | File markdown subagen |
Hook | hooks/hooks.json | Konfigurasi hook |
Server MCP | .mcp.json | Definisi server MCP |
Alat debugging dan pengembangan
Perintah debugging
Gunakan claude --debug
untuk melihat detail pemuatan plugin:
Ini menunjukkan:
- Plugin mana yang sedang dimuat
- Kesalahan apa pun dalam manifest plugin
- Registrasi perintah, agen, dan hook
- Inisialisasi server MCP
Masalah umum
Masalah | Penyebab | Solusi |
---|
Plugin tidak memuat | plugin.json tidak valid | Validasi sintaks JSON |
Perintah tidak muncul | Struktur direktori salah | Pastikan commands/ di root, bukan di .claude-plugin/ |
Hook tidak aktif | Skrip tidak dapat dieksekusi | Jalankan chmod +x script.sh |
Server MCP gagal | ${CLAUDE_PLUGIN_ROOT} hilang | Gunakan variabel untuk semua path plugin |
Kesalahan path | Path absolut digunakan | Semua path harus relatif dan dimulai dengan ./ |
Referensi distribusi dan versioning
Manajemen versi
Ikuti semantic versioning untuk rilis plugin:
## Lihat juga
- [Plugin](/id/docs/claude-code/plugins) - Tutorial dan penggunaan praktis
- [Marketplace plugin](/id/docs/claude-code/plugin-marketplaces) - Membuat dan mengelola marketplace
- [Perintah slash](/id/docs/claude-code/slash-commands) - Detail pengembangan perintah
- [Subagen](/id/docs/claude-code/sub-agents) - Konfigurasi dan kemampuan agen
- [Hook](/id/docs/claude-code/hooks) - Penanganan event dan otomasi
- [MCP](/id/docs/claude-code/mcp) - Integrasi alat eksternal
- [Pengaturan](/id/docs/claude-code/settings) - Opsi konfigurasi untuk plugin