Langsung ke konten utama

Plugin

Plugin memperluas OpenClaw dengan kapabilitas baru: channel, provider model, tool, skill, speech, realtime transcription, realtime voice, media-understanding, image generation, video generation, web fetch, web search, dan lainnya. Beberapa plugin bersifat core (disertakan bersama OpenClaw), lainnya bersifat external (dipublikasikan di npm oleh komunitas).

Mulai cepat

1

Lihat apa yang dimuat

openclaw plugins list
2

Instal plugin

# Dari npm
openclaw plugins install @openclaw/voice-call

# Dari direktori atau arsip lokal
openclaw plugins install ./my-plugin
openclaw plugins install ./my-plugin.tgz
3

Mulai ulang Gateway

openclaw gateway restart
Lalu konfigurasikan di bawah plugins.entries.\<id\>.config dalam file config Anda.
Jika Anda lebih suka kontrol native chat, aktifkan commands.plugins: true lalu gunakan:
/plugin install clawhub:@openclaw/voice-call
/plugin show voice-call
/plugin enable voice-call
Path instalasi menggunakan resolver yang sama dengan CLI: path/arsip lokal, spesifikasi clawhub:<pkg> yang eksplisit, atau spesifikasi paket polos (ClawHub terlebih dahulu, lalu fallback ke npm). Jika config tidak valid, instalasi biasanya gagal tertutup dan mengarahkan Anda ke openclaw doctor --fix. Satu-satunya pengecualian pemulihan adalah jalur reinstall bundled-plugin yang sempit untuk plugin yang ikut serta dalam openclaw.install.allowInvalidConfigRecovery.

Jenis plugin

OpenClaw mengenali dua format plugin:
FormatCara kerjanyaContoh
Nativeopenclaw.plugin.json + modul runtime; dieksekusi dalam prosesPlugin resmi, paket npm komunitas
BundleTata letak yang kompatibel dengan Codex/Claude/Cursor; dipetakan ke fitur OpenClaw.codex-plugin/, .claude-plugin/, .cursor-plugin/
Keduanya muncul di openclaw plugins list. Lihat Plugin Bundles untuk detail bundle. Jika Anda menulis plugin native, mulai dari Building Plugins dan Plugin SDK Overview.

Plugin resmi

Dapat diinstal (npm)

PluginPaketDokumen
Matrix@openclaw/matrixMatrix
Microsoft Teams@openclaw/msteamsMicrosoft Teams
Nostr@openclaw/nostrNostr
Voice Call@openclaw/voice-callVoice Call
Zalo@openclaw/zaloZalo
Zalo Personal@openclaw/zalouserZalo Personal

Core (disertakan bersama OpenClaw)

anthropic, byteplus, cloudflare-ai-gateway, github-copilot, google, huggingface, kilocode, kimi-coding, minimax, mistral, qwen, moonshot, nvidia, openai, opencode, opencode-go, openrouter, qianfan, synthetic, together, venice, vercel-ai-gateway, volcengine, xiaomi, zai
  • memory-core — pencarian memory bawaan (default melalui plugins.slots.memory)
  • memory-lancedb — memory jangka panjang install-on-demand dengan auto-recall/capture (atur plugins.slots.memory = "memory-lancedb")
elevenlabs, microsoft
  • browser — plugin browser bawaan untuk browser tool, CLI openclaw browser, metode gateway browser.request, runtime browser, dan layanan kontrol browser default (diaktifkan secara default; nonaktifkan sebelum menggantinya)
  • copilot-proxy — bridge VS Code Copilot Proxy (nonaktif secara default)
Mencari plugin pihak ketiga? Lihat Community Plugins.

Konfigurasi

{
  plugins: {
    enabled: true,
    allow: ["voice-call"],
    deny: ["untrusted-plugin"],
    load: { paths: ["~/Projects/oss/voice-call-extension"] },
    entries: {
      "voice-call": { enabled: true, config: { provider: "twilio" } },
    },
  },
}
FieldDeskripsi
enabledTombol master (default: true)
allowAllowlist plugin (opsional)
denyDenylist plugin (opsional; deny menang)
load.pathsFile/direktori plugin tambahan
slotsSelector slot eksklusif (misalnya memory, contextEngine)
entries.\<id\>Tombol per plugin + config
Perubahan config memerlukan restart gateway. Jika Gateway berjalan dengan config watch + restart dalam proses diaktifkan (jalur openclaw gateway default), restart tersebut biasanya dilakukan secara otomatis sesaat setelah penulisan config selesai.
  • Dinonaktifkan: plugin ada tetapi aturan enablement mematikannya. Config tetap dipertahankan.
  • Hilang: config mereferensikan ID plugin yang tidak ditemukan oleh discovery.
  • Tidak valid: plugin ada tetapi config-nya tidak cocok dengan skema yang dideklarasikan.

