Zum Hauptinhalt springen

Plugins

Plugins erweitern OpenClaw um neue Fähigkeiten: Kanäle, Modell-Provider, Tools, Skills, Speech, Echtzeit-Transkription, Echtzeitstimme, Medienverständnis, Bildgenerierung, Videogenerierung, Web-Fetch, Web- Suche und mehr. Einige Plugins sind core (werden mit OpenClaw ausgeliefert), andere sind extern (von der Community auf npm veröffentlicht).

Schnellstart

1

Anzeigen, was geladen ist

openclaw plugins list
2

Ein Plugin installieren

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

# Aus einem lokalen Verzeichnis oder Archiv
openclaw plugins install ./my-plugin
openclaw plugins install ./my-plugin.tgz
3

Das Gateway neu starten

openclaw gateway restart
Konfigurieren Sie es danach unter plugins.entries.\<id\>.config in Ihrer Konfigurationsdatei.
Wenn Sie native Chat-Steuerung bevorzugen, aktivieren Sie commands.plugins: true und verwenden Sie:
/plugin install clawhub:@openclaw/voice-call
/plugin show voice-call
/plugin enable voice-call
Der Installationspfad verwendet denselben Resolver wie die CLI: lokaler Pfad/Archiv, explizit clawhub:<pkg> oder eine nackte Paketspezifikation (zuerst ClawHub, dann npm-Fallback). Wenn die Konfiguration ungültig ist, schlägt die Installation normalerweise geschlossen fehl und verweist Sie an openclaw doctor --fix. Die einzige Wiederherstellungsausnahme ist ein eng begrenzter Neuinstallationspfad für gebündelte Plugins für Plugins, die sich für openclaw.install.allowInvalidConfigRecovery entscheiden. Gepackte OpenClaw-Installationen installieren nicht eager den gesamten Laufzeit-Abhängigkeitsbaum jedes gebündelten Plugins. Wenn ein gebündeltes Plugin im Besitz von OpenClaw aktiv ist durch Plugin-Konfiguration, alte Kanal-Konfiguration oder ein standardmäßig aktiviertes Manifest, repariert der Start nur die deklarierten Laufzeitabhängigkeiten dieses Plugins vor dem Import. Externe Plugins und benutzerdefinierte Ladepfade müssen weiterhin über openclaw plugins install installiert werden.

Plugin-Typen

OpenClaw erkennt zwei Plugin-Formate:
FormatFunktionsweiseBeispiele
Nativeopenclaw.plugin.json + Laufzeitmodul; wird In-Process ausgeführtOffizielle Plugins, Community-npm-Pakete
BundleCodex-/Claude-/Cursor-kompatibles Layout; wird auf OpenClaw-Funktionen abgebildet.codex-plugin/, .claude-plugin/, .cursor-plugin/
Beide erscheinen unter openclaw plugins list. Siehe Plugin-Bundles für Details zu Bundles. Wenn Sie ein natives Plugin schreiben, beginnen Sie mit Plugins erstellen und der Übersicht zum Plugin SDK.

Offizielle Plugins

Installierbar (npm)

PluginPaketDoku
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 (mit OpenClaw ausgeliefert)

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 — gebündelte Memory-Suche (Standard über plugins.slots.memory)
  • memory-lancedb — Long-Term-Memory mit Installation bei Bedarf und automatischem Recall/Capture (setzen Sie plugins.slots.memory = "memory-lancedb")
elevenlabs, microsoft
  • browser — gebündeltes Browser-Plugin für das Browser-Tool, die CLI openclaw browser, die Gateway-Methode browser.request, die Browser-Laufzeit und den standardmäßigen Browser-Control-Service (standardmäßig aktiviert; vor dem Ersetzen deaktivieren)
  • copilot-proxy — VS-Code-Copilot-Proxy-Bridge (standardmäßig deaktiviert)
Suchen Sie nach Plugins von Drittanbietern? Siehe Community-Plugins.

Konfiguration

