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.denyundplugins.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-scriptspnpm rebuild <package>).