Plugins

Plugin バンドル

OpenClaw は、CodexClaudeCursor という 3 つの外部エコシステムから Plugin をインストールできます。これらは バンドル と呼ばれ、OpenClaw が Skills、フック、MCP ツールなどのネイティブ機能にマッピングするコンテンツとメタデータのパックです。

バンドルが存在する理由

多くの有用な Plugin は Codex、Claude、Cursor 形式で公開されています。作者にそれらをネイティブの OpenClaw Plugin として書き直すことを求める代わりに、OpenClaw はこれらの形式を検出し、サポートされているコンテンツをネイティブ機能セットへマッピングします。つまり、Claude コマンドパックや Codex の Skill バンドルをインストールして、すぐに使用できます。

バンドルをインストールする

  • ディレクトリ、アーカイブ、またはマーケットプレイスからインストールする

    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>
  • 検出を確認する

    bash
    openclaw plugins listopenclaw plugins inspect <id>

    バンドルは codexclaude、または cursor のサブタイプ付きで Format: bundle と表示されます。

  • 再起動して使用する

    bash
    openclaw gateway restart

    マッピングされた機能(Skills、フック、MCP ツール、LSP のデフォルト)は、次のセッションで利用できます。

  • OpenClaw がバンドルからマッピングするもの

    現在、すべてのバンドル機能が OpenClaw で実行されるわけではありません。動作するものと、検出はされるもののまだ接続されていないものは次のとおりです。

    現在サポート済み

    機能 マッピング方法 対象
    Skill コンテンツ バンドルの Skill ルートは通常の OpenClaw Skills として読み込まれます すべての形式
    コマンド commands/.cursor/commands/ は Skill ルートとして扱われます Claude、Cursor
    フックパック OpenClaw スタイルの HOOK.md + handler.ts レイアウト Codex
    MCP ツール バンドルの MCP 設定は組み込み Pi 設定にマージされ、サポートされている stdio および HTTP サーバーが読み込まれます すべての形式
    LSP サーバー Claude の .lsp.json とマニフェストで宣言された lspServers は組み込み Pi の LSP デフォルトにマージされます Claude
    設定 Claude の settings.json は組み込み Pi のデフォルトとしてインポートされます Claude

    Skill コンテンツ

    • バンドルの Skill ルートは通常の OpenClaw Skill ルートとして読み込まれます
    • Claude の commands ルートは追加の Skill ルートとして扱われます
    • Cursor の .cursor/commands ルートは追加の Skill ルートとして扱われます

    つまり、Claude の Markdown コマンドファイルは通常の OpenClaw Skill ローダーを通じて動作します。Cursor のコマンド Markdown も同じ経路で動作します。

    フックパック

    • バンドルのフックルートは、通常の OpenClaw フックパックの レイアウトを使用している場合のみ動作します。現在、これは主に Codex 互換のケースです。
      • HOOK.md
      • handler.ts または handler.js

    Pi 向け MCP

    • 有効化されたバンドルは MCP サーバー設定を提供できます
    • OpenClaw は、バンドルの MCP 設定を有効な組み込み Pi 設定へ mcpServers としてマージします
    • OpenClaw は、stdio サーバーを起動するか HTTP サーバーへ接続することで、組み込み Pi エージェントのターン中にサポートされているバンドル MCP ツールを公開します
    • codingmessaging のツールプロファイルには、デフォルトでバンドル MCP ツールが含まれます。エージェントまたは Gateway で除外するには tools.deny: ["bundle-mcp"] を使用します
    • プロジェクトローカルの Pi 設定はバンドルのデフォルト後にも適用されるため、必要に応じてワークスペース設定でバンドル MCP エントリを上書きできます
    • バンドル MCP ツールカタログは登録前に決定論的に並べ替えられるため、上流の listTools() の順序変更によってプロンプトキャッシュのツールブロックが不安定になることはありません
    トランスポート

    MCP サーバーは stdio または HTTP トランスポートを使用できます。

    Stdio は子プロセスを起動します。

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

    HTTP は、デフォルトでは sse、要求された場合は streamable-http を使って、実行中の MCP サーバーに接続します。

    json
    {  "mcp": {    "servers": {      "my-server": {        "url": "http://localhost:3100/mcp",        "transport": "streamable-http",        "headers": {          "Authorization": "Bearer ${MY_SECRET_TOKEN}"        },        "connectionTimeoutMs": 30000      }    }  }}
    • transport"streamable-http" または "sse" に設定できます。省略した場合、OpenClaw は sse を使用します
    • type: "http" は CLI ネイティブの下流形状です。OpenClaw 設定では transport: "streamable-http" を使用します。openclaw mcp setopenclaw doctor --fix は一般的なエイリアスを正規化します。
    • 許可される URL スキームは http:https: のみです
    • headers の値は ${ENV_VAR} 補間をサポートします
    • commandurl の両方を持つサーバーエントリは拒否されます
    • URL 認証情報(userinfo とクエリパラメータ)は、ツールの説明とログから秘匿されます
    • connectionTimeoutMs は、stdio と HTTP の両方のトランスポートについてデフォルトの 30 秒接続タイムアウトを上書きします
    ツール名

    OpenClaw は、バンドル MCP ツールを serverName__toolName 形式のプロバイダーで安全な名前で登録します。たとえば、memory_search ツールを公開する "vigil-harbor" というキーのサーバーは、vigil-harbor__memory_search として登録されます。

    • A-Za-z0-9_- 以外の文字は - に置き換えられます
    • 数字のサーバーキー(12306 など)がプロバイダーで安全なツール接頭辞になるように、英字以外で始まる断片には英字接頭辞が付きます
    • サーバー接頭辞は 30 文字に制限されます
    • 完全なツール名は 64 文字に制限されます
    • 空のサーバー名は mcp にフォールバックします
    • サニタイズ後の名前が衝突する場合は、数字の接尾辞で曖昧さが解消されます
    • Pi の繰り返しターンでキャッシュを安定させるため、最終的に公開されるツールの順序は安全な名前に基づいて決定論的です
    • プロファイルフィルタリングでは、1 つのバンドル MCP サーバーのすべてのツールを bundle-mcp によって Plugin 所有のものとして扱うため、プロファイルの許可リストと拒否リストには個別の公開ツール名または bundle-mcp Plugin キーのどちらも含められます

    組み込み Pi 設定

    • Claude の settings.json は、バンドルが有効な場合にデフォルトの組み込み Pi 設定としてインポートされます
    • OpenClaw は、シェル上書きキーを適用前にサニタイズします

    サニタイズされるキー:

    • shellPath
    • shellCommandPrefix

    組み込み Pi LSP

    • 有効化された Claude バンドルは LSP サーバー設定を提供できます
    • OpenClaw は .lsp.json と、マニフェストで宣言された任意の lspServers パスを読み込みます
    • バンドルの LSP 設定は、有効な組み込み Pi の LSP デフォルトにマージされます
    • 現在実行可能なのは、サポートされている stdio ベースの LSP サーバーのみです。サポートされていないトランスポートも openclaw plugins inspect <id> には表示されます

    検出されるが実行されないもの

    これらは認識され診断に表示されますが、OpenClaw は実行しません。

    • Claude の agentshooks.json 自動化、outputStyles
    • Cursor の .cursor/agents.cursor/hooks.json.cursor/rules
    • 機能報告以外の Codex インライン/アプリメタデータ

    バンドル形式

    Codex バンドル

    マーカー: .codex-plugin/plugin.json

    任意のコンテンツ: skills/hooks/.mcp.json.app.json

    Codex バンドルは、Skill ルートと OpenClaw スタイルの フックパックディレクトリ(HOOK.md + handler.ts)を使用すると、OpenClaw に最もよく適合します。

    Claude バンドル

    2 つの検出モード:

    • マニフェストベース: .claude-plugin/plugin.json
    • マニフェストなし: デフォルトの Claude レイアウト(skills/commands/agents/hooks/.mcp.json.lsp.jsonsettings.json

    Claude 固有の動作:

    • commands/ は Skill コンテンツとして扱われます
    • settings.json は組み込み Pi 設定にインポートされます(シェル上書きキーはサニタイズされます)
    • .mcp.json は、サポートされている stdio ツールを組み込み Pi に公開します
    • .lsp.json と、マニフェストで宣言された lspServers パスは、組み込み Pi の LSP デフォルトに読み込まれます
    • hooks/hooks.json は検出されますが実行されません
    • マニフェスト内のカスタムコンポーネントパスは追加的です(デフォルトを置き換えるのではなく拡張します)
    Cursor バンドル

    マーカー: .cursor-plugin/plugin.json

    任意のコンテンツ: skills/.cursor/commands/.cursor/agents/.cursor/rules/.cursor/hooks.json.mcp.json

    • .cursor/commands/ は Skill コンテンツとして扱われます
    • .cursor/rules/.cursor/agents/.cursor/hooks.json は検出のみです

    検出の優先順位

    OpenClaw は最初にネイティブ Plugin 形式を確認します。

    1. openclaw.plugin.json または openclaw.extensions を含む有効な package.jsonネイティブ Plugin として扱われます
    2. バンドルマーカー(.codex-plugin/.claude-plugin/、またはデフォルトの Claude/Cursor レイアウト)— バンドル として扱われます

    ディレクトリに両方が含まれる場合、OpenClaw はネイティブの経路を使用します。これにより、二重形式のパッケージがバンドルとして部分的にインストールされることを防ぎます。

    ランタイム依存関係とクリーンアップ

    • サードパーティ互換バンドルには、起動時の npm install 修復は適用されません。それらは openclaw plugins install を通じてインストールされ、必要なものをすべてインストール済み Plugin ディレクトリに同梱している必要があります。
    • OpenClaw 所有のバンドル済み Plugin は、コアに軽量同梱されるか、Plugin インストーラーを通じてダウンロード可能です。Gateway 起動時にそれらのためにパッケージマネージャーが実行されることはありません。
    • openclaw doctor --fix は、従来のステージ済み依存関係ディレクトリを削除し、設定が参照しているにもかかわらずローカル Plugin インデックスに存在しないダウンロード可能 Plugin を復旧できます。

    セキュリティ

    バンドルは、ネイティブ Plugin よりも狭い信頼境界を持ちます。

    • OpenClaw は任意のバンドルランタイムモジュールをインプロセスで読み込みません
    • Skills とフックパックのパスは Plugin ルート内に留まる必要があります(境界チェック済み)
    • 設定ファイルは同じ境界チェックで読み込まれます
    • サポートされている stdio MCP サーバーはサブプロセスとして起動される場合があります

    これにより、バンドルはデフォルトでより安全になりますが、それでもサードパーティのバンドルは、公開する機能について信頼されたコンテンツとして扱う必要があります。

    トラブルシューティング

    バンドルは検出されるが機能が実行されない

    openclaw plugins inspect <id> を実行します。機能が一覧に表示されているものの 未接続としてマークされている場合、それは製品上の制限であり、インストールの破損ではありません。

    Claude コマンドファイルが表示されない

    バンドルが有効化されていて、Markdown ファイルが検出済みの commands/ または skills/ ルート内にあることを確認してください。

    Claude 設定が適用されない

    settings.json からの組み込み Pi 設定のみがサポートされています。OpenClaw は バンドル設定を生の設定パッチとして扱いません。

    Claude フックが実行されない

    hooks/hooks.json は検出のみです。実行可能なフックが必要な場合は、 OpenClaw のフックパックレイアウトを使用するか、ネイティブ Plugin として提供してください。

    関連

    Was this useful?