Plugins breiden OpenClaw uit met nieuwe mogelijkheden: kanalen, modelproviders, agent-harnassen, tools, Skills, spraak, realtime transcriptie, realtime stem, mediabegrip, afbeeldingsgeneratie, videogeneratie, web fetch, web search en meer. Sommige plugins zijn kern (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 pluginpakketten die eigendom zijn van OpenClaw terwijl die migratie wordt afgerond.Documentation Index
Fetch the complete documentation index at: https://docs2.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
Snel aan de slag
Voor voorbeelden voor kopiëren en plakken voor installeren, weergeven, verwijderen, bijwerken en publiceren, zie Plugins beheren.Herstart de Gateway
plugins.entries.\<id\>.config in je configuratiebestand.Chat-native beheer
In een actieve Gateway activeren eigenaar-alleen
/plugins enable en /plugins disable
de config-herlader van de Gateway. De Gateway herlaadt plugin-runtime-
oppervlakken in het proces, en nieuwe agentbeurten bouwen hun toollijst opnieuw op uit het
vernieuwde register. /plugins install wijzigt plugin-broncode, dus de
Gateway vraagt om een herstart in plaats van te doen alsof het huidige proces
reeds geïmporteerde modules veilig kan herladen.commands.plugins: true in en gebruik:
clawhub:<pkg>, expliciet npm:<pkg>, expliciet npm-pack:<path.tgz>,
expliciet git:<repo>, of kale pakketspecificatie via npm.
Als de configuratie ongeldig is, faalt installeren normaal gesloten en verwijst het 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 opstarten van de Gateway faalt ongeldige pluginconfiguratie gesloten zoals elke andere ongeldige
configuratie. Voer openclaw doctor --fix uit om de slechte pluginconfiguratie in quarantaine te plaatsen door
die pluginvermelding uit te schakelen en de ongeldige configuratiepayload te verwijderen; de normale
configuratieback-up behoudt de vorige waarden.
Wanneer een kanaalconfiguratie verwijst naar een plugin die niet langer vindbaar is, maar dezelfde
verouderde plugin-id in pluginconfiguratie of installatierecords blijft staan, logt het opstarten van de Gateway
waarschuwingen en slaat dat kanaal over in plaats van elk ander kanaal te blokkeren.
Voer openclaw doctor --fix uit om de verouderde kanaal-/pluginvermeldingen te verwijderen; onbekende
kanaalsleutels zonder bewijs van een verouderde plugin blijven validatie mislukken, zodat typefouten
zichtbaar blijven.
Als plugins.enabled: false is ingesteld, worden verouderde pluginverwijzingen als inert behandeld:
het opstarten van de Gateway slaat plugin-detectie/-laadwerk over en openclaw doctor behoudt
de uitgeschakelde pluginconfiguratie in plaats van die automatisch te verwijderen. Schakel plugins opnieuw in voordat je
doctor-opruiming uitvoert als je verouderde plugin-id’s verwijderd wilt hebben.
Installatie van pluginafhankelijkheden gebeurt alleen tijdens expliciete installatie-/update- of
doctor-reparatiestromen. Gateway-opstart, configuratieherlaad en runtime-inspectie voeren geen
pakketbeheerders uit en repareren geen afhankelijkheidsbomen. Lokale plugins moeten hun afhankelijkheden al
geïnstalleerd hebben, terwijl npm-, git- en ClawHub-plugins worden geïnstalleerd onder de beheerde pluginroots
van OpenClaw. npm-afhankelijkheden kunnen binnen de beheerde npm-root van OpenClaw worden gehesen; installatie/update scant die beheerde root vóór
vertrouwen en verwijderen verwijdert door npm beheerde pakketten via npm. Externe plugins
en aangepaste laadpaden moeten nog steeds via openclaw plugins install worden geïnstalleerd.
Gebruik openclaw plugins list --json om de statische dependencyStatus voor elke
zichtbare plugin te zien zonder runtimecode te importeren of afhankelijkheden te repareren.
Zie Resolutie van pluginafhankelijkheden voor de
levenscyclus tijdens installatie.
Geblokkeerd eigenaarschap van pluginpad
Als plugindiagnostiek meldtblocked plugin candidate: suspicious ownership (... uid=1000, expected uid=0 or root)
en configuratievalidatie volgt met plugin present but blocked, heeft OpenClaw
pluginbestanden gevonden die eigendom zijn van een andere Unix-gebruiker dan het proces dat ze laadt.
Laat de pluginconfiguratie staan; herstel het eigenaarschap van het bestandssysteem of voer
OpenClaw uit als dezelfde gebruiker die eigenaar is van de statusdirectory.
Voor Docker-installaties draait de officiële image als node (uid 1000), dus de
host-bind-mounted OpenClaw-configuratie- en werkspacedirectory’s zouden normaal gesproken
eigendom moeten zijn van uid 1000:
openclaw doctor --fix of
openclaw plugins registry --refresh uit, zodat het opgeslagen pluginregister overeenkomt met
de gerepareerde bestanden.
Voor npm-installaties worden veranderlijke selectors zoals latest of een dist-tag opgelost
vóór installatie en daarna vastgezet op de exact geverifieerde versie in de beheerde npm-root
van OpenClaw. Nadat npm klaar is, verifieert OpenClaw dat de geïnstalleerde
package-lock.json-vermelding nog steeds overeenkomt met de opgeloste versie en integriteit. Als
npm andere pakketmetadata schrijft, mislukt de installatie en wordt het beheerde pakket
teruggedraaid in plaats van een ander pluginartefact te accepteren.
Beheerde npm-roots erven ook de npm-overrides op pakketniveau van OpenClaw, zodat
beveiligingspins die de verpakte host beschermen ook van toepassing zijn op gehesen externe
pluginafhankelijkheden.
Bron-checkouts zijn pnpm-workspaces. Als je OpenClaw kloont om aan gebundelde
plugins te werken, voer pnpm install uit; OpenClaw laadt gebundelde plugins dan uit
extensions/<id> zodat wijzigingen en pakketlokale afhankelijkheden direct worden gebruikt.
Gewone npm-rootinstallaties zijn bedoeld voor verpakte OpenClaw, niet voor ontwikkeling met source checkouts.
Plugintypen
OpenClaw herkent twee pluginindelingen:| Indeling | Hoe het werkt | Voorbeelden |
|---|---|---|
| Native | openclaw.plugin.json + runtimemodule; voert in-process uit | Officiële plugins, community-npm-pakketten |
| Bundle | Codex-/Claude-/Cursor-compatibele indeling; gemapt naar OpenClaw-functies | .codex-plugin/, .claude-plugin/, .cursor-plugin/ |
openclaw plugins list. Zie Pluginbundels voor bundeldetails.
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 entry moet binnen de pakketdirectory blijven en oplossen naar een leesbaar
runtimebestand, of naar een TypeScript-bronbestand met een afgeleide gebouwde JavaScript-
peer, zoals src/index.ts naar dist/index.js.
Verpakte installaties moeten die JavaScript-runtime-uitvoer meeleveren. De TypeScript-
bronfallback is bedoeld voor source checkouts en lokale ontwikkelpaden, niet voor
npm-pakketten die in de beheerde pluginroot van OpenClaw worden geïnstalleerd.
Niet-gevolgde directory’s die in de globale extensieroot worden geplaatst, worden behandeld als
lokale source checkouts en kunnen TypeScript-entries direct laden. Directory’s die
nog steeds door een installatierecord worden genoemd, inclusief installPath of sourcePath, blijven
beheerd en behouden de vereiste voor gecompileerde uitvoer, zelfs wanneer de globale scan
ze ziet. Als je een beheerde installatie bewust omzet in een niet-gevolgde lokale
checkout, verwijder dan eerst het verouderde installatierecord met verwijderen of doctor-opruiming.
Als een waarschuwing voor een beheerd pakket zegt dat het requires compiled runtime output for TypeScript entry ..., dan is het pakket gepubliceerd zonder de JavaScript-bestanden
die OpenClaw tijdens runtime nodig heeft. Dat is een pluginverpakkingsprobleem, geen lokaal configuratieprobleem.
Werk de plugin bij of installeer hem opnieuw nadat de uitgever gecompileerde
JavaScript opnieuw publiceert, of schakel die plugin uit/verwijder hem totdat een gerepareerd pakket beschikbaar is.
Gebruik openclaw.runtimeExtensions wanneer gepubliceerde runtimebestanden niet op
dezelfde paden staan als de bronentries. Wanneer aanwezig, moet runtimeExtensions precies
één entry bevatten voor elke extensions-entry. Niet-overeenkomende lijsten laten installatie en
plugin-detectie mislukken in plaats van stil terug te vallen op bronpaden. Als je ook
openclaw.setupEntry publiceert, gebruik dan openclaw.runtimeSetupEntry voor de gebouwde
JavaScript-peer; dat bestand is vereist wanneer het is gedeclareerd.
Officiële plugins
Npm-pakketten die eigendom zijn van OpenClaw tijdens 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 opstellingen geen aparte npm-installaties nodig. Totdat elke plugin die eigendom is van OpenClaw naar ClawHub is gemigreerd, levert OpenClaw nog steeds enkele@openclaw/* pluginpakketten op
npm voor oudere/aangepaste installaties en directe npm-workflows.
Als npm een @openclaw/* pluginpakket als verouderd meldt, komt die pakketversie
uit een oudere externe pakketreeks. Gebruik de gebundelde plugin uit
huidige OpenClaw of een lokale checkout totdat een nieuwer npm-pakket wordt gepubliceerd.
| Plugin | Pakket | Documentatie |
|---|---|---|
| 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- langetermijngeheugen op basis van LanceDB met automatisch ophalen/vastleggen (stelplugins.slots.memory = "memory-lancedb"in)
Spraakproviders (standaard ingeschakeld)
Spraakproviders (standaard ingeschakeld)
elevenlabs, microsoftOverig
Overig
browser- gebundelde browserplugin voor de browsertool,openclaw browserCLI, Gateway-methodebrowser.request, browserruntime en standaard browserbesturingsservice (standaard ingeschakeld; schakel uit voordat je deze vervangt)copilot-proxy- VS Code Copilot Proxy-brug (standaard uitgeschakeld)
Configuratie
| Veld | Beschrijving |
|---|---|
enabled | Hoofdschakelaar (standaard: true) |
allow | Plugin-allowlist (optioneel) |
bundledDiscovery | Ontdekkingsmodus voor gebundelde plugins (standaard allowlist) |
deny | Plugin-denylist (optioneel; deny wint) |
load.paths | Extra pluginbestanden/-mappen |
slots | Exclusieve slotselectors (bijv. memory, contextEngine) |
entries.\<id\> | Schakelaars + configuratie per plugin |
plugins.allow is exclusief. Wanneer deze niet leeg is, kunnen alleen vermelde plugins laden
of tools beschikbaar stellen, zelfs als tools.allow "*" of een specifieke toolnaam van
een plugin bevat. Als een tool-allowlist naar plugintools verwijst, voeg dan de eigenaar-plugin-id’s
toe aan plugins.allow of verwijder plugins.allow; openclaw doctor waarschuwt voor deze
vorm.
plugins.bundledDiscovery is standaard "allowlist" voor nieuwe configuraties, zodat een
beperkende plugins.allow-inventaris ook weggelaten gebundelde providerplugins blokkeert,
inclusief runtime-ontdekking van webzoekproviders. Doctor markeert oudere
beperkende allowlist-configuraties tijdens migratie met "compat", zodat upgrades het
oude gedrag van gebundelde providers behouden totdat de operator kiest voor de striktere modus.
Een lege plugins.allow wordt nog steeds behandeld als niet ingesteld/open.
Configuratiewijzigingen via /plugins enable of /plugins disable activeren een
in-process herlaadactie van Gateway-plugins. Nieuwe agentbeurten bouwen hun toollijst opnieuw op vanuit
het vernieuwde pluginregister. Bewerkingen die broncode wijzigen, zoals installeren,
bijwerken en verwijderen, herstarten nog steeds het Gateway-proces omdat al geïmporteerde
pluginmodules niet veilig ter plekke kunnen worden vervangen.
openclaw plugins list is een lokale momentopname van pluginregister/configuratie. Een
enabled plugin daar betekent dat het vastgelegde register en de huidige configuratie de
plugin toestaan deel te nemen. Het bewijst niet dat een al draaiende externe Gateway
opnieuw is geladen of herstart met dezelfde plugincode. In VPS-/containeropstellingen
met wrapperprocessen stuur je herstarts of schrijfacties die herladen activeren naar het daadwerkelijke
openclaw gateway run-proces, of gebruik je openclaw gateway restart tegen de
draaiende Gateway wanneer de herlaadactie een fout meldt.
Pluginstatussen: uitgeschakeld vs ontbrekend vs ongeldig
Pluginstatussen: uitgeschakeld vs ontbrekend vs ongeldig
- Uitgeschakeld: plugin bestaat, maar inschakelregels hebben deze uitgezet. Configuratie blijft behouden.
- Ontbrekend: configuratie verwijst naar een plugin-id die discovery niet heeft gevonden.
- Ongeldig: plugin bestaat, maar de configuratie komt niet overeen met het gedeclareerde schema. Het opstarten van Gateway slaat alleen die plugin over;
openclaw doctor --fixkan de ongeldige entry isoleren door deze uit te schakelen en de configuratiepayload te verwijderen.
Discovery en prioriteit
OpenClaw scant naar plugins in deze volgorde (eerste overeenkomst wint):Configuratiepaden
plugins.load.paths - expliciete bestands- of mappaden. Paden die
terugwijzen naar OpenClaw’s eigen verpakte gebundelde pluginmappen 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-boom. Als een bronmap van een gebundelde plugin
bind-mounted is over het overeenkomende verpakte bronpad, bijvoorbeeld
/app/extensions/synology-chat, behandelt OpenClaw die gekoppelde bronmap
als een gebundelde bronoverlay en ontdekt deze vóór de verpakte
/app/dist/extensions/synology-chat-bundel. Dit houdt containerloops voor maintainers
werkend zonder elke gebundelde plugin terug te schakelen naar TypeScript-broncode.
Stel OPENCLAW_DISABLE_BUNDLED_SOURCE_OVERLAYS=1 in om verpakte dist-bundels af te dwingen,
zelfs wanneer bronoverlay-mounts aanwezig zijn.
Inschakelregels
plugins.enabled: falseschakelt alle plugins uit en slaat plugin discovery/load-werk overplugins.denywint altijd van allowplugins.entries.\<id\>.enabled: falseschakelt die plugin uit- Plugins afkomstig uit de werkruimte zijn standaard uitgeschakeld (moeten expliciet worden ingeschakeld)
- Gebundelde plugins volgen de ingebouwde standaard-aan-set tenzij overschreven
- Exclusieve slots kunnen de geselecteerde plugin voor dat slot geforceerd inschakelen
- Sommige gebundelde opt-in-plugins worden automatisch ingeschakeld wanneer configuratie een oppervlak noemt dat eigendom is van een plugin, zoals een provider-modelreferentie, kanaalconfiguratie of harness runtime
- Verouderde pluginconfiguratie blijft behouden terwijl
plugins.enabled: falseactief is; schakel plugins opnieuw in voordat je doctor cleanup uitvoert als je verouderde id’s wilt verwijderen - OpenAI-familie Codex-routes houden afzonderlijke plugingrenzen:
openai-codex/*hoort bij de OpenAI-plugin, terwijl de gebundelde Codex appserverplugin wordt geselecteerd door canoniekeopenai/*-agentreferenties, expliciete provider/modelagentRuntime.id: "codex", of legacycodex/*-modelreferenties
Runtime-hooks probleemoplossen
Als een plugin inplugins list verschijnt maar register(api)-neveneffecten of hooks
niet draaien 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/code. In wrapper-
containers is PID 1 mogelijk alleen een supervisor; herstart of signaleer het child-
openclaw gateway run-proces. - Gebruik
openclaw plugins inspect <id> --runtime --jsonom hookregistraties en diagnostics te bevestigen. Niet-gebundelde conversatiehooks zoalsbefore_model_resolve,before_agent_reply,before_agent_run,llm_input,llm_output,before_agent_finalizeenagent_endhebbenplugins.entries.<id>.hooks.allowConversationAccess=truenodig. - Voor modelwisseling geef je de voorkeur aan
before_model_resolve. Deze draait vóór model- resolutie voor agentbeurten;llm_outputdraait pas nadat een modelpoging assistant-output produceert. - Gebruik voor bewijs van het effectieve sessiemodel
openclaw sessionsof de Gateway-sessie-/statusoppervlakken en start, wanneer je providerpayloads debugt, de Gateway met--raw-stream --raw-stream-path <path>.
Trage plugintool-initialisatie
Als agentbeurten lijken te blokkeren tijdens het voorbereiden van tools, schakel trace-logging in en controleer op timingsregels voor plugintool-factories:Dubbel kanaal- of tooleigenaarschap
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 herkomst te zien. - Voer
openclaw plugins inspect <id> --runtime --jsonuit voor elke verdachte plugin en vergelijkchannels,channelConfigs,toolsen diagnostics. - Voer
openclaw plugins registry --refreshuit na het installeren of verwijderen van pluginpakketten zodat vastgelegde metadata de huidige installatie weerspiegelen. - Herstart de Gateway na wijzigingen aan installatie, register of configuratie.
- Als één plugin bewust een andere vervangt voor dezelfde channel-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 per ongeluk is, schakel dan één kant uit met
plugins.entries.<plugin-id>.enabled: falseof verwijder de verouderde plugin- installatie. - Als je beide plugins expliciet hebt ingeschakeld, behoudt OpenClaw dat verzoek en meldt het conflict. Kies één eigenaar voor het kanaal of hernoem tools die eigendom zijn van plugins zodat het runtime-oppervlak ondubbelzinnig is.
Pluginslots (exclusieve categorieën)
Sommige categorieën zijn exclusief (slechts één tegelijk actief):| Slot | Wat het beheert | Standaard |
|---|---|---|
memory | Actieve geheugenplugin | memory-core |
contextEngine | Actieve contextengine | legacy (ingebouwd) |
CLI-referentie
openclaw plugins enable <id> nodig.
--force overschrijft een bestaande geïnstalleerde plugin of hookpack op dezelfde plek. Gebruik
openclaw plugins update <id-or-npm-spec> voor reguliere upgrades van gevolgde npm-
plugins. Dit wordt niet ondersteund met --link, dat het bronpad hergebruikt in plaats
van over een beheerd installatiedoel heen te kopiëren.
Wanneer plugins.allow al is ingesteld, voegt openclaw plugins install de
geïnstalleerde plugin-id toe aan die toelatingslijst voordat deze wordt ingeschakeld. Als dezelfde plugin-id
aanwezig is in plugins.deny, verwijdert install die verouderde deny-vermelding zodat de
expliciete installatie direct na herstart kan worden geladen.
OpenClaw bewaart een persistent lokaal pluginregister als het cold-read-model voor
plugininventaris, eigenaarschap van bijdragen en opstartplanning. Install-, update-,
uninstall-, enable- en disable-flows vernieuwen dat register nadat ze de pluginstatus
hebben gewijzigd. Hetzelfde bestand plugins/installs.json bewaart duurzame installatiemetadata in
installRecords op topniveau en opnieuw opbouwbare manifestmetadata in plugins. Als
het register ontbreekt, verouderd of ongeldig is, bouwt openclaw plugins registry --refresh de manifestweergave opnieuw op uit installatierecords, configuratiebeleid en
manifest-/pakketmetadata zonder plugin-runtime-modules te laden.
In Nix-modus (OPENCLAW_NIX_MODE=1) zijn mutators voor de pluginlevenscyclus uitgeschakeld.
Beheer in plaats daarvan de selectie van pluginpakketten en configuratie via de Nix-bron voor de
installatie; begin voor nix-openclaw met de agent-first
Quick Start.
openclaw plugins update <id-or-npm-spec> geldt voor gevolgde installaties. Het doorgeven
van een npm-pakketspecificatie met een dist-tag of exacte versie herleidt de pakketnaam
terug naar het gevolgde pluginrecord en legt de nieuwe specificatie vast voor toekomstige updates.
Het doorgeven van de pakketnaam zonder versie verplaatst een exact vastgepinde installatie terug naar
de standaard releaselijn van het register. Als de geïnstalleerde npm-plugin al overeenkomt met
de herleide versie en vastgelegde artifact-identiteit, slaat OpenClaw de update over
zonder te downloaden, opnieuw te installeren of configuratie te herschrijven.
Wanneer openclaw update op het bètakanaal draait, proberen npm- en ClawHub-
pluginrecords op de standaardlijn eerst @beta en vallen ze terug op default/latest wanneer er geen
bètarelease van de plugin bestaat. Exacte versies en expliciete tags blijven vastgepind.
--pin is alleen voor npm. Het wordt niet ondersteund met --marketplace, omdat
marketplace-installaties bronmetadata van de marketplace bewaren in plaats van een npm-specificatie.
--dangerously-force-unsafe-install is een noodoverride voor false positives
van de ingebouwde scanner voor gevaarlijke code. Hiermee kunnen plugininstallaties
en pluginupdates doorgaan voorbij ingebouwde critical-bevindingen, maar het omzeilt nog steeds
geen beleidsblokkades van plugin-before_install of blokkering bij scanfouten.
Installatiescans negeren gangbare testbestanden en -mappen zoals tests/,
__tests__/, *.test.* en *.spec.* om te voorkomen dat meegeleverde testmocks worden geblokkeerd;
gedeclareerde runtime-entrypoints van plugins worden nog steeds gescand, zelfs als ze een van
die namen gebruiken.
Deze CLI-vlag geldt alleen voor installatie-/updateflows van plugins. Gateway-ondersteunde installaties
van Skills-afhankelijkheden gebruiken in plaats daarvan de bijbehorende request-override
dangerouslyForceUnsafeInstall, terwijl openclaw skills install de afzonderlijke 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 flow voor pluginlist/inspect/enable/disable.
De huidige runtime-ondersteuning omvat bundel-Skills, Claude command-Skills,
standaardwaarden voor Claude settings.json, standaardwaarden voor Claude .lsp.json en door het manifest gedeclareerde
lspServers, 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 bundelondersteunde plugins.
Marketplace-bronnen kunnen een Claude bekende-marketplace-naam 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) aanbiedt. Oudere
plugins kunnen nog steeds activate(api) als legacy-alias gebruiken, 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 als het
publieke contract beschouwen.
api.registrationMode vertelt een plugin waarom de entry wordt geladen:
| Modus | Betekenis |
|---|---|
full | Runtime-activatie. Registreer tools, hooks, services, commands, routes en andere live neveneffecten. |
discovery | Alleen-lezen capaciteitsdetectie. Registreer providers en metadata; vertrouwde plugin-entrycode mag laden, maar sla live neveneffecten over. |
setup-only | Laden van channel-setupmetadata via een lichte setup-entry. |
setup-runtime | Channel-setup laden waarvoor ook de runtime-entry nodig is. |
cli-metadata | Alleen verzameling van CLI-commandmetadata. |
api.registrationMode === "full".
Discovery-loads worden apart gecachet van activatieloads en vervangen niet
het actieve Gateway-register. Discovery is niet-activerend, niet importvrij:
OpenClaw kan de vertrouwde plugin-entry of channel-pluginmodule evalueren om
de snapshot te bouwen. Houd module-topniveaus licht en vrij van neveneffecten, en verplaats
netwerkclients, subprocessen, listeners, credential-reads en serviceopstart
achter full-runtime-paden.
Veelgebruikte registratiemethoden:
| Methode | Wat deze registreert |
|---|---|
registerProvider | Modelprovider (LLM) |
registerChannel | Chatkanaal |
registerTool | Agenttool |
registerHook / on(...) | Lifecycle-hooks |
registerSpeechProvider | Tekst-naar-spraak / STT |
registerRealtimeTranscriptionProvider | Streaming-STT |
registerRealtimeVoiceProvider | Duplex realtime spraak |
registerMediaUnderstandingProvider | Afbeeldings-/audioanalyse |
registerImageGenerationProvider | Afbeeldingsgeneratie |
registerMusicGenerationProvider | Muziekgeneratie |
registerVideoGenerationProvider | Videogeneratie |
registerWebFetchProvider | Webfetch-/scrapeprovider |
registerWebSearchProvider | Webzoekfunctie |
registerHttpRoute | HTTP-endpoint |
registerCommand / registerCli | CLI-commands |
registerContextEngine | Context-engine |
registerService | Achtergrondservice |
before_tool_call:{ block: true }is terminaal; handlers met lagere prioriteit worden overgeslagen.before_tool_call:{ block: false }is een no-op en wist een eerdere blokkade niet.before_install:{ block: true }is terminaal; handlers met lagere prioriteit worden overgeslagen.before_install:{ block: false }is een no-op en wist een eerdere blokkade niet.message_sending:{ cancel: true }is terminaal; 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 grens voor Codex-runtimeondersteuning staat in het
Codex harness v1-ondersteuningscontract.
Zie voor volledig getypeerd hook-gedrag het SDK-overzicht.
Gerelateerd
- Plugins bouwen - maak je eigen plugin
- Plugin-bundels - compatibiliteit met Codex/Claude/Cursor-bundels
- Plugin manifest - manifestschema
- Tools registreren - voeg agenttools toe in een plugin
- Plugin-internals - capabilitymodel en laadpipeline
- ClawHub - ontdekking van plugins van derden