Discovery dan prioritas

OpenClaw memindai plugin dalam urutan ini (kecocokan pertama menang):
1

Path config

plugins.load.paths — path file atau direktori yang eksplisit.
2

Extension workspace

\<workspace\>/.openclaw/<plugin-root>/*.ts dan \<workspace\>/.openclaw/<plugin-root>/*/index.ts.
3

Extension global

~/.openclaw/<plugin-root>/*.ts dan ~/.openclaw/<plugin-root>/*/index.ts.
4

Plugin bundled

Disertakan bersama OpenClaw. Banyak yang diaktifkan secara default (provider model, speech). Yang lain memerlukan pengaktifan eksplisit.

Aturan enablement

  • plugins.enabled: false menonaktifkan semua plugin
  • plugins.deny selalu menang atas allow
  • plugins.entries.\<id\>.enabled: false menonaktifkan plugin tersebut
  • Plugin yang berasal dari workspace nonaktif secara default (harus diaktifkan secara eksplisit)
  • Bundled plugin mengikuti set default-on bawaan kecuali di-override
  • Slot eksklusif dapat memaksa plugin yang dipilih untuk slot tersebut menjadi aktif

Slot plugin (kategori eksklusif)

Beberapa kategori bersifat eksklusif (hanya satu yang aktif pada satu waktu):
{
  plugins: {
    slots: {
      memory: "memory-core", // atau "none" untuk menonaktifkan
      contextEngine: "legacy", // atau ID plugin
    },
  },
}
SlotYang dikendalikanDefault
memoryPlugin memory aktifmemory-core
contextEngineEngine konteks aktiflegacy (bawaan)

Referensi CLI

openclaw plugins list                       # inventaris ringkas
openclaw plugins list --enabled            # hanya plugin yang dimuat
openclaw plugins list --verbose            # baris detail per plugin
openclaw plugins list --json               # inventaris yang dapat dibaca mesin
openclaw plugins inspect <id>              # detail mendalam
openclaw plugins inspect <id> --json       # dapat dibaca mesin
openclaw plugins inspect --all             # tabel seluruh armada
openclaw plugins info <id>                 # alias inspect
openclaw plugins doctor                    # diagnostik

openclaw plugins install <package>         # instal (ClawHub terlebih dahulu, lalu npm)
openclaw plugins install clawhub:<pkg>     # instal hanya dari ClawHub
openclaw plugins install <spec> --force    # timpa instalasi yang ada
openclaw plugins install <path>            # instal dari path lokal
openclaw plugins install -l <path>         # link (tanpa copy) untuk pengembangan
openclaw plugins install <plugin> --marketplace <source>
openclaw plugins install <plugin> --marketplace https://github.com/<owner>/<repo>
openclaw plugins install <spec> --pin      # catat spesifikasi npm terselesaikan yang tepat
openclaw plugins install <spec> --dangerously-force-unsafe-install
openclaw plugins update <id>             # perbarui satu plugin
openclaw plugins update <id> --dangerously-force-unsafe-install
openclaw plugins update --all            # perbarui semua
openclaw plugins uninstall <id>          # hapus catatan config/instalasi
openclaw plugins uninstall <id> --keep-files
openclaw plugins marketplace list <source>
openclaw plugins marketplace list <source> --json