{
  plugins: {
    enabled: true,
    allow: ["voice-call"],
    deny: ["untrusted-plugin"],
    load: { paths: ["~/Projects/oss/voice-call-extension"] },
    entries: {
      "voice-call": { enabled: true, config: { provider: "twilio" } },
    },
  },
}
FeldBeschreibung
enabledHauptschalter (Standard: true)
allowPlugin-Allowlist (optional)
denyPlugin-Denylist (optional; deny gewinnt)
load.pathsZusätzliche Plugin-Dateien/-Verzeichnisse
slotsExklusive Slot-Auswahlfelder (z. B. memory, contextEngine)
entries.\<id\>Plugin-spezifische Schalter + Konfiguration
Änderungen an der Konfiguration erfordern einen Neustart des Gateway. Wenn das Gateway mit Config- Watch + In-Process-Neustart läuft (der Standardpfad openclaw gateway), wird dieser Neustart normalerweise automatisch kurz nach dem Schreiben der Konfiguration ausgeführt.
  • Deaktiviert: Plugin existiert, aber Aktivierungsregeln haben es abgeschaltet. Konfiguration bleibt erhalten.
  • Fehlend: Konfiguration verweist auf eine Plugin-ID, die von der Erkennung nicht gefunden wurde.
  • Ungültig: Plugin existiert, aber seine Konfiguration entspricht nicht dem deklarierten Schema.

Erkennung und Vorrang

OpenClaw scannt nach Plugins in dieser Reihenfolge (erster Treffer gewinnt):
1

Konfigurationspfade

plugins.load.paths — explizite Datei- oder Verzeichnispfade.
2

Workspace-Erweiterungen

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

Globale Erweiterungen

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

Gebündelte Plugins

Werden mit OpenClaw ausgeliefert. Viele sind standardmäßig aktiviert (Modell-Provider, Speech). Andere erfordern explizite Aktivierung.

Aktivierungsregeln

  • plugins.enabled: false deaktiviert alle Plugins
  • plugins.deny gewinnt immer gegenüber allow
  • plugins.entries.\<id\>.enabled: false deaktiviert dieses Plugin
  • Plugins aus dem Workspace-Ursprung sind standardmäßig deaktiviert (müssen explizit aktiviert werden)
  • Gebündelte Plugins folgen der eingebauten Standardmenge mit default-on, sofern sie nicht überschrieben wird
  • Exklusive Slots können das für diesen Slot ausgewählte Plugin zwangsaktivieren

Plugin-Slots (exklusive Kategorien)

Einige Kategorien sind exklusiv (immer nur eines aktiv):
{
  plugins: {
    slots: {
      memory: "memory-core", // oder "none" zum Deaktivieren
      contextEngine: "legacy", // oder eine Plugin-ID
    },
  },
}
SlotWas er steuertStandard
memoryAktives Memory-Pluginmemory-core
contextEngineAktive Context Enginelegacy (integriert)

CLI-Referenz

openclaw plugins list                       # kompaktes Inventar
openclaw plugins list --enabled            # nur geladene Plugins
openclaw plugins list --verbose            # Detailzeilen pro Plugin
openclaw plugins list --json               # maschinenlesbares Inventar
openclaw plugins inspect <id>              # tiefe Details
openclaw plugins inspect <id> --json       # maschinenlesbar
openclaw plugins inspect --all             # Tabelle für die gesamte Flotte
openclaw plugins info <id>                 # Alias für inspect
openclaw plugins doctor                    # Diagnostik

