Plugin Manifest (openclaw.plugin.json)

Jedes Plugin muss eine openclaw.plugin.json Datei im Plugin-Root mitliefern. OpenClaw nutzt dieses Manifest, um die Konfiguration zu validieren, ohne Plugin-Code auszuführen. Fehlende oder ungültige Manifeste werden als Plugin-Fehler behandelt und blockieren die Config-Validierung.

Die vollständige Anleitung zum Plugin-System findest du hier: Plugins.

Pflichtfelder

{
  "id": "voice-call",
  "configSchema": {
    "type": "object",
    "additionalProperties": false,
    "properties": {}
  }
}

Erforderliche Felder:

  • id (string): Kanonische Plugin-ID.
  • configSchema (object): JSON Schema für die Plugin-Config (inline).

Optionale Felder:

  • kind (string): Plugin-Typ (Beispiel: "memory").
  • channels (array): Channel-IDs, die von diesem Plugin registriert werden (Beispiel: ["matrix"]).
  • providers (array): Provider-IDs, die von diesem Plugin registriert werden.
  • skills (array): Skill-Verzeichnisse zum Laden (relativ zum Plugin-Root).
  • name (string): Anzeigename für das Plugin.
  • description (string): Kurze Plugin-Beschreibung.
  • uiHints (object): Config-Feld-Labels/Platzhalter/Sensitive-Flags für UI-Rendering.
  • version (string): Plugin-Version (informativ).

JSON Schema Anforderungen

  • Jedes Plugin muss ein JSON Schema mitliefern, auch wenn es keine Config akzeptiert.
  • Ein leeres Schema ist akzeptabel (zum Beispiel { "type": "object", "additionalProperties": false }).
  • Schemas werden beim Lesen/Schreiben der Config validiert, nicht zur Runtime.

Validierungsverhalten

  • Unbekannte channels.* Keys sind Fehler, außer die Channel-ID ist in einem Plugin Manifest deklariert.
  • plugins.entries.<id>, plugins.allow, plugins.deny und plugins.slots.* müssen auf auffindbare Plugin-IDs verweisen. Unbekannte IDs sind Fehler.
  • Wenn ein Plugin installiert ist, aber ein defektes oder fehlendes Manifest oder Schema hat, schlägt die Validierung fehl und Doctor meldet den Plugin-Fehler.
  • Wenn Plugin-Config existiert, das Plugin aber deaktiviert ist, wird die Config behalten und eine Warnung in Doctor + Logs angezeigt.

Hinweise

  • Das Manifest ist für alle Plugins erforderlich, auch bei lokalen Filesystem-Loads.
  • Die Runtime lädt das Plugin-Modul weiterhin separat; das Manifest dient nur der Erkennung + Validierung.
  • Falls dein Plugin von nativen Modulen abhängt, dokumentiere die Build-Schritte und alle Package-Manager-Allowlist-Anforderungen (zum Beispiel pnpm allow-build-scripts
    • pnpm rebuild <package>).