openclaw plugins enable <id>
openclaw plugins disable <id>
Bundled plugin disertakan bersama OpenClaw. Banyak yang diaktifkan secara default (misalnya bundled provider model, bundled provider speech, dan bundled browser plugin). Bundled plugin lain tetap memerlukan openclaw plugins enable <id>. --force menimpa plugin atau paket hook yang terinstal di tempat. Opsi ini tidak didukung dengan --link, yang menggunakan kembali path sumber alih-alih menyalin ke target instalasi yang dikelola. --pin hanya untuk npm. Opsi ini tidak didukung dengan --marketplace, karena instalasi marketplace menyimpan metadata sumber marketplace alih-alih spesifikasi npm. --dangerously-force-unsafe-install adalah override darurat untuk false positive dari pemindai kode berbahaya bawaan. Opsi ini memungkinkan alur instalasi dan pembaruan plugin berlanjut melewati temuan bawaan critical, tetapi tetap tidak melewati blok kebijakan before_install plugin atau pemblokiran karena kegagalan pemindaian. Flag CLI ini hanya berlaku untuk alur instalasi/pembaruan plugin. Instalasi dependensi skill berbasis Gateway menggunakan override permintaan dangerouslyForceUnsafeInstall yang sesuai, sedangkan openclaw skills install tetap menjadi alur unduh/instalasi skill ClawHub yang terpisah. Bundle yang kompatibel berpartisipasi dalam alur list/inspect/enable/disable plugin yang sama. Dukungan runtime saat ini mencakup bundle skills, Claude command-skills, default settings.json Claude, default Claude .lsp.json dan lspServers yang dideklarasikan manifest, Cursor command-skills, dan direktori hook Codex yang kompatibel. openclaw plugins inspect <id> juga melaporkan kapabilitas bundle yang terdeteksi serta entri server MCP dan LSP yang didukung atau tidak didukung untuk plugin berbasis bundle. Sumber marketplace dapat berupa nama known-marketplace Claude dari ~/.claude/plugins/known_marketplaces.json, root marketplace lokal atau path marketplace.json, singkatan GitHub seperti owner/repo, URL repo GitHub, atau URL git. Untuk marketplace remote, entri plugin harus tetap berada di dalam repo marketplace yang dikloning dan hanya menggunakan sumber path relatif. Lihat referensi CLI openclaw plugins untuk detail lengkap.

Ikhtisar API plugin

Plugin native mengekspor objek entry yang mengekspos register(api). Plugin lama mungkin masih menggunakan activate(api) sebagai alias lama, tetapi plugin baru sebaiknya menggunakan register.
export default definePluginEntry({
  id: "my-plugin",
  name: "My Plugin",
  register(api) {
    api.registerProvider({
      /* ... */
    });
    api.registerTool({
      /* ... */
    });
    api.registerChannel({
      /* ... */
    });
  },
});
OpenClaw memuat objek entry dan memanggil register(api) selama aktivasi plugin. Loader masih melakukan fallback ke activate(api) untuk plugin lama, tetapi bundled plugin dan plugin eksternal baru sebaiknya memperlakukan register sebagai kontrak publik. Metode registrasi yang umum:
MetodeYang didaftarkan
registerProviderProvider model (LLM)
registerChannelChannel chat
registerToolTool agen
registerHook / on(...)Hook siklus hidup
registerSpeechProviderText-to-speech / STT
registerRealtimeTranscriptionProviderStreaming STT
registerRealtimeVoiceProviderSuara realtime duplex
registerMediaUnderstandingProviderAnalisis gambar/audio
registerImageGenerationProviderImage generation
registerMusicGenerationProviderMusic generation
registerVideoGenerationProviderVideo generation
registerWebFetchProviderProvider web fetch / scrape
registerWebSearchProviderPencarian web
registerHttpRouteEndpoint HTTP
registerCommand / registerCliPerintah CLI
registerContextEngineEngine konteks
registerServiceLayanan latar belakang
Perilaku guard hook untuk hook siklus hidup bertipe:
  • before_tool_call: { block: true } bersifat terminal; handler prioritas lebih rendah dilewati.
  • before_tool_call: { block: false } adalah no-op dan tidak menghapus block sebelumnya.
  • before_install: { block: true } bersifat terminal; handler prioritas lebih rendah dilewati.
  • before_install: { block: false } adalah no-op dan tidak menghapus block sebelumnya.
  • message_sending: { cancel: true } bersifat terminal; handler prioritas lebih rendah dilewati.
  • message_sending: { cancel: false } adalah no-op dan tidak menghapus cancel sebelumnya.
Untuk perilaku hook bertipe lengkap, lihat SDK Overview.

Terkait