Ikhtisar Mods
Tambahkan pane, perintah, dan aturan pemanggilan alat ke Claude Code dengan mod. Lihat apa yang dapat dilakukan mod, cara membuat atau memasang mod, dan tempat mod berjalan.
Mod adalah plugin yang mengubah tampilan dan perilaku Claude Code. Mod terdiri dari penanganan peristiwa JavaScript atau TypeScript: Claude Code memanggil satu ketika peristiwa terjadi, seperti pemanggilan alat, prompt yang dikirimkan, atau bagian dari antarmuka yang digambar, dan penanganan dapat memantau peristiwa, mengubahnya, atau mengambil alih. Gunakan mod untuk menambahkan fitur Anda sendiri ke Claude Code, seperti pane yang membuat bagan seberapa penuh konteks Anda setelah setiap permintaan. Untuk file dalam mod dan contoh lengkap, lihat Cara kerja mod.
hooks yang sudah ada di Claude Code juga berjalan pada peristiwa, sebagai perintah shell, permintaan HTTP, atau prompt yang Anda konfigurasi dalam file pengaturan. Penanganan mod adalah fungsi yang berjalan di dalam Claude Code sebagai gantinya. Claude Code memanggil kedua jenis hooks: di halaman ini, "hook" berarti penanganan mod, dan jenis file pengaturan adalah "settings hook".
Apa yang dapat dilakukan mod
Settings hooks, skills, status lines, dan server MCP bekerja dari luar Claude Code: masing-masing menjalankan skrip, atau memberikan Claude teks atau alat. Mod berjalan di dalam Claude Code, jadi dapat melakukan hal-hal yang tidak dapat dilakukan oleh yang lain:
- Gambar antarmuka yang dapat Anda gunakan: pane di samping transkrip atau band di atas prompt, dengan tab, tombol, dan bidang teks. Lihat Gambar di antarmuka.
- Gambar ulang antarmuka Claude Code sendiri: ganti atau ubah gaya bagian yang digambar Claude Code sendiri, seperti baris pemanggilan alat, spinner, atau dialog yang Claude tanyakan. Lihat Ubah apa yang sudah digambar Claude Code.
- Masuki pemanggilan alat atau permintaan: misalnya, tahan pemanggilan alat saat Anda mengajukan pertanyaan kepada pengguna, jawab tanpa menjalankan alat, atau kirim satu permintaan ke model yang berbeda. Lihat Lindungi atau ubah pemanggilan alat dan Ikuti giliran.
- Jalankan kode Anda sendiri pada perintah:
/commandyang menjalankan fungsi Anda sekaligus, tanpa giliran Claude, bahkan saat Claude sedang bekerja. Lihat Tambahkan perintah atau alat. - Bagikan data antar hooks: hooks mod berbagi variabel dalam file-nya, jadi apa yang dicatat satu hook, hook lain dapat menampilkannya. Misalnya, satu hook dapat menghitung pemanggilan alat sementara hook lain menampilkan hitungan di samping spinner, atau satu dapat membaca penggunaan token setiap permintaan sementara hook lain membuat bagan di pane. Lihat Bereaksi terhadap acara.
Mods bekerja di CLI Claude Code dan di tab Code aplikasi Desktop Claude. Lihat Tempat mod berjalan untuk memahami cara mereka berperilaku di tempat lain, seperti di ekstensi VS Code, claude -p, dan sesi cloud. Jika settings hook, skill, atau server MCP sudah melakukan apa yang Anda butuhkan, bandingkan mereka sebelum Anda menulis mod. Untuk mengelola mods untuk organisasi, lihat Kelola mods untuk organisasi Anda.
Dapatkan mod
Untuk memulai dengan mod:
- Gunakan yang sudah Anda miliki: beberapa fitur Claude Code sendiri adalah mods, seperti
/diff. Lihat Mods bawaan Claude Code. - Buat satu: jelaskan apa yang Anda inginkan dalam sesi Claude Code, dan Claude menulis mod. Lihat Minta Claude untuk mod. Untuk mempelajari cara kerja kode mod, tulis satu sendiri.
- Pasang satu: lihat Pasang atau perbarui mod, atau coba mod contoh
Pasang atau perbarui mod
Mod adalah kode yang berjalan dengan izin Anda. Dapat membaca dan menulis file Anda, memulai proses, dan membuat permintaan jaringan. Pasang mods hanya dari penulis dan marketplace yang Anda percayai. Lihat Putuskan apakah akan mempercayai mod.
Mod dipasang sebagai plugin, dari marketplace. Berikan nama plugin, @, dan nama marketplace. Contoh-contoh ini memasang plugin bernama token-chart dari marketplace bernama your-org:
- Dalam sesi Claude Code, jalankan
/plugin install token-chart@your-org. - Di shell Anda, jalankan
claude plugin install token-chart@your-org.
Pasang plugins mencakup marketplaces, scopes, ekstensi VS Code dan aplikasi Desktop, dan menjaga plugins tetap terbaru, semuanya berlaku untuk plugin yang berisi mod tanpa perubahan.
Jika Anda memasang atau memperbarui mod dari shell Anda saat sesi terbuka, jalankan /reload-plugins dalam sesi itu untuk memuatnya. Jika tidak, mod akan dimuat saat Anda memulai Claude Code berikutnya.
Coba mod contoh
Anthropic membagikan mod contoh di direktori claude-code/mods pada repositori claude-code-playground. Masing-masing adalah plugin lengkap, dan README-nya menjelaskan cara pembuatannya. Repositori ini membagikannya apa adanya, tanpa dukungan.
token-weather: menggambar prakiraan context window Anda di atas promptblast-radius: menahan perintah shell yang berisiko, sepertirm -rfatau force push, dan menampilkan apa yang akan diubahnya, dengan tombol untuk melanjutkan atau membatalkanreplay-theater: menambahkan perintah/replayyang menelusuri langkah demi langkah suntingan file yang dibuat Claude pada giliran terakhir
Mod contoh berjalan dengan izin Anda. Untuk melihat apa yang dilakukan sebuah mod sebelum Anda memuatnya, daftarkan hook dan panggilannya.
Untuk mencobanya, clone repositori tersebut dan muat direktori mod untuk satu sesi dengan --plugin-dir. Untuk memastikan mod telah dimuat, periksa mods mana yang dimuat oleh sesi.
Untuk menyimpannya, tambahkan direktori claude-code/mods dari clone sebagai marketplace, lalu pasang mod dari claude-code-playground-mods. Marketplace tersebut menunjuk ke clone Anda, sehingga mod berhenti dimuat jika Anda memindahkan atau menghapusnya.
Putuskan apakah akan mempercayai mod
Mod adalah kode yang berjalan dengan izin Anda, di dalam Claude Code. Pasang mods hanya dari penulis dan marketplaces yang Anda percayai.
Apa yang dapat dijangkau mod
Mod berjalan dengan izin Anda, jadi sebelum Anda memasang satu, ketahui apa yang dapat diaksesnya. Setelah dimuat, mod dapat:
- Bertindak di mesin Anda sebagai Anda: membaca dan menulis file di mana pun akun pengguna Anda dapat, memulai program, dan membuat permintaan jaringan
- Baca rahasia Anda: environment variable dan file pengaturan, termasuk kunci API yang Anda simpan di salah satu
- Lihat sesi Anda: setiap prompt yang Anda kirim dan setiap panggilan tool yang dibuat Claude
- Ubah sesi Anda: tulis ulang prompt atau panggilan tool, kirimkan prompt seolah-olah Anda telah mengetiknya, atau kirim pesan ke sesi lain Anda
- Bertindak tanpa meminta Anda: setujui panggilan tool sebelum Anda diminta
- Habiskan penggunaan Anda: panggil model pada paket atau kunci API Anda
Mod tidak berjalan di dalam sandbox. Jika Anda mengaktifkan sandboxing, sandbox mengisolasi perintah Bash yang dijalankan Claude, dan proses yang dimulai oleh mod berjalan di luarnya.
Mod yang menyetujui panggilan tool dapat menyetujui panggilan yang akan dimintakan izinnya oleh aturan ask, atau yang diblokir oleh hook PreToolUse Anda sendiri. Perluas izin dengan hooks mencantumkan apa yang dapat disetujui mod seperti itu, termasuk kapan dapat menyetujui panggilan yang ditolak aturan deny.
Mod dapat mengubah gaya banyak antarmuka Claude Code, tetapi bukan dialog izin. Mod tidak dapat mengubah apa yang ditampilkan dialog tersebut kepada Anda.
Daftar apa yang dilakukan mod sebelum Anda memasangnya
Sebelum Anda memasang mod, Anda dapat membuat daftar peristiwa mana yang ditanganinya dan apa yang dimintanya kepada Claude Code untuk dilakukan, seperti membaca file atau membuat permintaan jaringan, tanpa menjalankannya. Dapatkan file plugin terlebih dahulu, misalnya dengan mengkloning repositorinya. Kemudian, di shell Anda, jalankan claude plugin validate di direktori plugin:
claude plugin validate ./some-mod
Baris hooks: dan calls: dalam output mencantumkan peristiwa yang ditangani mod dan apa yang dimintanya kepada Claude Code untuk dilakukan. Tinjau apa yang dapat dilakukan mod menunjukkan output dan panggilan mana yang harus dicari.
Nyalakan atau matikan mods
Mods memerlukan Claude Code v2.1.287 atau lebih baru, dan mods aktif secara default. Di shell Anda, jalankan claude --version untuk memeriksa, dan perbarui Claude Code jika milik Anda lebih lama.
Untuk mematikan mods, pilih berapa banyak yang akan dihentikan, dan berapa lama. Untuk menghidupkan kembali, batalkan perubahan yang sama:
- Satu mod: nonaktifkan atau copot pemasangan pluginnya dari tab Installed di
/plugin - Setiap mod yang dipasang, untuk satu sesi: mulai Claude Code dengan
--safe-mode, yang juga menonaktifkan kustomisasi lain Anda - Setiap mod yang Anda pasang, di setiap sesi: atur
"disableAllHooks": truedi~/.claude/settings.json. Hook pengaturan dan baris status kustom Anda juga berhenti. Apa yang dikelola organisasi Anda terus berjalan.
Jika Anda menggunakan Claude Code melalui organisasi, administrator juga dapat membatasi mods mana yang dimuat. Administrator dimulai di Hentikan mods yang dipasang pengguna dari dimuat.
disableAllHooks dan allowManagedModsOnly milik organisasi Anda menghentikan mod dan membiarkan bagian lain dari pluginnya tetap di tempat: plugin tetap terpasang, dan skill, perintah, agent, serta server MCP-nya tetap dimuat. Pengaturan dan flag lain menjangkau lebih jauh. disableAllHooks dan Apa yang berjalan di bawah allowManagedHooksOnly mencantumkan apa yang dilakukan masing-masing terhadap plugin dan hook pengaturannya.
Untuk mengetahui apakah mods dapat dimuat untuk Anda, lihat Periksa apakah mods dapat dimuat.
Jika Anda menetapkan CLAUDE_CODE_ENABLE_FUNCTION_HOOKS selama akses awal, hapus. Claude Code v2.1.287 dan lebih baru mengabaikannya, jadi menetapkannya ke 0 tidak membuat mods tetap mati.
Lihat mods mana yang dimuat sesi
Untuk melihat mods mana yang dimuat sesi terminal, jalankan /plugin di prompt Claude Code. Baris redup di bawah tab memberikan hitungan dan nama, seperti 1 mod active · first-mod. Jika mod yang Anda pasang tidak dinamai di sana, lihat Cari tahu mengapa mod tidak melakukan apa pun.
Cara kerja mod
Mod adalah plugin yang kodenya mendaftarkan penanganan acara, disebut hooks. Claude Code menjalankan hook ketika acaranya terjadi, seperti ketika Claude memanggil tool atau ketika spinner digambar. Mod kecil memiliki tiga file:
first-mod/
├── .claude-plugin/
│ └── plugin.json
└── hooks/
├── hooks.json
└── register.js
plugin.json: manifest pluginhooks.json: menunjuk ke file kode Andaregister.js: kode Anda, disebut modul hooks. Ini memberitahu Claude Code acara mana yang akan menjalankan fungsi Anda.
Ini adalah register.js lengkap. Ini menghitung panggilan tool yang dibuat Claude dan menampilkan hitungan di samping spinner saat Claude bekerja, seperti Thinking · tool calls: 3….
// The count, shared by the two hooks below
let calls = 0
// Claude Code calls this once when the mod loads
export function register(on) {
// Runs each time Claude is about to use a tool
on('tool.call', async ($, e, next) => {
calls += 1
// Ask Claude Code to draw the interface again, so the new count shows
$.ui.invalidate('ui.render')
// Let the tool run as usual
return next(e)
})
// Runs each time Claude Code draws the spinner
on('ui.render', { component: 'Spinner' }, async ($, e, next) => {
// Keep Claude Code's spinner, with the count added after its word
return next({ ...e, props: { ...e.props, suffix: ' · tool calls: ' + calls + '…' } })
})
}
File mendaftarkan dua hook, dan keduanya menggunakan variabel calls di atas:
- Hook
tool.callberjalan setiap kali Claude akan menggunakan tool. Menambahkan satu kecalls, meminta Claude Code untuk menggambar antarmuka lagi, dan membiarkan tool berjalan seperti biasa. - Hook
ui.renderberjalan setiap kali Claude Code menggambar spinner. Mempertahankan spinner Claude Code sendiri dan menambahkan hitungan setelah kata.
Rekaman ini menunjukkan mod bekerja. Perhatikan baris spinner di atas kotak prompt: saat Claude membuat daftar direktori dan membaca dua file, dibaca Thinking · tool calls: 1…, kemudian 2…, kemudian 3….
Apa yang dapat dilakukan hook dengan acara
Claude Code menjalankan hook Anda sebelum bertindak pada acara, jadi hook memutuskan apa yang terjadi selanjutnya. Hook dapat:
- Amati: catat apa yang terjadi dan biarkan lanjut tanpa perubahan, seperti yang dilakukan hook
tool.calldalam contoh - Tulis ulang: ubah acara sebelum lanjut, seperti yang dilakukan hook
ui.renderketika menambahkan hitungan ke spinner - Jawab: tangani acara itu sendiri, sehingga perilaku biasa tidak berjalan, seperti menolak perintah
Untuk melakukan apa pun di luar kode sendiri, seperti menggambar, menambahkan perintah, memanggil model, membaca file, memulai proses, atau membuat permintaan jaringan, hook memanggil API mods. Hook tidak memiliki cara lain untuk melakukan hal-hal itu, itulah mengapa Claude Code dapat membuat daftar apa yang dilakukan mod sebelum Anda memasangnya.
Untuk kode di balik setiap pilihan, lihat Bereaksi terhadap acara. Untuk apa yang dapat dipanggil hook, lihat Gunakan API mods.
Tempat mod berjalan
Hook mod berjalan di setiap jenis sesi yang memuat plugin. Menggambar lebih sempit: hanya terminal dan aplikasi Desktop yang menampilkan panes, bands, dan baris yang diganti mod. Tabel ini mencantumkan setiap tempat Anda mungkin menjalankan Claude Code:
| Tempat Anda menjalankan Claude Code | Hook berjalan | Apa yang digambar mod muncul |
|---|---|---|
claude di terminal, termasuk terminal terintegrasi editor dan plugin JetBrains |
Ya | Ya |
| Tab Code aplikasi Desktop, kecuali dalam sesi WSL | Ya | Ya, kecuali elemen yang ditandai tabel elemen sebagai terminal-only |
| Sesi WSL di aplikasi Desktop | Tidak, karena plugin tidak tersedia dalam sesi WSL | Tidak |
| Panel chat ekstensi VS Code | Ya | Tidak |
claude -p dan Agent SDK |
Ya | Tidak |
| Remote Control dari claude.ai atau aplikasi mobile | Ya, dalam sesi di mesin Anda | Di terminal di mesin Anda |
| Sesi cloud | Ya, untuk plugin yang menjangkau sesi cloud | Tidak |
Mod yang menggambar dapat memeriksa aplikasi mana yang sedang dijalankan, dan kembali ke baris dalam transkrip atau balasan teks perintah di mana tidak ada yang menggambar.
Kontrol mods untuk organisasi Anda
Administrator memutuskan apakah mods berjalan dan mana, melalui managed settings. Kelola mods untuk organisasi Anda mencakup apa yang terjadi secara default, cara meninjau mod, dan cara memberlakukan kebijakan dengan mod Anda sendiri.
Bandingkan mods, settings hooks, skills, dan server MCP
Mods, settings hooks, skills, dan server MCP tumpang tindih. Tabel ini menunjukkan apa itu masing-masing dan kapan memilihnya.
| Mod | Settings hook | Skill | Server MCP | |
|---|---|---|---|---|
| Apa itu | Fungsi dalam plugin yang dipanggil Claude Code dalam proses sendiri | Perintah shell, permintaan HTTP, atau prompt yang dijalankan Claude Code pada acara siklus hidup | File SKILL.md dari instruksi yang dibaca Claude |
Proses atau layanan eksternal yang memberikan tool kepada Claude |
| Apa yang dapat diubah | Panggilan tool, prompt, perintah, giliran, dan apa yang digambar antarmuka | Apakah panggilan tool atau prompt dilanjutkan, argumen dan hasil panggilan tool, dan konteks yang ditambahkan untuk Claude | Apa yang diketahui dan dilakukan Claude | Tool mana yang dimiliki Claude |
| Bisakah menggambar di antarmuka | Ya | Tidak | Tidak | Tidak |
| Apa yang Anda tulis | JavaScript atau TypeScript | Skrip dan entri settings.json |
Markdown | Server dalam bahasa apa pun |
| Pilih ketika | Anda menginginkan pane, band di atas prompt, perintah kustom, atau menulis ulang acara | Anda ingin memblokir, mengizinkan, atau mencatat acara dengan skrip yang sudah Anda miliki | Anda terus menempel instruksi yang sama ke dalam chat | Claude perlu menjangkau sistem eksternal |
Masing-masing dari yang lain memiliki halaman sendiri: Hooks, Skills, dan MCP. Plugin dapat menampung semuanya, jadi mod dapat dikirim dalam plugin yang sama dengan skill dan server MCP.
Mods bawaan Claude Code
Beberapa fitur Claude Code sendiri adalah mods. Untuk melihat yang dimiliki sesi Anda, jalankan /plugin di prompt Claude Code dan buka tab Installed, yang mencantumkannya di bawah Built-in. Anda tidak dapat memperbarui atau mencopot pemasangan mod bawaan, dan kolom terakhir tabel mengatakan cara mematikan masing-masing. Baris mods active menghilangkan mods bawaan.
Tabel ini mencantumkan setiap entri berdasarkan nama yang ditampilkan /plugin:
Nama di /plugin |
Apa yang dilakukan | Tempat aktif | Cara mematikannya |
|---|---|---|---|
cc-plugin-agents-md |
Memuat AGENTS.md sebagai instruksi proyek |
Setiap sesi, terpisah dari yang tidak dapat membaca AGENTS.md |
Nonaktifkan di /plugin, atau pilih file instruksi mana yang dimuat |
cc-plugin-diff |
Mengambil alih /diff dan menggambar panenya |
Sesi terminal interaktif | Nonaktifkan di /plugin. /diff tetap, dan versi bawaan Claude Code dari perintah menjawabnya. |
cc-plugin-plugin-authoring |
Memberikan Claude skill plugin-authoring untuk menulis mods. Memiliki skill dan tidak ada kode mod. |
Kecuali Anthropic telah mematikan mods yang dipasang dari jarak jauh | Nonaktifkan di /plugin |
cc-plugin-sec-default |
Menjaga apa yang dikelola organisasi Anda dari mods yang dipasang pengguna | Tempat guard dimuat | Anda tidak bisa. Administrator menetapkan urutan dalam pengaturan terkelola |
cc-plugin-telemetry |
Mengirim catatan analitik yang dicatat Claude Code dan mods bawaannya | Di mana pun analitik Claude Code sendiri aktif | Nonaktifkan di /plugin, atau matikan analitik, misalnya dengan DISABLE_TELEMETRY |
cc-plugin-you-should-know |
Menjalankan agent samping yang mengawasi Anda saat Claude bekerja pada tugas yang lebih lama. Ketika menemukan sesuatu yang perlu diketahui yang mungkin Anda lewatkan, agent menampilkan catatan di atas prompt. | Dinonaktifkan secara default. Tercantum di /plugin -> Installed -> Show disabled jika tersedia untuk organisasi Anda. Aktifkan dengan /plugin enable cc-plugin-you-should-know@builtin. |
Nonaktifkan di /plugin |
Pengaturan dan flag yang menghentikan mods yang dipasang, seperti disableAllHooks, --bare, dan --safe-mode, tidak menghentikan mods bawaan.
Baca sumber mods bawaan
Sumber beberapa mods ini bersifat publik di direktori mods dari repositori Claude Code. Masing-masing adalah plugin lengkap dengan modul hooks dan tesnya:
diff: pane/diff, dengan tombol terikat pada tindakan keyboard dan scrolling yang ditangani mod sendiriagents-md: memuatAGENTS.mdsebagai instruksi proyek, dengan opsiuserConfigsec-default: guard yang dijelaskan dalam Ketahui apa yang terjadi secara default, model untuk mod yang memberlakukan kebijakantelemetry: menambahkan metode yang dapat dipanggil mods lain, dan mengirim tipenya
Langkah berikutnya
- Buat mod: bangun satu yang menghitung panggilan tool, menampilkan hitungan di samping spinner, dan menambahkan perintah, dan pelajari loop edit dan reload
- Gambar di antarmuka: panes, band di atas prompt, tombol, bidang teks, dan state
- Bereaksi terhadap acara: panggilan tool, prompt, giliran, dan urutan mods berjalan
- Gunakan API mods: perintah, tool, panggilan model, timer, dan file
- Uji mod: tes otomatis yang berjalan tanpa sesi
- Troubleshoot mod: alasan mod tidak melakukan apa pun, dan log debug
- Kelola mods untuk organisasi Anda: default, pengaturan terkelola, meninjau mod, dan policy mods
- Referensi Mods: acara, metode, elemen, dan batas