openclaw plugins install <package>         # installieren (zuerst ClawHub, dann npm)
openclaw plugins install clawhub:<pkg>     # nur von ClawHub installieren
openclaw plugins install <spec> --force    # vorhandene Installation überschreiben
openclaw plugins install <path>            # von lokalem Pfad installieren
openclaw plugins install -l <path>         # linken (ohne Kopie) für Entwicklung
openclaw plugins install <plugin> --marketplace <source>
openclaw plugins install <plugin> --marketplace https://github.com/<owner>/<repo>
openclaw plugins install <spec> --pin      # exakte aufgelöste npm-Spezifikation speichern
openclaw plugins install <spec> --dangerously-force-unsafe-install
openclaw plugins update <id>             # ein Plugin aktualisieren
openclaw plugins update <id> --dangerously-force-unsafe-install
openclaw plugins update --all            # alle aktualisieren
openclaw plugins uninstall <id>          # Konfigurations-/Installationsdatensätze entfernen
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>
Gebündelte Plugins werden mit OpenClaw ausgeliefert. Viele sind standardmäßig aktiviert (zum Beispiel gebündelte Modell-Provider, gebündelte Speech-Provider und das gebündelte Browser- Plugin). Andere gebündelte Plugins benötigen weiterhin openclaw plugins enable <id>. --force überschreibt ein vorhandenes installiertes Plugin oder Hook-Pack direkt. Es wird mit --link nicht unterstützt, da dabei der Quellpfad wiederverwendet wird statt eine verwaltete Installationszieldatei zu überschreiben. --pin ist nur für npm. Es wird mit --marketplace nicht unterstützt, weil Marketplace-Installationen Metadaten der Marketplace-Quelle statt einer npm-Spezifikation speichern. --dangerously-force-unsafe-install ist eine Break-Glass-Überschreibung für False Positives des eingebauten Scanners für gefährlichen Code. Es erlaubt Plugin-Installationen und Plugin-Updates, trotz eingebauter critical-Findings fortzufahren, aber es umgeht weiterhin keine Policy-Blocks von Plugins vom Typ before_install und auch kein Blocking bei fehlgeschlagenen Scans. Dieses CLI-Flag gilt nur für Plugin-Installations-/Update-Abläufe. Gateway-gestützte Skill- Abhängigkeitsinstallationen verwenden stattdessen die passende Request-Überschreibung dangerouslyForceUnsafeInstall, während openclaw skills install der separate ClawHub-Download-/Installationsfluss für Skills bleibt. Kompatible Bundles nehmen am selben Ablauf plugins list/inspect/enable/disable teil. Die aktuelle Laufzeitunterstützung umfasst Bundle-Skills, Claude-Befehlsskills, Claude-Standardeinstellungen in settings.json, Claude-Standardeinstellungen für .lsp.json und im Manifest deklarierte lspServers, Cursor-Befehlsskills und kompatible Codex-Hook- Verzeichnisse. openclaw plugins inspect <id> meldet außerdem erkannte Bundle-Fähigkeiten sowie unterstützte oder nicht unterstützte MCP- und LSP-Server-Einträge für bundlegestützte Plugins. Marketplace-Quellen können ein Claude-bekannter Marketplace-Name aus ~/.claude/plugins/known_marketplaces.json, ein lokaler Marketplace-Root oder Pfad zu marketplace.json, eine GitHub-Kurzform wie owner/repo, eine GitHub-Repo- URL oder eine Git-URL sein. Bei Remote-Marketplaces müssen Plugin-Einträge innerhalb des geklonten Marketplace-Repositorys bleiben und dürfen nur relative Pfadquellen verwenden. Siehe openclaw plugins CLI-Referenz für vollständige Details.

Überblick über die Plugin-API

Native Plugins exportieren ein Entry-Objekt, das register(api) bereitstellt. Ältere Plugins können weiterhin activate(api) als alten Alias verwenden, aber neue Plugins sollten register verwenden.
export default definePluginEntry({
  id: "my-plugin",
  name: "My Plugin",
  register(api) {
    api.registerProvider({
      /* ... */
    });
    api.registerTool({
      /* ... */
    });
    api.registerChannel({
      /* ... */
    });
  },
});
OpenClaw lädt das Entry-Objekt und ruft während der Plugin- Aktivierung register(api) auf. Der Loader fällt für ältere Plugins weiterhin auf activate(api) zurück, aber gebündelte Plugins und neue externe Plugins sollten register als öffentlichen Vertrag behandeln. Gängige Registrierungsmethoden:
MethodeWas sie registriert
registerProviderModell-Provider (LLM)
registerChannelChat-Kanal
registerToolAgent-Tool
registerHook / on(...)Lifecycle-Hooks
registerSpeechProviderText-to-Speech / STT
registerRealtimeTranscriptionProviderStreaming-STT
registerRealtimeVoiceProviderDuplex-Echtzeitstimme
registerMediaUnderstandingProviderBild-/Audioanalyse
registerImageGenerationProviderBildgenerierung
registerMusicGenerationProviderMusikgenerierung
registerVideoGenerationProviderVideogenerierung
registerWebFetchProviderWeb-Fetch-/Scrape-Provider
registerWebSearchProviderWeb-Suche
registerHttpRouteHTTP-Endpunkt
registerCommand / registerCliCLI-Befehle
registerContextEngineContext Engine
registerServiceHintergrunddienst
Verhalten von Hook-Guards für typisierte Lifecycle-Hooks:
  • before_tool_call: { block: true } ist final; Handler mit niedrigerer Priorität werden übersprungen.
  • before_tool_call: { block: false } ist ein No-op und hebt einen früheren Block nicht auf.
  • before_install: { block: true } ist final; Handler mit niedrigerer Priorität werden übersprungen.
  • before_install: { block: false } ist ein No-op und hebt einen früheren Block nicht auf.
  • message_sending: { cancel: true } ist final; Handler mit niedrigerer Priorität werden übersprungen.
  • message_sending: { cancel: false } ist ein No-op und hebt ein früheres Cancel nicht auf.
Für das vollständige Verhalten typisierter Hooks siehe SDK-Übersicht.

Verwandt