Aller au contenu

Plugins

Les plugins étendent OpenClaw avec de nouvelles capacités : canaux, fournisseurs de modèles, outils, compétences, synthèse vocale, génération d’images, et plus encore. Certains plugins sont core (livrés avec OpenClaw), d’autres sont externes (publiés sur npm par la communauté).

  1. See what is loaded

    Fenêtre de terminal
    openclaw plugins list
  2. Installer un plugin

    Fenêtre de terminal
    # From npm
    openclaw plugins install @openclaw/voice-call
    # From a local directory or archive
    openclaw plugins install ./my-plugin
    openclaw plugins install ./my-plugin.tgz
  3. Redémarrer la passerelle

    Fenêtre de terminal
    openclaw gateway restart

    Configurez ensuite sous `plugins.entries.\

    .config` dans votre fichier de configuration.

Si vous préférez un contrôle natif via le chat, activez commands.plugins: true et utilisez :

/plugin install clawhub:@openclaw/voice-call
/plugin show voice-call
/plugin enable voice-call

Le chemin d’installation utilise le même résolveur que la CLI : chemin/archive local, spécification explicite clawhub:<pkg>, ou spécification de package nue (ClawHub en premier, puis repli sur npm).

OpenClaw reconnaît deux formats de plugins :

FormatFonctionnementExemples
Nativeopenclaw.plugin.json + module d’exécution ; s’exécute dans le processusPlugins officiels, packages npm communautaires
BundleDisposition compatible Codex/Claude/Cursor ; mappée aux fonctionnalités OpenClaw.codex-plugin/, .claude-plugin/, .cursor-plugin/

Les deux apparaissent sous openclaw plugins list. Consultez Plugin Bundles pour plus de détails sur les bundles.

Si vous écrivez un plugin natif, commencez par Building Plugins et la Plugin SDK Overview.

PluginPackageDocs
Matrix@openclaw/matrixMatrix
Microsoft Teams@openclaw/msteamsMicrosoft Teams
Nostr@openclaw/nostrNostr
Appel vocal@openclaw/voice-callVoice Call
Zalo@openclaw/zaloZalo
Zalo Personal@openclaw/zalouserZalo Personal
Model providers (enabled by default)

anthropic, byteplus, cloudflare-ai-gateway, github-copilot, google, huggingface, kilocode, kimi-coding, minimax, mistral, modelstudio, moonshot, nvidia, openai, opencode, opencode-go, openrouter, qianfan, synthetic, together, venice, vercel-ai-gateway, volcengine, xiaomi, zai

Plugins de mémoire
  • memory-core — recherche de mémoire intégrée (par défaut via plugins.slots.memory) - memory-lancedb — mémoire à long terme installée à la demande avec rappel/capture automatiques (définir plugins.slots.memory = "memory-lancedb")
Fournisseurs de reconnaissance vocale (activés par défaut)

elevenlabs, microsoft

Other
  • browser — plugin navigateur groupé pour l’outil navigateur, openclaw browser CLI, méthode de passerelle browser.request, runtime du navigateur et service de contrôle du navigateur par défaut (activé par défaut ; désactiver avant de le remplacer)
  • copilot-proxy — pont VS Code Copilot Proxy (désactivé par défaut)

Vous cherchez des plugins tiers ? Consultez Community Plugins.

{
plugins: {
enabled: true,
allow: ["voice-call"],
deny: ["untrusted-plugin"],
load: { paths: ["~/Projects/oss/voice-call-extension"] },
entries: {
"voice-call": { enabled: true, config: { provider: "twilio" } },
},
},
}
ChampDescription
enabledInterrupteur principal (par défaut : true)
allowListe d’autorisation des plugins (facultatif)
denyListe de refus des plugins (facultatif ; la refus l’emporte)
load.pathsFichiers/répertoires de plugins supplémentaires
slotsSélecteurs de slot exclusifs (ex. memory, contextEngine)
entries.\<id\>Commutateurs + configuration par plugin

Les modifications de la configuration nécessitent un redémarrage de la passerelle. Si le Gateway fonctionne avec la surveillance de la configuration et le redémarrage en processus activés (le chemin par défaut openclaw gateway), ce redémarrage est généralement effectué automatiquement un instant après l’écriture de la configuration.

Plugin states: disabled vs missing vs invalid

Disabled

: le plugin existe mais les règles d’activation l’ont désactivé. La configuration est conservée. -

Missing

: la configuration fait référence à un ID de plugin que la découverte n’a pas trouvé. -

Invalid

: le plugin existe mais sa configuration ne correspond pas au schéma déclaré.

