プラグインマニフェスト(openclaw.plugin.json)

すべてのプラグインは、プラグインルートopenclaw.plugin.json ファイルを同梱する 必要があります。 OpenClaw は、このマニフェストを使用して、プラグインコードを実行せずに 設定を検証します。マニフェストが欠落しているか無効な場合、プラグインエラーとして扱われ、設定検証がブロックされます。

完全なプラグインシステムガイドを参照してください: プラグイン

必須フィールド

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

必須キー:

  • id(文字列): 正規のプラグイン id。
  • configSchema(オブジェクト): プラグイン設定用の JSON Schema(インライン)。

オプションキー:

  • kind(文字列): プラグインの種類(例: "memory")。
  • channels(配列): このプラグインによって登録されたチャンネル id(例: ["matrix"])。
  • providers(配列): このプラグインによって登録されたプロバイダー id。
  • skills(配列): ロードするスキルディレクトリ(プラグインルートからの相対パス)。
  • name(文字列): プラグインの表示名。
  • description(文字列): 短いプラグインの概要。
  • uiHints(オブジェクト): UI レンダリング用の設定フィールドラベル/プレースホルダー/機密フラグ。
  • version(文字列): プラグインバージョン(情報提供)。

JSON Schema 要件

  • すべてのプラグインは JSON Schema を同梱する必要があります。設定を受け入れない場合でも。
  • 空のスキーマは許容されます(例: { "type": "object", "additionalProperties": false })。
  • スキーマは、設定の読み取り/書き込み時に検証され、実行時には検証されません。

検証動作

  • プラグインマニフェストでチャンネル id が宣言されていない限り、未知の channels.* キーは エラー です。
  • plugins.entries.<id>plugins.allowplugins.deny、および plugins.slots.* は、検出可能な プラグイド id を参照する必要があります。未知の id は エラー です。
  • プラグインがインストールされているが、マニフェストまたはスキーマが壊れているか欠落している場合、検証は失敗し、Doctor がプラグインエラーを報告します。
  • プラグイン設定が存在するがプラグインが 無効 の場合、設定は保持され、Doctor + ログで 警告 が表示されます。

注記

  • マニフェストは、ローカルファイルシステムロードを含む すべてのプラグインに必須 です。
  • ランタイムは引き続きプラグインモジュールを個別にロードします。マニフェストは検出 + 検証のためだけです。
  • プラグインがネイティブモジュールに依存している場合は、ビルドステップとパッケージマネージャーの許可リスト要件をドキュメント化してください(例: pnpm allow-build-scripts + pnpm rebuild <package>)。