Plugins
Plugin バンドル
OpenClawは、3つの外部エコシステム(Codex、Claude、 Cursor)からPluginをインストールできます。これらはバンドルと呼ばれます。つまり、 OpenClawがSkills、フック、MCPツールのようなネイティブ機能へマッピングするコンテンツとメタデータのパックです。
バンドルが存在する理由
多くの有用なPluginは、Codex、Claude、またはCursor形式で公開されています。作者に ネイティブOpenClaw Pluginとして書き直すことを求める代わりに、OpenClawは これらの形式を検出し、対応するコンテンツをネイティブ機能セットへマッピングします。 つまり、ClaudeコマンドパックやCodex skillバンドルをインストールして、 すぐに使えます。
バンドルをインストールする
ディレクトリ、アーカイブ、またはマーケットプレイスからインストールする
# ローカルディレクトリ
openclaw plugins install ./my-bundle
# アーカイブ
openclaw plugins install ./my-bundle.tgz
# Claudeマーケットプレイス
openclaw plugins marketplace list <marketplace-name>
openclaw plugins install <plugin-name>@<marketplace-name>
検出を確認する
openclaw plugins list
openclaw plugins inspect <id>
バンドルは、codex、claude、またはcursorのサブタイプを持つFormat: bundleとして表示されます。
再起動して使用する
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.mdhandler.tsまたはhandler.js
Pi向けMCP
- 有効なバンドルはMCPサーバー設定を提供できます
- OpenClawは、バンドルMCP設定を有効な埋め込みPi設定に
mcpServersとしてマージします - OpenClawは、stdioサーバーを起動するかHTTPサーバーへ接続することで、 埋め込みPiエージェントターン中に対応するバンドルMCPツールを公開します
codingおよびmessagingツールプロファイルには、デフォルトでバンドルMCPツールが含まれます。 エージェントまたはGatewayでオプトアウトするにはtools.deny: ["bundle-mcp"]を使用します- プロジェクトローカルのPi設定はバンドルデフォルトの後にも適用されるため、 必要に応じてワークスペース設定でバンドルMCPエントリを上書きできます
- バンドルMCPツールカタログは登録前に決定的にソートされるため、
上流の
listTools()の順序変更によってプロンプトキャッシュのツールブロックが頻繁に変化することはありません
トランスポート
MCPサーバーはstdioまたはHTTPトランスポートを使用できます。
Stdioは子プロセスを起動します。
{
"mcp": {
"servers": {
"my-server": {
"command": "node",
"args": ["server.js"],
"env": { "PORT": "3000" }
}
}
}
}
HTTPは、デフォルトではsseで、要求された場合はstreamable-httpで実行中のMCPサーバーへ接続します。
{
"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 setとopenclaw doctor --fixは一般的な別名を正規化します。- 許可されるURLスキームは
http:とhttps:のみです headersの値は${ENV_VAR}補間に対応しますcommandとurlの両方を持つサーバーエントリは拒否されます- URL認証情報(userinfoとクエリパラメーター)は、ツール 説明とログから秘匿されます
connectionTimeoutMsは、stdioとHTTPの両方のトランスポートについて、 デフォルトの30秒接続タイムアウトを上書きします
ツール命名
OpenClawは、serverName__toolName形式のプロバイダー安全な名前でバンドルMCPツールを登録します。
たとえば、memory_searchツールを公開する"vigil-harbor"キーのサーバーは、
vigil-harbor__memory_searchとして登録されます。
A-Za-z0-9_-以外の文字は-に置き換えられます- サーバープレフィックスは30文字に制限されます
- 完全なツール名は64文字に制限されます
- 空のサーバー名は
mcpにフォールバックします - サニタイズ後に衝突する名前は、数値サフィックスで曖昧さを解消します
- 最終的に公開されるツール順序は安全な名前によって決定的になり、繰り返しのPi ターンでキャッシュが安定します
- プロファイルフィルタリングは、1つのバンドルMCPサーバーからのすべてのツールを
bundle-mcpが所有するPluginとして扱うため、プロファイルの許可リストと拒否リストには、 個別の公開ツール名またはbundle-mcpPluginキーのいずれかを含められます
埋め込みPi設定
- Claudeの
settings.jsonは、バンドルが有効な場合にデフォルトの埋め込みPi設定としてインポートされます - OpenClawは、シェル上書きキーを適用前にサニタイズします
サニタイズされるキー:
shellPathshellCommandPrefix
埋め込みPi LSP
- 有効なClaudeバンドルはLSPサーバー設定を提供できます
- OpenClawは
.lsp.jsonに加え、マニフェスト宣言のlspServersパスを読み込みます - バンドルLSP設定は、有効な埋め込みPi LSPデフォルトへマージされます
- 現在実行可能なのは、対応済みのstdioバックエンドLSPサーバーのみです。非対応の
トランスポートも
openclaw plugins inspect <id>には表示されます
検出されるが実行されないもの
これらは認識され診断に表示されますが、OpenClawは実行しません。
- Claudeの
agents、hooks.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.json、settings.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形式を確認します。
openclaw.plugin.json、またはopenclaw.extensionsを持つ有効なpackage.json— ネイティブPluginとして扱われます- バンドルマーカー(
.codex-plugin/、.claude-plugin/、またはデフォルトのClaude/Cursorレイアウト) — バンドルとして扱われます
ディレクトリに両方が含まれる場合、OpenClawはネイティブ経路を使用します。これにより、 デュアル形式パッケージがバンドルとして部分的にインストールされることを防ぎます。
ランタイム依存関係とクリーンアップ
- サードパーティ互換バンドルでは、起動時の
npm install修復は行われません。それらはopenclaw plugins installを通じてインストールされ、必要なものをすべて インストール済みPluginディレクトリ内に同梱している必要があります。 - OpenClaw所有の同梱Pluginは、core内で軽量に同梱されるか、 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を提供してください。
関連
- Pluginのインストールと設定
- Pluginの構築 — ネイティブPluginを作成する
- Pluginマニフェスト — ネイティブマニフェストスキーマ