OpenClaw recherche les plugins dans cet ordre (la première correspondance l’emporte) :

  1. Chemins de configuration

    plugins.load.paths — chemins explicites de fichiers ou de répertoires.

  2. Extensions de l'espace de travail

    `\

    /.openclaw/

    /*.tset\

    /.openclaw/

    /*/index.ts`.

  3. Extensions globales

    `~/.openclaw/

    /*.tset~/.openclaw/

    /*/index.ts`.

  4. Plugins groupés

    Livrés avec OpenClaw. Beaucoup sont activés par défaut (fournisseurs de model, parole). D’autres nécessitent une activation explicite.

  • plugins.enabled: false désactive tous les plugins
  • plugins.deny l’emporte toujours sur allow
  • plugins.entries.\<id\>.enabled: false désactive ce plugin
  • Les plugins d’origine espace de travail sont désactivés par défaut (doivent être explicitement activés)
  • Les plugins groupés suivent l’ensemble intégré activé par défaut, sauf s’ils sont remplacés
  • Les emplacements exclusifs peuvent forcer l’activation du plugin sélectionné pour cet emplacement

Certaines catégories sont exclusives (une seule active à la fois) :

{
plugins: {
slots: {
memory: "memory-core", // or "none" to disable
contextEngine: "legacy", // or a plugin id
},
},
}
EmplacementCe qu’il contrôlePar défaut
memoryPlugin de mémoire activememory-core
contextEngineMoteur de contexte actiflegacy (intégré)
Fenêtre de terminal
openclaw plugins list # compact inventory
openclaw plugins inspect <id> # deep detail
openclaw plugins inspect <id> --json # machine-readable
openclaw plugins status # operational summary
openclaw plugins doctor # diagnostics
openclaw plugins install <package> # install (ClawHub first, then npm)
openclaw plugins install clawhub:<pkg> # install from ClawHub only
openclaw plugins install <path> # install from local path
openclaw plugins install -l <path> # link (no copy) for dev
openclaw plugins install <spec> --dangerously-force-unsafe-install
openclaw plugins update <id> # update one plugin
openclaw plugins update --all # update all
openclaw plugins enable <id>
openclaw plugins disable <id>

--dangerously-force-unsafe-install est une dérogation de secours pour les faux positifs du scanneur de code dangereux intégré. Elle permet aux installations de se poursuivre malgré les détections intégrées de critical, mais ne contourne toujours pas les blocs de stratégie de plugin before_install ou le blocage en cas d’échec du scan.

Ce drapeau CLI s’applique uniquement aux installations de plugins. Les installations de dépendances de compétences soutenues par Gateway utilisent plutôt la dérogation de requête dangerouslyForceUnsafeInstall correspondante, tandis que openclaw skills install reste le flux distinct de téléchargement/installation de compétences ClawHub.

Consultez openclaw plugins référence CLI pour tous les détails.

Les plugins exportent soit une fonction, soit un objet avec register(api) :

export default definePluginEntry({
id: "my-plugin",
name: "My Plugin",
register(api) {
api.registerProvider({
/* ... */
});
api.registerTool({
/* ... */
});
api.registerChannel({
/* ... */
});
},
});

Méthodes d’enregistrement courantes :

MéthodeCe qu’il enregistre
registerProviderFournisseur de modèle (LLM)
registerChannelCanal de discussion
registerToolOutil d’agent
registerHook / on(...)Crochets de cycle de vie
registerSpeechProviderSynthèse vocale / STT
registerMediaUnderstandingProviderAnalyse d’image/audio
registerImageGenerationProviderGénération d’images
registerWebSearchProviderRecherche Web
registerHttpRoutePoint de terminaison HTTP
registerCommand / registerCliCommandes CLI
registerContextEngineMoteur de contexte
registerServiceService d’arrière-plan

Comportement de garde des hooks pour les hooks de cycle de vie typés :

  • before_tool_call : { block: true } est terminal ; les gestionnaires de priorité inférieure sont ignorés.
  • before_tool_call : { block: false } est une opération vide et ne efface pas un bloc précédent.
  • before_install : { block: true } est terminal ; les gestionnaires de priorité inférieure sont ignorés.
  • before_install : { block: false } est une opération vide et ne efface pas un bloc précédent.
  • message_sending : { cancel: true } est terminal ; les gestionnaires de priorité inférieure sont ignorés.
  • message_sending : { cancel: false } est une opération vide et ne efface pas une annulation précédente.

Pour le comportement complet des hooks typés, voir Vue d’ensemble du SDK.