Plugin Claude Code: Apa Itu dan Berapa Biayanya?
Pahami plugin Claude Code, lokasinya, cara memasangnya, dan biaya sebenarnya: mekanismenya gratis, tetapi semua yang dimuat tetap memakai token.
Apa itu plugin Claude Code
Plugin Claude Code adalah satu direktori berisi komponen yang dimuat dan dikelola Claude Code sebagai satu unit. Komponen tersebut meliputi skills, agents, hooks, server MCP, server LSP, dan monitor latar belakang. Menginstal plugin menambahkan semua komponennya sekaligus dengan satu nama, sedangkan menonaktifkannya menghapus komponen tersebut dengan cara yang sama.
Plugin tidak memberikan kemampuan apa pun yang belum dimiliki agent. Setiap komponen di dalam plugin dapat Anda tulis secara manual di direktori .claude/. Plugin adalah lapisan pengemasan: cara untuk membuat versi komponen tersebut, membagikannya kepada lima belas orang, dan memperbaruinya nanti tanpa meminta semua orang menyalin file. Itulah keseluruhan konsepnya. Sebagian besar kebingungan tentang plugin muncul karena plugin dianggap sebagai jenis kemampuan baru.
Manifest opsional di .claude-plugin/plugin.json menentukan nama plugin, dan nama tersebut menjadi namespace. Skill dalam plugin bernama commit-commands dipanggil sebagai /commit-commands:commit, sehingga dua plugin dapat sama-sama menyediakan skill bernama commit tanpa saling menimpa. Agent plugin menggunakan cakupan yang sama dalam daftar @-mention, yaitu plugin-name:agent-name.
Plugin, skill, server MCP, atau file rules
Keempat istilah ini sering digunakan seolah-olah saling bersaing. Sebenarnya tidak. Batas di antara istilah tersebut perlu dijelaskan sekali.
- Skill adalah satu unit instruksi yang dimuat Claude saat tugas membutuhkannya. Lihat apa sebenarnya Agent Skill.
- Server MCP adalah proses terpisah yang menyediakan tool untuk agent melalui sebuah protokol, sering kali sebagai layanan jaringan yang Anda jalankan sendiri.
- File rules seperti
CLAUDE.mdadalah konteks proyek yang dibaca saat sesi dimulai dan berlaku untuk semuanya. - Plugin adalah wadah yang dapat menampung skill, agent, hook, dan definisi server MCP secara bersamaan, serta memiliki nomor versi dan saluran distribusi.
Jadi, pertanyaan yang dijawab oleh plugin bukanlah "apa yang dapat dilakukan agent". Pertanyaannya adalah "bagaimana cara saya mendistribusikan ini kepada tim dan memperbaruinya bulan depan". Jika Anda sedang memilih di antara tiga yang pertama, perbandingan skill, server MCP, dan file rules membahas keputusan tersebut secara terperinci. Jika bagian MCP yang Anda perlukan, menjalankan server MCP sendiri pada VPS membahas aspek hostingnya.
Lokasi plugin dan isi di dalamnya
Plugin yang dipasang dari marketplace disalin ke cache lokal di ~/.claude/plugins/cache, bukan dijalankan dari lokasi tempat plugin tersebut di-clone. Setiap versi yang dipasang memiliki direktorinya sendiri. Saat Anda memperbarui atau menghapus plugin, direktori versi lama ditandai sebagai orphaned dan dihapus sekitar dua minggu kemudian. Dengan demikian, sesi yang sudah memuat versi lama tetap berjalan dan tidak gagal di tengah tugas.
Karena path berubah pada setiap pembaruan, plugin tidak boleh melakukan hardcode terhadap lokasinya sendiri. Hook dan konfigurasi MCP di dalam plugin menggunakan ${CLAUDE_PLUGIN_ROOT}, yang mengarah ke direktori instalasi saat ini. Data yang harus tetap ada setelah pembaruan disimpan di ${CLAUDE_PLUGIN_DATA}, yang mengarah ke direktori stabil di bawah ~/.claude/plugins/data/.
Hanya direktori milik plugin yang disalin ke cache. Hal ini dapat menimbulkan masalah yang biasanya baru diketahui belakangan. Path yang mengarah ke luar root plugin, seperti ../shared-utils, berfungsi saat Anda mengembangkan plugin dengan path lokal, tetapi gagal setelah instalasi karena file tersebut tidak pernah disalin.
Strukturnya terlihat seperti berikut.
my-plugin/
├── .claude-plugin/
│ └── plugin.json
├── skills/
│ └── code-review/
│ └── SKILL.md
├── agents/
├── hooks/
│ └── hooks.json
├── .mcp.json
└── bin/Hanya plugin.json yang berada di dalam .claude-plugin/. Semua yang lain berada di root plugin. Menempatkan skills/ atau hooks/ di dalam .claude-plugin/ adalah alasan paling umum plugin berhasil diinstal, tetapi kemudian tidak melakukan apa pun: Claude Code mencari direktori tersebut di root, tidak menemukannya, lalu memuat plugin tanpa komponen.
Manifest itu sendiri berukuran kecil.
{
"name": "my-first-plugin",
"description": "A greeting plugin to learn the basics",
"version": "1.0.0"
}Cara menginstal plugin Claude Code
Penginstalan terdiri dari dua langkah, dan langkah pertama tidak menginstal apa pun. Anda menambahkan marketplace, yaitu katalog plugin, lalu menginstal plugin individual dari marketplace tersebut. Marketplace resmi Anthropic, claude-plugins-official, otomatis terdaftar saat pertama kali Anda menjalankan Claude Code secara interaktif. Marketplace lain harus Anda tambahkan sendiri.
/plugin marketplace add anthropics/claude-code
/plugin install commit-commands@claude-code-pluginsPerhatikan bahwa repositorinya adalah anthropics/claude-code, sedangkan nama marketplace-nya adalah claude-code-plugins. Nama tersebut berasal dari file katalog di dalam repositori, bukan dari path repositori. Karena itu, baca nama marketplace pada tab Marketplaces di /plugin sebelum mengetikkan perintah instalasi.
Setelah penginstalan selesai, baca baris ringkasannya. Plugin is now active. berarti komponennya sudah dimuat dalam sesi ini. Run /reload-plugins to activate. berarti komponennya belum dimuat dan Anda perlu menjalankan perintah tersebut. Jika /reload-plugins memperingatkan bahwa perintah itu akan membaca ulang percakapan, jalankan ulang perintah tersebut sebagai /reload-plugins --force. Selanjutnya, pastikan plugin benar-benar tersedia: /plugin menampilkannya pada tab Installed, /help mencantumkan skill-nya pada tab Custom commands, dan komponen yang gagal dimuat ditampilkan pada tab Errors beserta alasannya.
Penginstalan meminta scope, dan scope menentukan siapa yang mendapatkan plugin tersebut. User scope berlaku untuk Anda di setiap proyek. Project scope menulis plugin ke enabledPlugins di dalam .claude/settings.json repositori, sehingga setiap orang yang melakukan clone repositori akan ditawari plugin tersebut. Local scope berlaku untuk Anda, hanya di repositori ini.
Untuk script, Dockerfile, atau sesi apa pun yang tidak menyediakan panel interaktif, gunakan bentuk shell. Secara default, plugin diinstal dengan user scope, kecuali Anda meneruskan --scope.
claude plugin install commit-commands@claude-code-plugins --scope project
claude plugin listclaude plugin install dijalankan di luar sesi. Karena itu, sesi yang sudah terbuka tidak akan melihat plugin baru sampai Anda menjalankan /reload-plugins atau memulai sesi baru.
Pengelolaan plugin yang sudah Anda miliki menggunakan pola yang sama di kedua tempat. /plugin list menampilkan plugin yang terinstal dan menerima --enabled atau --disabled. /plugin disable name@marketplace menonaktifkan plugin tanpa menghapusnya, /plugin enable mengaktifkannya kembali, dan /plugin uninstall menghapusnya. Bentuk slash command membuka panel plugin untuk menerapkan perubahan. Karena itu, gunakan padanan shell claude plugin ... dalam script.
Untuk membagikan marketplace kepada seluruh tim, masukkan marketplace tersebut ke .claude/settings.json proyek. Anggota tim akan diminta menginstalnya setelah mereka mempercayai folder repositori.
{
"extraKnownMarketplaces": {
"my-team-tools": {
"source": {
"source": "github",
"repo": "your-org/claude-plugins"
}
}
}
}Saat membuat plugin sendiri, lewati marketplace sepenuhnya. claude --plugin-dir ./my-plugin memuat direktori untuk sesi tersebut, /reload-plugins menggunakan perubahan Anda tanpa restart, dan claude plugin validate ./my-plugin memeriksa manifest, frontmatter skill dan agent, serta hooks/hooks.json sebelum plugin digunakan oleh orang lain.
Berapa biaya plugin Claude Code?
Mekanismenya gratis. Per Agustus 2026, tidak ada biaya untuk menambahkan marketplace, menginstal plugin, atau membiarkan plugin tetap aktif. Marketplace resmi dan komunitas merupakan repositori git publik, sedangkan plugin adalah direktori yang berisi file teks.
Biaya plugin dihitung dalam token, dan token adalah yang sebenarnya diukur oleh penggunaan langganan atau tagihan API Anda. Dampaknya terhadap salah satu dari kedua biaya tersebut bergantung pada cara Anda membayar tool sejak awal. Biaya Claude Code pada setiap paket menjelaskan tingkat langganan beserta harga API per token. Biaya tersebut muncul dalam tiga cara yang berbeda, dan masing-masing berperilaku berbeda.
Biaya konteks yang menetap. Kontribusi plugin berada dalam konteks Anda dan dibaca ulang pada setiap giliran sesi. Sebelum menginstal, tampilan detail /plugin menampilkan perkiraan Context cost dalam token serta bagian Will install yang mencantumkan command, skill, agent, hook, serta server MCP dan LSP yang akan Anda tambahkan. Baca keduanya. Plugin dari marketplace lokal atau khusus mungkin tidak menyediakan data tersebut. Jika demikian, Anda harus memperkirakannya secara manual. Plugin yang menyertakan server MCP biasanya paling berat karena definisi tool berukuran besar. Namun, pada model yang mendukung pencarian tool MCP, definisi tersebut ditunda hingga sebuah tool diperlukan.
Biaya pemanggilan. Menjalankan skill plugin menambahkan instruksinya ke percakapan. Jadi, Anda hanya membayar isi skill saat skill tersebut digunakan. Namun, isi skill biasanya merupakan bagian yang murah. Hal yang diperintahkan skill kepada agent belum tentu murah: metode Depth Tree pada skill unlazy menggunakan hampir seluruh tokennya untuk pass tambahan yang diwajibkan sebelum agent boleh menyatakan sebuah task selesai, bukan untuk file yang Anda instal. Agent berbeda. Subagent menjalankan percakapannya sendiri dengan system prompt dan cache sendiri, dimulai tanpa cache hit. Jadi, plugin yang alurnya membuat agent dapat memerlukan biaya jauh lebih besar daripada yang ditunjukkan oleh perkiraan konteksnya.
Biaya cache. Mengaktifkan atau menonaktifkan plugin di tengah sesi dapat memaksa request berikutnya memproses ulang seluruh percakapan Anda. Skill, command, agent, hook, server LSP, monitor, dan tema tidak pernah melakukan ini. Konten yang ditambahkannya ditempatkan setelah riwayat yang ada, sehingga request berikutnya membayar konten baru dan tetap membaca seluruh konten sebelumnya dari cache. Pengecualiannya adalah plugin yang menyediakan server MCP. Jika tool-nya ditunda oleh pencarian tool, cache tetap digunakan. Jika tool tersebut dimuat ke dalam prefix prompt, request berikutnya membaca ulang seluruh percakapan sebagai input yang belum di-cache. Karena itu, /reload-plugins memberikan peringatan dan menolak dalam kondisi tersebut sampai Anda meneruskan --force.
Anda dapat memantau biaya ini, bukan sekadar memperkirakannya. Setiap respons API melaporkan cache_read_input_tokens dan cache_creation_input_tokens, sedangkan statusline khusus yang menampilkan penggunaan token secara langsung menampilkan keduanya di hadapan Anda. Sesi yang sehat membaca jauh lebih banyak daripada yang dibuatnya. Jika jumlah token yang dibuat tetap tinggi pada setiap giliran, berarti ada sesuatu dalam prefix Anda yang berubah pada setiap giliran. Untuk gambaran yang lebih luas tentang hal yang memenuhi window, lihat cara mengelola window konteks Claude Code dan makna sebenarnya dari jumlah token tersebut.
Ada satu langkah pemeliharaan yang memberikan manfaat langsung. Tab Installed mengelompokkan plugin yang tidak Anda gunakan setidaknya selama dua minggu di bawah header Not used recently, dengan baris Last used pada tampilan detail. Plugin tersebut tetap menghabiskan waktu startup dan konteks pada setiap sesi. Nonaktifkan atau hapus instalasinya.
Plugin berjalan dengan izin Anda
Dokumentasi Anthropic sendiri menyatakannya dengan jelas: plugin dan marketplace adalah komponen yang sangat tepercaya dan dapat mengeksekusi kode arbitrer pada mesin Anda dengan hak akses pengguna Anda. Ini bukan risiko hipotetis. Hook plugin menjalankan perintah shell pada berbagai peristiwa sesi, termasuk sebelum dan sesudah pemanggilan tool. Direktori bin/ ditambahkan ke PATH milik Bash tool selama plugin diaktifkan. Server MCP-nya adalah proses yang dijalankan oleh plugin. Tidak ada bagian dari proses ini yang di-sandbox dari akun pengguna Anda.
Pada laptop, risiko tersebut biasanya dibatasi oleh hal-hal yang dapat diakses pengguna desktop Anda. Pada server, biasanya tidak demikian. Akun yang menjalankan agent sering memiliki SSH key, token deployment, sesi cloud CLI, dan akses ke socket Docker. Karena itu, “kode arbitrer sebagai pengguna Anda” berarti akses ke mesin tersebut. Jika Claude Code berjalan pada VPS, baca cara menjalankan Claude Code dengan aman pada VPS sebelum memasang apa pun, dan baca cara menjauhkan kredensial dari jangkauan agent sebelum memasang plugin yang berkomunikasi dengan layanan eksternal. Harness lain menghadapi risiko yang sama pada server sewaan yang sama. Karena itu, plugin DeepSeek Harness yang layak dipasang umumnya berisi batas pengeluaran, aturan izin tool, dan pemindaian injection, bukan kemampuan baru.
Beberapa guardrail memang tersedia, dan penting untuk memahami fungsinya. Plugin dengan cakupan proyek berasal dari repository, bukan dari Anda, sehingga plugin tersebut hanya dimuat setelah Anda mempercayai workspace. Server MCP-nya tetap memerlukan persetujuan per server, server LSP-nya menunggu persetujuan tersebut, dan monitor background-nya tidak dimuat sama sekali. Agent yang dikirim bersama plugin tidak diizinkan mendeklarasikan hook, server MCP, atau mode izin. Plugin marketplace disalin ke cache, tetapi symlink yang mengarah ke luar marketplace akan dilewati. Dengan demikian, plugin tidak dapat mengambil file arbitrer dari host.
Semua itu tidak menggantikan pemeriksaan terhadap hal yang Anda pasang. Periksa daftar Will install, utamakan plugin yang source code-nya dapat Anda buka dan baca, simpan plugin tim Anda di repository marketplace yang Anda kendalikan, dan jalankan claude plugin validate pada apa pun yang Anda tulis sendiri.
FAQ
Apakah plugin Claude Code memerlukan biaya tambahan?
Tidak. Tidak ada biaya untuk sistem plugin, menambahkan marketplace, atau menginstal plugin. Biayanya berasal dari penggunaan token yang dibebankan ke paket atau pengeluaran API Anda, seperti konteks lainnya. Plugin menambahkan konteks tetap pada setiap giliran, menambahkan konteks lebih banyak saat salah satu skill atau agent-nya dipanggil, dan dapat memaksa satu giliran mahal yang tidak di-cache jika menyediakan server MCP yang tool-nya dimuat ke dalam awalan prompt. Tampilan detail /plugin menampilkan perkiraan Context cost sebelum Anda menginstal.
Apa perbedaan antara plugin dan skill?
Skill adalah satu unit instruksi. Plugin adalah paket yang dapat berisi skill, agent, hook, server MCP, server LSP, dan monitor, dengan nama, versi, serta marketplace sebagai sumber instalasi. Tulis skill mandiri di .claude/ jika skill tersebut hanya ditujukan untuk Anda dan proyek ini. Skill dengan satu tujuan, seperti Ponytail, yang mengarahkan agent untuk melakukan perubahan sekecil mungkin yang berhasil, adalah contoh paling jelas: satu file dengan satu aturan di dalamnya, sampai suatu saat tim Anda juga membutuhkannya. Ubah skill tersebut menjadi plugin jika orang lain membutuhkannya dan skill itu perlu diperbarui secara berkala. Skill dalam plugin memiliki namespace, sehingga skill di dalam plugin dipanggil sebagai /plugin-name:skill-name, bukan /skill-name.
Plugin saya berhasil diinstal, tetapi skill-nya tidak muncul. Apa masalahnya?
Periksa ringkasan instalasi terlebih dahulu. Jika tertulis Run /reload-plugins to activate., berarti komponen belum dimuat. Jika proses reload memperingatkan bahwa percakapan akan dibaca ulang, jalankan kembali sebagai /reload-plugins --force. Jika komponen sudah dimuat tetapi tidak ada yang tampil, buka /plugin dan baca tab Errors. Kesalahan struktural yang paling umum adalah menempatkan skills/, agents/, atau hooks/ di dalam .claude-plugin/, karena Claude Code tidak mencarinya di sana. Ingat bahwa skill plugin memiliki namespace. Jadi, cari /plugin-name:skill-name di tab Custom commands pada /help. Sebagai langkah terakhir, jalankan rm -rf ~/.claude/plugins/cache, mulai ulang, lalu instal ulang.
Apakah saya dapat menginstal plugin tanpa panel interaktif?
Ya. Gunakan perintah shell claude plugin install name@marketplace, yang menginstal plugin dalam cakupan pengguna kecuali Anda memberikan --scope project atau --scope local. Perintah ini dapat digunakan dalam script, image, dan lingkungan noninteraktif ketika panel /plugin tidak tersedia. Karena perintah ini berjalan di luar sesi, sesi yang sudah terbuka memerlukan /reload-plugins sebelum plugin diterapkan.
Apakah aman menginstal plugin dari marketplace yang saya temukan di GitHub?
Perlakukan proses tersebut seperti menjalankan script instalasi repositori itu sebagai pengguna Anda sendiri, karena secara praktik prosesnya hampir sama. Plugin dapat menjalankan perintah shell melalui hook, menambahkan executable ke PATH milik tool Bash, dan memulai server MCP, semuanya dengan hak akses pengguna Anda. Anthropic tidak mengendalikan atau memverifikasi isi plugin pihak ketiga. Instal plugin dari sumber yang dapat Anda baca, periksa daftar Will install sebelum mengonfirmasi, dan terapkan pemeriksaan yang lebih ketat pada server daripada laptop karena akun di server biasanya menyimpan key dan token yang bernilai bagi penyerang.