Plugins
Plugin バンドル
OpenClaw は、Codex、Claude、Cursor という 3 つの外部エコシステムから Plugin をインストールできます。これらは バンドルと呼ばれ、OpenClaw が Skills、フック、MCP ツールなどのネイティブ機能にマッピングするコンテンツとメタデータのパックです。
バンドルが存在する理由
多くの便利な Plugin は Codex、Claude、または Cursor 形式で公開されています。作成者にネイティブ OpenClaw Plugin として書き直すことを求める代わりに、OpenClaw はこれらの形式を検出し、対応しているコンテンツをネイティブ機能セットにマッピングします。Claude コマンドパックや Codex スキルバンドルをインストールして、すぐに使用できます。
バンドルをインストールする
ディレクトリ、アーカイブ、またはマーケットプレイスからインストールする
# ローカルディレクトリopenclaw plugins install ./my-bundle # アーカイブopenclaw plugins install ./my-bundle.tgz # Claude マーケットプレイスopenclaw plugins marketplace list <source>openclaw plugins install <plugin> --marketplace <source><source> はローカルのマーケットプレイスパス/リポジトリ、または git/GitHub ソースです。
検出を確認する
openclaw plugins listopenclaw plugins inspect <id>バンドルには、Format: bundle に加えて、値が codex、claude、または cursor の Bundle format: が表示されます。
再起動して使用する
openclaw gateway restartマッピングされた機能(Skills、フック、MCP ツール、LSP のデフォルト)は次のセッションで利用できます。
OpenClaw がバンドルからマッピングするもの
現在、すべてのバンドル機能が OpenClaw で動作するわけではありません。ここでは、動作するものと、検出されるもののまだ接続されていないものを示します。
現在対応しているもの
| 機能 | マッピング方法 | 対象 |
|---|---|---|
| スキルコンテンツ | バンドルのスキルルートを通常の OpenClaw Skills として読み込む | すべての形式 |
| コマンド | commands/ と .cursor/commands/ をスキルルートとして扱う |
Claude、Cursor |
| フックパック | OpenClaw 形式の HOOK.md + handler.ts レイアウト |
Codex |
| MCP ツール | バンドルの MCP 設定を埋め込み OpenClaw 設定にマージし、対応する stdio および HTTP サーバーを読み込む | すべての形式 |
| LSP サーバー | Claude の .lsp.json とマニフェストで宣言された lspServers を埋め込み OpenClaw の LSP デフォルトにマージする |
Claude |
| 設定 | Claude の settings.json を埋め込み OpenClaw のデフォルトとしてインポートする |
Claude |
スキルコンテンツ
- バンドルのスキルルートは通常の OpenClaw スキルルートとして読み込まれます。
- Claude の
commands/ルートは追加のスキルルートとして扱われます。 - Cursor の
.cursor/commands/ルートは追加のスキルルートとして扱われます。
Claude の Markdown コマンドファイルと Cursor のコマンド Markdown は、どちらも通常の OpenClaw スキルローダーを通じて動作します。
フックパック
バンドルのフックルートは、通常の OpenClaw フックパックレイアウト(HOOK.md と handler.ts または handler.js)を使用する場合にのみ動作します。現在、これは主に Codex 互換の場合に該当します。
埋め込み OpenClaw の MCP
- 有効なバンドルは MCP サーバー設定を提供できます。
- OpenClaw はバンドルの MCP 設定を
mcpServersとして、有効な埋め込み OpenClaw 設定にマージします。 - OpenClaw は、stdio サーバーを起動するか HTTP サーバーに接続することで、埋め込み OpenClaw エージェントのターン中に、対応するバンドル MCP ツールを公開します。
codingおよびmessagingツールプロファイルには、デフォルトでバンドル MCP ツールが含まれます。エージェントまたは Gateway で無効にするにはtools.deny: ["bundle-mcp"]を使用します。- プロジェクトローカルの埋め込みエージェント設定は、バンドルのデフォルト適用後も有効になるため、必要に応じてワークスペース設定でバンドル MCP エントリを上書きできます。
- バンドル MCP ツールカタログは登録前に決定論的にソートされるため、上流の
listTools()の順序が変わってもプロンプトキャッシュのツールブロックが頻繁に変動することはありません。
トランスポート
MCP サーバーは stdio または HTTP トランスポートを使用できます。
Stdio は子プロセスを起動します。
{ "mcp": { "servers": { "my-server": { "command": "node", "args": ["server.js"], "env": { "PORT": "3000" } } } }}HTTP は実行中の MCP サーバーに接続します。streamable-http が要求されない限り、デフォルトは sse です。
{ "mcp": { "servers": { "my-server": { "url": "http://localhost:3100/mcp", "transport": "streamable-http", "headers": { "Authorization": "Bearer ${MY_SECRET_TOKEN}" }, "connectionTimeoutMs": 30000 } } }}transportは"streamable-http"または"sse"を受け付けます。省略時のデフォルトはsseです。type: "http"は CLI ネイティブのダウンストリーム形式です。OpenClaw 設定ではtransport: "streamable-http"を使用してください。openclaw mcp setとopenclaw doctor --fixは一般的なエイリアスを正規化します。- 許可される URL スキームは
http:とhttps:のみです。 headersの値では${ENV_VAR}補間を使用できます。commandとurlの両方を含むサーバーエントリは拒否されます。- URL の認証情報(ユーザー情報およびクエリパラメータ)は、ツールの説明とログから秘匿されます。
connectionTimeoutMsは、stdio と HTTP の両方のトランスポートで、デフォルトの 30 秒の接続タイムアウトを上書きします。リクエストタイムアウトのデフォルトは 60 秒で、requestTimeoutMsで上書きできます。
ツールの命名
OpenClaw はバンドル MCP ツールを serverName__toolName 形式のプロバイダーで安全に使用できる名前で登録します。たとえば、キーが "vigil-harbor" のサーバーが memory_search ツールを公開している場合、vigil-harbor__memory_search として登録されます。
A-Za-z0-9_-に含まれない文字は-に置き換えられます。- 先頭が英字以外になるフラグメントには英字の接頭辞が付けられるため、
12306のような数値のサーバーキーも、プロバイダーで安全に使用できるツール接頭辞になります。 - サーバー接頭辞は最大 30 文字です。
- 完全なツール名は最大 64 文字です。
- 空のサーバー名は
mcpにフォールバックします。 - サニタイズ後の名前が衝突する場合は、数値の接尾辞で区別されます。
- 最終的に公開されるツールの順序は安全な名前によって決定論的に定まり、埋め込みエージェントのターンを繰り返してもキャッシュが安定します。
- プロファイルフィルタリングでは、1 つのバンドル MCP サーバーのすべてのツールを
bundle-mcpが所有する Plugin として扱うため、プロファイルの許可/拒否リストでは、公開された個別のツール名またはbundle-mcpPlugin キーのいずれかを参照できます。
埋め込み OpenClaw 設定
バンドルが有効な場合、Claude の settings.json は埋め込み OpenClaw のデフォルト設定としてインポートされます。OpenClaw は適用前にシェル上書きキーをサニタイズします。
shellPathshellCommandPrefix
埋め込み OpenClaw LSP
- 有効な Claude バンドルは LSP サーバー設定を提供できます。
- OpenClaw は
.lsp.jsonと、マニフェストで宣言されたすべてのlspServersパスを読み込みます。 - バンドルの LSP 設定は、有効な埋め込み OpenClaw LSP のデフォルトにマージされます。
- 現在実行できるのは、対応する stdio ベースの LSP サーバーのみです。未対応のトランスポートも
openclaw plugins inspect <id>には表示されます。
検出されるが実行されないもの
以下は認識され、診断に表示されますが、OpenClaw は実行しません。
- Claude の
agents、hooks/hooks.json自動化、outputStyles - Cursor の
.cursor/agents、.cursor/hooks.json、.cursor/rules - 機能レポート以外の Codex
.app.jsonメタデータ
バンドル形式
Codex バンドル
マーカー:.codex-plugin/plugin.json
オプションのコンテンツ:skills/、hooks/、.mcp.json、.app.json
Codex バンドルは、スキルルートと OpenClaw 形式のフックパックディレクトリ(HOOK.md + handler.ts)を使用すると、OpenClaw に最も適合します。
Claude バンドル
2 つの検出モード:
- マニフェストベース:
.claude-plugin/plugin.json - マニフェストなし: デフォルトの Claude レイアウト(
skills/、commands/、agents/、hooks/、.mcp.json、.lsp.json、settings.json)
Claude 固有の動作:
commands/はスキルコンテンツとして扱われますsettings.jsonは埋め込み OpenClaw 設定にインポートされます(シェル上書きキーはサニタイズされます).mcp.jsonは対応する stdio ツールを埋め込み OpenClaw に公開します.lsp.jsonとマニフェストで宣言されたlspServersパスは、埋め込み OpenClaw LSP のデフォルトに読み込まれますhooks/hooks.jsonは検出されますが実行されません- マニフェスト内のカスタムコンポーネントパスは追加的です。デフォルトを置き換えるのではなく拡張します
Cursor バンドル
マーカー:.cursor-plugin/plugin.json
オプションのコンテンツ:skills/、.cursor/commands/、.cursor/agents/、.cursor/rules/、.cursor/hooks.json、.mcp.json
.cursor/commands/はスキルコンテンツとして扱われます.cursor/rules/、.cursor/agents/、.cursor/hooks.jsonは検出のみ行われます
検出の優先順位
OpenClaw は最初にネイティブ Plugin 形式を確認します。
openclaw.plugin.json、またはopenclaw.extensionsを含む有効なpackage.json— ネイティブ Pluginとして扱われます- バンドルマーカー(
.codex-plugin/、.claude-plugin/、またはデフォルトの Claude/Cursor レイアウト)— バンドルとして扱われます
ディレクトリに両方が含まれている場合、OpenClaw はネイティブパスを使用します。これにより、デュアルフォーマットパッケージがバンドルとして部分的にインストールされることを防ぎます。
ランタイム依存関係とクリーンアップ
- サードパーティ製の互換バンドルでは、起動時の
npm install修復は行われません。openclaw plugins installを通じてインストールし、必要なものをすべてインストール済み Plugin ディレクトリに同梱する必要があります。 - OpenClaw が所有するバンドル済み Plugin は、コアに軽量な形で同梱されるか、Plugin インストーラーからダウンロードできます。Gateway の起動時に、これらのためにパッケージマネージャーが実行されることはありません。
openclaw doctor --fixは古いローカルのバンドル済み Plugin インストールレコードを削除し、設定から引き続き参照されているものの、ローカル Plugin インデックスに存在しないダウンロード可能な Plugin を復旧できます。
セキュリティ
バンドルの信頼境界は、ネイティブ Plugin よりも狭くなっています。
- OpenClaw は任意のバンドルランタイムモジュールをプロセス内に読み込みません。
- Skills とフックパックのパスは Plugin ルート内に収まる必要があります(境界チェック済み)。
- 設定ファイルは同じ境界チェックを使用して読み込まれます。
- 対応する stdio MCP サーバーはサブプロセスとして起動される場合があります。
このため、バンドルはデフォルトでより安全ですが、サードパーティ製バンドルが公開する機能については、信頼できるコンテンツとして扱う必要があります。
トラブルシューティング
バンドルは検出されるが、機能が実行されない
openclaw plugins inspect <id> を実行します。機能が一覧に表示されていても、
未接続と記載されている場合、それはインストールの不具合ではなく、製品上の制限です。
Claude コマンドファイルが表示されない
バンドルが有効になっており、Markdown ファイルが検出済みの
commands/ または skills/ ルート内にあることを確認します。
Claude の設定が適用されない
settings.json の埋め込み OpenClaw 設定のみがサポートされています。OpenClaw は
バンドル設定を未加工の設定パッチとして扱いません。
Claude フックが実行されない
hooks/hooks.json は検出専用です。実行可能なフックが必要な場合は、
OpenClaw のフックパックレイアウトを使用するか、ネイティブ Plugin を配布してください。
関連項目
- Plugin のインストールと設定
- Plugin の構築 - ネイティブ Plugin を作成する
- Plugin マニフェスト - ネイティブマニフェストのスキーマ