Plugins

Plugin-Bundles

OpenClaw kann Plugins aus drei externen Ökosystemen installieren: Codex, Claude und Cursor. Diese heißen Bundles – Inhalts- und Metadatenpakete, die OpenClaw nativen Funktionen wie Skills, Hooks und MCP-Tools zuordnet.

Warum es Bundles gibt

Viele nützliche Plugins werden im Codex-, Claude- oder Cursor-Format veröffentlicht. Anstatt Autorinnen und Autoren zu verlangen, sie als native OpenClaw-Plugins neu zu schreiben, erkennt OpenClaw diese Formate und ordnet ihre unterstützten Inhalte dem nativen Funktionsumfang zu. Das bedeutet, Sie können ein Claude-Befehlspaket oder ein Codex-Skill-Bundle installieren und es sofort verwenden.

Ein Bundle installieren

  • Aus einem Verzeichnis, Archiv oder Marketplace installieren

    bash
    # Local directoryopenclaw plugins install ./my-bundle # Archiveopenclaw plugins install ./my-bundle.tgz # Claude marketplaceopenclaw plugins marketplace list <marketplace-name>openclaw plugins install <plugin-name>@<marketplace-name>
  • Erkennung prüfen

    bash
    openclaw plugins listopenclaw plugins inspect <id>

    Bundles werden als Format: bundle mit einem Subtyp von codex, claude oder cursor angezeigt.

  • Neu starten und verwenden

    bash
    openclaw gateway restart

    Zugeordnete Funktionen (Skills, Hooks, MCP-Tools, LSP-Standards) sind in der nächsten Sitzung verfügbar.

  • Was OpenClaw aus Bundles zuordnet

    Nicht jede Bundle-Funktion läuft heute in OpenClaw. Hier sehen Sie, was funktioniert und was erkannt, aber noch nicht verdrahtet ist.

    Jetzt unterstützt

    Feature Wie es zugeordnet wird Gilt für
    Skill-Inhalt Bundle-Skill-Roots werden als normale OpenClaw-Skills geladen Alle Formate
    Befehle commands/ und .cursor/commands/ werden als Skill-Roots behandelt Claude, Cursor
    Hook-Pakete OpenClaw-artige Layouts mit HOOK.md + handler.ts Codex
    MCP-Tools Bundle-MCP-Konfiguration wird in eingebettete OpenClaw-Einstellungen zusammengeführt; unterstützte stdio- und HTTP-Server werden geladen Alle Formate
    LSP-Server Claude .lsp.json und im Manifest deklarierte lspServers werden in eingebettete OpenClaw-LSP-Standards zusammengeführt Claude
    Einstellungen Claude settings.json wird als eingebettete OpenClaw-Standardeinstellungen importiert Claude

    Skill-Inhalt

    • Bundle-Skill-Roots werden als normale OpenClaw-Skill-Roots geladen
    • Claude-commands-Roots werden als zusätzliche Skill-Roots behandelt
    • Cursor-.cursor/commands-Roots werden als zusätzliche Skill-Roots behandelt

    Das bedeutet, dass Claude-Markdown-Befehlsdateien über den normalen OpenClaw-Skill- Loader funktionieren. Cursor-Befehls-Markdown funktioniert über denselben Pfad.

    Hook-Pakete

    • Bundle-Hook-Roots funktionieren nur, wenn sie das normale OpenClaw-Hook-Paket- Layout verwenden. Heute ist dies hauptsächlich der Codex-kompatible Fall:
      • HOOK.md
      • handler.ts oder handler.js

    MCP für eingebettetes OpenClaw

    • aktivierte Bundles können MCP-Serverkonfiguration beitragen
    • OpenClaw führt Bundle-MCP-Konfiguration in den wirksamen eingebetteten OpenClaw-Einstellungen als mcpServers zusammen
    • OpenClaw stellt unterstützte Bundle-MCP-Tools während eingebetteter OpenClaw-Agent-Turns bereit, indem stdio-Server gestartet oder Verbindungen zu HTTP-Servern hergestellt werden
    • die Tool-Profile coding und messaging enthalten Bundle-MCP-Tools standardmäßig; verwenden Sie tools.deny: ["bundle-mcp"], um sich für einen Agent oder Gateway abzumelden
    • projektlokale eingebettete Agent-Einstellungen gelten weiterhin nach den Bundle-Standards, sodass Workspace- Einstellungen Bundle-MCP-Einträge bei Bedarf überschreiben können
    • Bundle-MCP-Toolkataloge werden vor der Registrierung deterministisch sortiert, sodass Änderungen der Upstream-Reihenfolge von listTools() die Prompt-Cache-Tool-Blöcke nicht durcheinanderbringen
    Transporte

    MCP-Server können stdio- oder HTTP-Transport verwenden:

    Stdio startet einen Child-Prozess:

    json
    {  "mcp": {    "servers": {      "my-server": {        "command": "node",        "args": ["server.js"],        "env": { "PORT": "3000" }      }    }  }}

    HTTP verbindet sich standardmäßig über sse mit einem laufenden MCP-Server oder auf Anforderung über streamable-http:

    json
    {  "mcp": {    "servers": {      "my-server": {        "url": "http://localhost:3100/mcp",        "transport": "streamable-http",        "headers": {          "Authorization": "Bearer ${MY_SECRET_TOKEN}"        },        "connectionTimeoutMs": 30000      }    }  }}
    • transport kann auf "streamable-http" oder "sse" gesetzt werden; wenn es ausgelassen wird, verwendet OpenClaw sse
    • type: "http" ist eine CLI-native Downstream-Form; verwenden Sie transport: "streamable-http" in der OpenClaw-Konfiguration. openclaw mcp set und openclaw doctor --fix normalisieren den gängigen Alias.
    • nur URL-Schemata http: und https: sind erlaubt
    • headers-Werte unterstützen ${ENV_VAR}-Interpolation
    • ein Servereintrag mit sowohl command als auch url wird abgelehnt
    • URL-Anmeldedaten (userinfo und Query-Parameter) werden aus Tool- Beschreibungen und Logs entfernt
    • connectionTimeoutMs überschreibt das standardmäßige Verbindungs-Timeout von 30 Sekunden für sowohl stdio- als auch HTTP-Transporte
    Tool-Benennung

    OpenClaw registriert Bundle-MCP-Tools mit Provider-sicheren Namen in der Form serverName__toolName. Zum Beispiel wird ein Server mit dem Schlüssel "vigil-harbor", der ein memory_search-Tool bereitstellt, als vigil-harbor__memory_search registriert.

    • Zeichen außerhalb von A-Za-z0-9_- werden durch - ersetzt
    • Fragmente, die mit einem Nicht-Buchstaben beginnen würden, erhalten ein Buchstabenpräfix, sodass numerische Server-Schlüssel wie 12306 zu Provider-sicheren Tool-Präfixen werden
    • Server-Präfixe sind auf 30 Zeichen begrenzt
    • vollständige Tool-Namen sind auf 64 Zeichen begrenzt
    • leere Servernamen fallen auf mcp zurück
    • kollidierende bereinigte Namen werden mit numerischen Suffixen eindeutig gemacht
    • die endgültige offengelegte Tool-Reihenfolge ist nach sicherem Namen deterministisch, um wiederholte eingebettete Agent- Turns cache-stabil zu halten
    • Profilfilterung behandelt alle Tools eines Bundle-MCP-Servers als Plugin-eigen durch bundle-mcp, sodass Profil-Allowlists und Deny-Listen entweder einzelne offengelegte Tool-Namen oder den Plugin-Schlüssel bundle-mcp enthalten können

    Eingebettete OpenClaw-Einstellungen

    • Claude settings.json wird als eingebettete OpenClaw-Standardeinstellungen importiert, wenn das Bundle aktiviert ist
    • OpenClaw bereinigt Shell-Override-Schlüssel, bevor es sie anwendet

    Bereinigte Schlüssel:

    • shellPath
    • shellCommandPrefix

    Eingebettetes OpenClaw-LSP

    • aktivierte Claude-Bundles können LSP-Serverkonfiguration beitragen
    • OpenClaw lädt .lsp.json plus alle im Manifest deklarierten lspServers-Pfade
    • Bundle-LSP-Konfiguration wird in die wirksamen eingebetteten OpenClaw-LSP-Standards zusammengeführt
    • nur unterstützte stdio-gestützte LSP-Server sind heute ausführbar; nicht unterstützte Transporte erscheinen weiterhin in openclaw plugins inspect <id>

    Erkannt, aber nicht ausgeführt

    Diese werden erkannt und in Diagnosen angezeigt, aber OpenClaw führt sie nicht aus:

    • Claude agents, hooks.json-Automatisierung, outputStyles
    • Cursor .cursor/agents, .cursor/hooks.json, .cursor/rules
    • Codex-Inline-/App-Metadaten über Capability-Berichte hinaus

    Bundle-Formate

    Codex-Bundles

    Marker: .codex-plugin/plugin.json

    Optionale Inhalte: skills/, hooks/, .mcp.json, .app.json

    Codex-Bundles passen am besten zu OpenClaw, wenn sie Skill-Roots und OpenClaw-artige Hook-Paket-Verzeichnisse (HOOK.md + handler.ts) verwenden.

    Claude-Bundles

    Zwei Erkennungsmodi:

    • Manifestbasiert: .claude-plugin/plugin.json
    • Ohne Manifest: Standard-Claude-Layout (skills/, commands/, agents/, hooks/, .mcp.json, .lsp.json, settings.json)

    Claude-spezifisches Verhalten:

    • commands/ wird als Skill-Inhalt behandelt
    • settings.json wird in eingebettete OpenClaw-Einstellungen importiert (Shell-Override-Schlüssel werden bereinigt)
    • .mcp.json stellt unterstützte stdio-Tools für eingebettetes OpenClaw bereit
    • .lsp.json plus im Manifest deklarierte lspServers-Pfade werden in eingebettete OpenClaw-LSP-Standards geladen
    • hooks/hooks.json wird erkannt, aber nicht ausgeführt
    • Benutzerdefinierte Komponentenpfade im Manifest sind additiv (sie erweitern Standards, ersetzen sie nicht)
    Cursor-Bundles

    Marker: .cursor-plugin/plugin.json

    Optionale Inhalte: skills/, .cursor/commands/, .cursor/agents/, .cursor/rules/, .cursor/hooks.json, .mcp.json

    • .cursor/commands/ wird als Skill-Inhalt behandelt
    • .cursor/rules/, .cursor/agents/ und .cursor/hooks.json sind nur Erkennung

    Erkennungspriorität

    OpenClaw prüft zuerst auf das native Plugin-Format:

    1. openclaw.plugin.json oder gültiges package.json mit openclaw.extensions – wird als natives Plugin behandelt
    2. Bundle-Marker (.codex-plugin/, .claude-plugin/ oder Standard-Claude-/Cursor-Layout) – wird als Bundle behandelt

    Wenn ein Verzeichnis beides enthält, verwendet OpenClaw den nativen Pfad. Dies verhindert, dass Dual-Format-Pakete teilweise als Bundles installiert werden.

    Laufzeitabhängigkeiten und Bereinigung

    • Kompatible Bundles von Drittanbietern erhalten keine npm install-Reparatur beim Start. Sie sollten über openclaw plugins install installiert werden und alles, was sie benötigen, im installierten Plugin-Verzeichnis mitliefern.
    • OpenClaw-eigene gebündelte Plugins werden entweder schlank im Core ausgeliefert oder über den Plugin-Installer heruntergeladen. Der Gateway-Start führt für sie nie einen Package Manager aus.
    • openclaw doctor --fix entfernt alte bereitgestellte Abhängigkeitsverzeichnisse und kann herunterladbare Plugins wiederherstellen, die im lokalen Plugin-Index fehlen, wenn die Konfiguration auf sie verweist.

    Sicherheit

    Bundles haben eine engere Vertrauensgrenze als native Plugins:

    • OpenClaw lädt keine beliebigen Bundle-Laufzeitmodule im Prozess
    • Skills und Hook-Paket-Pfade müssen innerhalb des Plugin-Roots bleiben (Boundary-geprüft)
    • Einstellungsdateien werden mit denselben Boundary-Prüfungen gelesen
    • Unterstützte stdio-MCP-Server können als Subprozesse gestartet werden

    Das macht Bundles standardmäßig sicherer, aber Sie sollten Drittanbieter- Bundles dennoch als vertrauenswürdigen Inhalt für die Funktionen behandeln, die sie bereitstellen.

    Fehlerbehebung

    Bundle wird erkannt, aber Capabilities laufen nicht

    Führen Sie openclaw plugins inspect <id> aus. Wenn eine Capability aufgeführt, aber als nicht verdrahtet markiert ist, ist das eine Produktgrenze – keine fehlerhafte Installation.

    Claude-Befehlsdateien erscheinen nicht

    Stellen Sie sicher, dass das Bundle aktiviert ist und die Markdown-Dateien sich innerhalb eines erkannten commands/- oder skills/-Roots befinden.

    Claude-Einstellungen werden nicht angewendet

    Nur eingebettete OpenClaw-Einstellungen aus settings.json werden unterstützt. OpenClaw behandelt Bundle-Einstellungen nicht als rohe Konfigurations-Patches.

    Claude-Hooks werden nicht ausgeführt

    hooks/hooks.json ist nur Erkennung. Wenn Sie ausführbare Hooks benötigen, verwenden Sie das OpenClaw-Hook-Paket-Layout oder liefern Sie ein natives Plugin aus.

    Verwandt

    Was this useful?
    On this page

    On this page