Plugins breiden OpenClaw uit met nieuwe mogelijkheden: kanalen, modelproviders, agent-harnassen, tools, Skills, spraak, realtime transcriptie, realtime spraak, mediabegrip, afbeeldingsgeneratie, videogeneratie, webophalen, web zoeken en meer. Sommige plugins zijn core (meegeleverd met OpenClaw), andere zijn extern. De meeste externe plugins worden gepubliceerd en ontdekt via ClawHub. Npm blijft ondersteund voor directe installaties en voor een tijdelijke set Plugin-pakketten die eigendom zijn van OpenClaw terwijl die migratie wordt afgerond.Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
Snel starten
Als je de voorkeur geeft aan chat-native beheer, schakel dan
commands.plugins: true in en gebruik:
clawhub:<pkg>, expliciet npm:<pkg> of kale pakketspecificatie (eerst ClawHub, daarna
npm-fallback).
Als de configuratie ongeldig is, mislukt de installatie normaal gesproken gesloten en verwijst die je naar
openclaw doctor --fix. De enige hersteluitzondering is een smal herinstallatiepad voor gebundelde plugins
voor plugins die zich aanmelden voor
openclaw.install.allowInvalidConfigRecovery.
Tijdens het starten van de Gateway wordt ongeldige configuratie voor één Plugin geïsoleerd tot die Plugin:
het starten logt het plugins.entries.<id>.config-probleem, slaat die Plugin over tijdens
het laden en houdt andere plugins en kanalen online. Voer openclaw doctor --fix uit
om de slechte Plugin-configuratie in quarantaine te plaatsen door die Plugin-vermelding uit te schakelen en
de ongeldige configuratiepayload ervan te verwijderen; de normale configuratieback-up bewaart de vorige waarden.
Wanneer een kanaalconfiguratie verwijst naar een Plugin die niet langer vindbaar is, maar dezelfde
verouderde Plugin-id in de Plugin-configuratie of installatierecords blijft staan, logt het starten van de Gateway
waarschuwingen en wordt dat kanaal overgeslagen in plaats van elk ander kanaal te blokkeren.
Voer openclaw doctor --fix uit om de verouderde kanaal-/Plugin-vermeldingen te verwijderen; onbekende
kanaalsleutels zonder bewijs van verouderde plugins blijven validatie laten mislukken, zodat typefouten
zichtbaar blijven.
Als plugins.enabled: false is ingesteld, worden verouderde Plugin-verwijzingen als inert behandeld:
het starten van de Gateway slaat Plugin-discovery-/laadwerk over en openclaw doctor behoudt
de uitgeschakelde Plugin-configuratie in plaats van die automatisch te verwijderen. Schakel plugins opnieuw in voordat
je doctor-opruiming uitvoert als je verouderde Plugin-id’s wilt verwijderen.
Verpakte OpenClaw-installaties installeren niet gretig de runtime-afhankelijkheidsboom van elke gebundelde Plugin.
Wanneer een gebundelde Plugin die eigendom is van OpenClaw actief is vanuit
Plugin-configuratie, legacy kanaalconfiguratie of een standaard ingeschakeld manifest, repareert het starten
alleen de gedeclareerde runtime-afhankelijkheden van die Plugin voordat die wordt geïmporteerd.
Alleen persistente kanaal-auth-status activeert geen gebundeld kanaal voor
Gateway-startreparatie van runtime-afhankelijkheden.
Expliciet uitschakelen wint nog steeds: plugins.entries.<id>.enabled: false,
plugins.deny, plugins.enabled: false en channels.<id>.enabled: false
voorkomen automatische reparatie van gebundelde runtime-afhankelijkheden voor die Plugin/dat kanaal.
Een niet-lege plugins.allow begrenst ook reparatie van standaard ingeschakelde gebundelde runtime-afhankelijkheden;
expliciete inschakeling van een gebundeld kanaal (channels.<id>.enabled: true) kan
nog steeds de Plugin-afhankelijkheden van dat kanaal repareren.
Externe plugins en aangepaste laadpaden moeten nog steeds via
openclaw plugins install worden geïnstalleerd.
Plugin-typen
OpenClaw herkent twee Plugin-formaten:| Formaat | Hoe het werkt | Voorbeelden |
|---|---|---|
| Native | openclaw.plugin.json + runtime-module; wordt in-process uitgevoerd | Officiële plugins, community-npm-pakketten |
| Bundle | Codex/Claude/Cursor-compatibele layout; gekoppeld aan OpenClaw-functies | .codex-plugin/, .claude-plugin/, .cursor-plugin/ |
openclaw plugins list. Zie Plugin Bundles voor details over bundles.
Als je een native Plugin schrijft, begin dan met Plugins bouwen
en het overzicht van de Plugin SDK.
Pakket-entrypoints
Native Plugin-npm-pakketten moetenopenclaw.extensions declareren in package.json.
Elke vermelding moet binnen de pakketdirectory blijven en verwijzen naar een leesbaar
runtime-bestand, of naar een TypeScript-bronbestand met een afgeleide gebouwde JavaScript
peer zoals src/index.ts naar dist/index.js.
Gebruik openclaw.runtimeExtensions wanneer gepubliceerde runtime-bestanden niet op dezelfde
paden staan als de bronvermeldingen. Wanneer aanwezig, moet runtimeExtensions
exact één vermelding bevatten voor elke extensions-vermelding. Niet-overeenkomende lijsten laten installatie en
Plugin-discovery mislukken in plaats van stil terug te vallen op bronpaden.
Officiële plugins
Npm-pakketten die eigendom zijn van OpenClaw tijdens de migratie
ClawHub is het primaire distributiepad voor de meeste plugins. Huidige verpakte OpenClaw-releases bundelen al veel officiële plugins, dus die hebben in normale setups geen aparte npm-installaties nodig. Totdat elke Plugin die eigendom is van OpenClaw naar ClawHub is gemigreerd, levert OpenClaw nog steeds enkele@openclaw/* Plugin-pakketten op
npm voor oudere/aangepaste installaties en directe npm-workflows.
Als npm een @openclaw/* Plugin-pakket als deprecated rapporteert, komt die pakketversie
uit een oudere externe pakkettrein. Gebruik de gebundelde Plugin uit
huidige OpenClaw of een lokale checkout totdat een nieuwer npm-pakket is gepubliceerd.
| Plugin | Pakket | Documentatie |
|---|---|---|
| BlueBubbles | @openclaw/bluebubbles | BlueBubbles |
| Discord | @openclaw/discord | Discord |
| Feishu | @openclaw/feishu | Feishu |
| Matrix | @openclaw/matrix | Matrix |
| Mattermost | @openclaw/mattermost | Mattermost |
| Microsoft Teams | @openclaw/msteams | Microsoft Teams |
| Nextcloud Talk | @openclaw/nextcloud-talk | Nextcloud Talk |
| Nostr | @openclaw/nostr | Nostr |
| Synology Chat | @openclaw/synology-chat | Synology Chat |
| Tlon | @openclaw/tlon | Tlon |
@openclaw/whatsapp | ||
| Zalo | @openclaw/zalo | Zalo |
| Zalo Personal | @openclaw/zalouser | Zalo Personal |
Core (meegeleverd met OpenClaw)
Modelproviders (standaard ingeschakeld)
Modelproviders (standaard ingeschakeld)
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, zaiGeheugenplugins
Geheugenplugins
memory-core— gebundelde geheugenzoekfunctie (standaard viaplugins.slots.memory)memory-lancedb— on-demand installeerbaar langetermijngeheugen met automatisch ophalen/vastleggen (stelplugins.slots.memory = "memory-lancedb"in)
Spraakproviders (standaard ingeschakeld)
Spraakproviders (standaard ingeschakeld)
elevenlabs, microsoftOverig
Overig
browser— gebundelde browser-Plugin voor de browsertool,openclaw browserCLI,browser.requestGateway-methode, browserruntime en standaard browserbeheerservice (standaard ingeschakeld; schakel uit voordat je die vervangt)copilot-proxy— VS Code Copilot Proxy-brug (standaard uitgeschakeld)
Configuratie
| Veld | Beschrijving |
|---|---|
enabled | Hoofdschakelaar (standaard: true) |
allow | Plugin-allowlist (optioneel) |
deny | Plugin-denylist (optioneel; deny wint) |
load.paths | Extra Plugin-bestanden/-directory’s |
slots | Exclusieve slotselectors (bijv. memory, contextEngine) |
entries.\<id\> | Schakelaars + configuratie per Plugin |
openclaw gateway), wordt die
herstart meestal automatisch uitgevoerd kort nadat de configuratieschrijving is geland.
Er is geen ondersteund hot-reloadpad voor native Plugin-runtimecode of lifecycle
hooks; herstart het Gateway-proces dat het live kanaal bedient voordat je
verwacht dat bijgewerkte register(api)-code, api.on(...)-hooks, tools, services of
provider-/runtime-hooks worden uitgevoerd.
openclaw plugins list is een lokale snapshot van Plugin-register/configuratie. Een
enabled Plugin daar betekent dat het persistente register en de huidige configuratie de
Plugin toestaan deel te nemen. Het bewijst niet dat een al draaiend remote Gateway-child
is herstart met dezelfde Plugin-code. In VPS-/container-setups met
wrapperprocessen stuur je herstarts naar het daadwerkelijke openclaw gateway run-proces,
of gebruik je openclaw gateway restart tegen de draaiende Gateway.
Plugin-statussen: uitgeschakeld vs ontbrekend vs ongeldig
Plugin-statussen: uitgeschakeld vs ontbrekend vs ongeldig
- Uitgeschakeld: Plugin bestaat, maar inschakelregels hebben die uitgeschakeld. Configuratie blijft behouden.
- Ontbrekend: configuratie verwijst naar een Plugin-id die discovery niet heeft gevonden.
- Ongeldig: Plugin bestaat, maar de configuratie ervan komt niet overeen met het gedeclareerde schema. Gateway-start slaat alleen die Plugin over;
openclaw doctor --fixkan de ongeldige vermelding in quarantaine plaatsen door die uit te schakelen en de configuratiepayload ervan te verwijderen.
Discovery en prioriteit
OpenClaw scant op plugins in deze volgorde (eerste match wint):Configuratiepaden
plugins.load.paths — expliciete bestands- of directorypaden. Paden die terugverwijzen
naar OpenClaw’s eigen verpakte gebundelde Plugin-directory’s worden genegeerd;
voer openclaw doctor --fix uit om die verouderde aliassen te verwijderen.Werkruimteplugins
\<workspace\>/.openclaw/<plugin-root>/*.ts en \<workspace\>/.openclaw/<plugin-root>/*/index.ts.dist/extensions-structuur. Als een bronmap van een gebundelde plugin
wordt bind-mounted over het overeenkomende verpakte bronpad, bijvoorbeeld
/app/extensions/synology-chat, behandelt OpenClaw die gemounte bronmap
als een gebundelde bron-overlay en ontdekt deze vóór de verpakte
/app/dist/extensions/synology-chat-bundel. Zo blijven container-loops voor maintainers
werken zonder elke gebundelde plugin terug naar TypeScript-broncode te schakelen.
Stel OPENCLAW_DISABLE_BUNDLED_SOURCE_OVERLAYS=1 in om verpakte dist-bundels af te dwingen,
zelfs wanneer bron-overlay-mounts aanwezig zijn.
Regels voor inschakeling
plugins.enabled: falseschakelt alle plugins uit en slaat plugin-ontdekking/laadwerk overplugins.denywint altijd van allowplugins.entries.\<id\>.enabled: falseschakelt die plugin uit- Plugins met workspace-oorsprong zijn standaard uitgeschakeld (moeten expliciet worden ingeschakeld)
- Gebundelde plugins volgen de ingebouwde standaard-aan-set tenzij overschreven
- Exclusieve slots kunnen de geselecteerde plugin voor die slot geforceerd inschakelen
- Sommige gebundelde opt-in-plugins worden automatisch ingeschakeld wanneer de configuratie een door een plugin beheerd oppervlak benoemt, zoals een providermodelverwijzing, kanaalconfiguratie of harness- runtime
- Verouderde pluginconfiguratie blijft bewaard terwijl
plugins.enabled: falseactief is; schakel plugins opnieuw in voordat je doctor-opschoning uitvoert als je verouderde id’s wilt verwijderen - OpenAI-familie Codex-routes houden aparte plugingrenzen:
openai-codex/*hoort bij de OpenAI-plugin, terwijl de gebundelde Codex app-serverplugin wordt geselecteerd dooragentRuntime.id: "codex"of legacycodex/*-modelverwijzingen
Runtime-hooks oplossen
Als een plugin inplugins list verschijnt maar register(api)-bijwerkingen of hooks
niet worden uitgevoerd in live chatverkeer, controleer dan eerst dit:
- Voer
openclaw gateway status --deep --require-rpcuit en bevestig dat de actieve Gateway-URL, het profiel, het configuratiepad en het proces degene zijn die je bewerkt. - Herstart de live Gateway na wijzigingen aan plugininstallatie, configuratie of code. In wrapper-
containers kan PID 1 alleen een supervisor zijn; herstart of signaleer het child-
openclaw gateway run-proces. - Gebruik
openclaw plugins inspect <id> --jsonom hookregistraties en diagnostiek te bevestigen. Niet-gebundelde conversatiehooks zoalsllm_input,llm_output,before_agent_finalizeenagent_endhebbenplugins.entries.<id>.hooks.allowConversationAccess=truenodig. - Geef voor modelwisseling de voorkeur aan
before_model_resolve. Deze wordt uitgevoerd vóór model- oplossing voor agentbeurten;llm_outputwordt alleen uitgevoerd nadat een modelpoging assistentuitvoer produceert. - Gebruik voor bewijs van het effectieve sessiemodel
openclaw sessionsof de Gateway-sessie-/statusoppervlakken en start, bij het debuggen van providerpayloads, de Gateway met--raw-stream --raw-stream-path <path>.
Dubbel kanaal- of tool-eigenaarschap
Symptomen:channel already registered: <channel-id> (<plugin-id>)channel setup already registered: <channel-id> (<plugin-id>)plugin tool name conflict (<plugin-id>): <tool-name>
- Voer
openclaw plugins list --enabled --verboseuit om elke ingeschakelde plugin en oorsprong te zien. - Voer
openclaw plugins inspect <id> --jsonuit voor elke verdachte plugin en vergelijkchannels,channelConfigs,toolsen diagnostiek. - Voer
openclaw plugins registry --refreshuit na het installeren of verwijderen van pluginpakketten zodat persistente metadata de huidige installatie weerspiegelt. - Herstart de Gateway na installatie-, registry- of configuratiewijzigingen.
- Als één plugin bewust een andere vervangt voor dezelfde kanaal-id, moet de
voorkeursplugin
channelConfigs.<channel-id>.preferOverdeclareren met de plugin-id met lagere prioriteit. Zie /plugins/manifest#replacing-another-channel-plugin. - Als de duplicatie onbedoeld is, schakel één kant uit met
plugins.entries.<plugin-id>.enabled: falseof verwijder de verouderde plugininstallatie. - Als je beide plugins expliciet hebt ingeschakeld, behoudt OpenClaw dat verzoek en meldt het conflict. Kies één eigenaar voor het kanaal of hernoem door plugins beheerde tools zodat het runtime-oppervlak ondubbelzinnig is.
Plugin-slots (exclusieve categorieën)
Sommige categorieën zijn exclusief (slechts één tegelijk actief):| Slot | Wat het beheert | Standaard |
|---|---|---|
memory | Active Memory-plugin | memory-core |
contextEngine | Actieve contextengine | legacy (ingebouwd) |
CLI-referentie
openclaw plugins enable <id> nodig.
--force overschrijft een bestaande geïnstalleerde plugin of hook-pack op zijn plaats. Gebruik
openclaw plugins update <id-or-npm-spec> voor routinematige upgrades van gevolgde npm-
plugins. Dit wordt niet ondersteund met --link, dat het bronpad hergebruikt in plaats van
over een beheerd installatiedoel te kopiëren.
Wanneer plugins.allow al is ingesteld, voegt openclaw plugins install de
geïnstalleerde plugin-id toe aan die allowlist voordat deze wordt ingeschakeld. Als dezelfde plugin-id
aanwezig is in plugins.deny, verwijdert installatie die verouderde deny-vermelding zodat de
expliciete installatie direct laadbaar is na een herstart.
OpenClaw bewaart een persistente lokale pluginregistry als het koude leesmodel voor
plugininventaris, eigenaarschap van bijdragen en opstartplanning. Installatie-, update-,
uninstall-, enable- en disable-flows vernieuwen die registry nadat de pluginstatus is gewijzigd.
Hetzelfde plugins/installs.json-bestand bewaart duurzame installatiemetadata in
top-level installRecords en opnieuw opbouwbare manifestmetadata in plugins. Als
de registry ontbreekt, verouderd of ongeldig is, bouwt openclaw plugins registry --refresh de manifestweergave opnieuw op vanuit installatierecords, configuratiebeleid en
manifest-/pakketmetadata zonder plugin-runtimemodules te laden.
openclaw plugins update <id-or-npm-spec> is van toepassing op gevolgde installaties. Het doorgeven
van een npm-pakketspecificatie met een dist-tag of exacte versie herleidt de pakketnaam
terug naar het gevolgde pluginrecord en registreert de nieuwe specificatie voor toekomstige updates.
Het doorgeven van de pakketnaam zonder versie verplaatst een exact gepinde installatie terug naar
de standaardreleaselijn van de registry. Als de geïnstalleerde npm-plugin al overeenkomt met
de opgeloste versie en geregistreerde artifact-identiteit, slaat OpenClaw de update over
zonder te downloaden, opnieuw te installeren of configuratie te herschrijven.
--pin is alleen voor npm. Het wordt niet ondersteund met --marketplace, omdat
marketplace-installaties marketplace-bronmetadata bewaren in plaats van een npm-specificatie.
--dangerously-force-unsafe-install is een break-glass-override voor fout-positieven
van de ingebouwde scanner voor gevaarlijke code. Hiermee kunnen plugininstallaties
en pluginupdates doorgaan voorbij ingebouwde critical-bevindingen, maar het
omzeilt nog steeds geen plugin-before_install-beleidsblokkades of blokkering door scanfouten.
Installatiescans negeren veelvoorkomende testbestanden en mappen zoals tests/,
__tests__/, *.test.* en *.spec.* om blokkering door verpakte testmocks te vermijden;
gedeclareerde plugin-runtime-entrypoints worden nog steeds gescand, zelfs als ze een van
die namen gebruiken.
Deze CLI-vlag is alleen van toepassing op plugininstallatie-/updateflows. Door Gateway ondersteunde Skill-
dependencyinstallaties gebruiken in plaats daarvan de overeenkomende dangerouslyForceUnsafeInstall-aanvraag-
override, terwijl openclaw skills install de aparte ClawHub-
download-/installatieflow voor Skills blijft.
Als een plugin die je op ClawHub hebt gepubliceerd verborgen is of door een scan wordt geblokkeerd, open dan het
ClawHub-dashboard of voer clawhub package rescan <name> uit om ClawHub te vragen
deze opnieuw te controleren. --dangerously-force-unsafe-install heeft alleen invloed op installaties op je eigen
machine; het vraagt ClawHub niet om de plugin opnieuw te scannen of een geblokkeerde release
openbaar te maken.
Compatibele bundels nemen deel aan dezelfde pluginlijst-/inspect-/enable-/disable-
flow. Huidige runtime-ondersteuning omvat bundel-Skills, Claude command-skills,
Claude settings.json-standaarden, Claude .lsp.json en in het manifest gedeclareerde
lspServers-standaarden, Cursor command-skills en compatibele Codex-hook-
mappen.
openclaw plugins inspect <id> rapporteert ook gedetecteerde bundelcapaciteiten plus
ondersteunde of niet-ondersteunde MCP- en LSP-serververmeldingen voor bundle-backed plugins.
Marketplace-bronnen kunnen een bekende Claude-marketplacenaam zijn uit
~/.claude/plugins/known_marketplaces.json, een lokale marketplace-root of
marketplace.json-pad, een GitHub-shorthand zoals owner/repo, een GitHub-repo-
URL of een git-URL. Voor externe marketplaces moeten pluginvermeldingen binnen de
gekloonde marketplace-repo blijven en alleen relatieve padbronnen gebruiken.
Zie de openclaw plugins CLI-referentie voor volledige details.
Overzicht van de Plugin-API
Native plugins exporteren een entry-object datregister(api) beschikbaar stelt. Oudere
plugins kunnen activate(api) nog steeds gebruiken als legacy-alias, maar nieuwe plugins moeten
register gebruiken.
register(api) aan tijdens plugin-
activatie. De loader valt nog steeds terug op activate(api) voor oudere plugins,
maar gebundelde plugins en nieuwe externe plugins moeten register behandelen als het
publieke contract.
api.registrationMode vertelt een plugin waarom de entry wordt geladen:
| Modus | Betekenis |
|---|---|
full | Runtime-activering. Registreer tools, hooks, services, opdrachten, routes en andere live neveneffecten. |
discovery | Alleen-lezen ontdekking van mogelijkheden. Registreer providers en metadata; vertrouwde Plugin-entrycode mag worden geladen, maar sla live neveneffecten over. |
setup-only | Laden van metadata voor kanaalconfiguratie via een lichtgewicht setup-entry. |
setup-runtime | Laden van kanaalconfiguratie waarvoor ook de runtime-entry nodig is. |
cli-metadata | Alleen verzamelen van CLI-opdrachtmetadata. |
api.registrationMode === "full".
Discovery-loads worden apart van activerende loads gecachet en vervangen het
actieve Gateway-register niet. Discovery is niet-activerend, niet importvrij:
OpenClaw kan de vertrouwde Plugin-entry of kanaal-Plugin-module evalueren om
de snapshot op te bouwen. Houd module-topniveaus lichtgewicht en vrij van
neveneffecten, en verplaats netwerkclients, subprocessen, listeners, credential-reads
en servicestartup naar volledige runtime-paden.
Veelgebruikte registratiemethoden:
| Methode | Wat deze registreert |
|---|---|
registerProvider | Modelprovider (LLM) |
registerChannel | Chatkanaal |
registerTool | Agent-tool |
registerHook / on(...) | Lifecycle-hooks |
registerSpeechProvider | Tekst-naar-spraak / STT |
registerRealtimeTranscriptionProvider | Streaming-STT |
registerRealtimeVoiceProvider | Duplex realtime stem |
registerMediaUnderstandingProvider | Beeld-/audioanalyse |
registerImageGenerationProvider | Beeldgeneratie |
registerMusicGenerationProvider | Muziekgeneratie |
registerVideoGenerationProvider | Videogeneratie |
registerWebFetchProvider | Provider voor webfetch/scraping |
registerWebSearchProvider | Webzoekfunctie |
registerHttpRoute | HTTP-eindpunt |
registerCommand / registerCli | CLI-opdrachten |
registerContextEngine | Contextengine |
registerService | Achtergrondservice |
before_tool_call:{ block: true }is terminal; handlers met lagere prioriteit worden overgeslagen.before_tool_call:{ block: false }is een no-op en wist een eerdere blokkering niet.before_install:{ block: true }is terminal; handlers met lagere prioriteit worden overgeslagen.before_install:{ block: false }is een no-op en wist een eerdere blokkering niet.message_sending:{ cancel: true }is terminal; handlers met lagere prioriteit worden overgeslagen.message_sending:{ cancel: false }is een no-op en wist een eerdere annulering niet.
before_tool_call,
resultaten observeren via after_tool_call en deelnemen aan Codex-
PermissionRequest-goedkeuringen. De bridge herschrijft Codex-native tool-
argumenten nog niet. De exacte ondersteuningsgrens van de Codex-runtime staat in het
Codex harness v1-ondersteuningscontract.
Zie SDK-overzicht voor volledig getypeerd hookgedrag.
Gerelateerd
- Plugins bouwen — maak je eigen plugin
- Plugin-bundels — compatibiliteit met Codex/Claude/Cursor-bundels
- Plugin-manifest — manifestschema
- Tools registreren — voeg agent-tools toe in een plugin
- Plugin-internals — capabilitymodel en laadpipeline
- Community-plugins — vermeldingen van derden