CLI commands

Plugin

Gateway Plugin、フックパック、互換バンドルを管理します。

コマンド

openclaw plugins list
openclaw plugins list --enabled
openclaw plugins list --verbose
openclaw plugins list --json
openclaw plugins search <query>
openclaw plugins search <query> --limit 20
openclaw plugins search <query> --json
openclaw plugins install <path-or-spec>
openclaw plugins inspect <id>
openclaw plugins inspect <id> --runtime
openclaw plugins inspect <id> --json
openclaw plugins inspect --all
openclaw plugins info <id>
openclaw plugins enable <id>
openclaw plugins disable <id>
openclaw plugins registry
openclaw plugins registry --refresh
openclaw plugins uninstall <id>
openclaw plugins doctor
openclaw plugins update <id-or-npm-spec>
openclaw plugins update --all
openclaw plugins marketplace list <marketplace>
openclaw plugins marketplace list <marketplace> --json

遅いインストール、検査、アンインストール、またはレジストリ更新の調査では、OPENCLAW_PLUGIN_LIFECYCLE_TRACE=1 を付けてコマンドを実行します。トレースはフェーズごとのタイミングを stderr に書き込み、JSON 出力を解析可能なままにします。デバッグを参照してください。

インストール

openclaw plugins search "calendar"                   # search ClawHub plugins
openclaw plugins install <package>                      # npm by default
openclaw plugins install clawhub:<package>              # ClawHub only
openclaw plugins install npm:<package>                  # npm only
openclaw plugins install npm-pack:<path.tgz>            # local npm pack through npm install semantics
openclaw plugins install git:github.com/<owner>/<repo>  # git repo
openclaw plugins install git:github.com/<owner>/<repo>@<ref>
openclaw plugins install <package> --force              # overwrite existing install
openclaw plugins install <package> --pin                # pin version
openclaw plugins install <package> --dangerously-force-unsafe-install
openclaw plugins install <path>                         # local path
openclaw plugins install <plugin>@<marketplace>         # marketplace
openclaw plugins install <plugin> --marketplace <name>  # marketplace (explicit)
openclaw plugins install <plugin> --marketplace https://github.com/<owner>/<repo>

plugins search は、インストール可能な Plugin パッケージを ClawHub に問い合わせ、インストール可能なパッケージ名を出力します。検索対象は code-plugin パッケージと bundle-plugin パッケージであり、Skills ではありません。ClawHub Skills には openclaw skills search を使用してください。

Config インクルードと無効な設定の修復

plugins セクションが単一ファイルの $include によって裏付けられている場合、plugins install/update/enable/disable/uninstall はそのインクルード先ファイルに書き込み、openclaw.json は変更しません。ルートインクルード、インクルード配列、兄弟オーバーライドを持つインクルードは、平坦化する代わりにフェイルクローズします。サポートされる形については、Config インクルードを参照してください。

インストール中に設定が無効な場合、通常 plugins install はフェイルクローズし、先に openclaw doctor --fix を実行するよう通知します。Gateway の起動中およびホットリロード中は、無効な Plugin 設定は他の無効な設定と同様にフェイルクローズします。openclaw doctor --fix は無効な Plugin エントリを隔離できます。インストール時に文書化されている唯一の例外は、openclaw.install.allowInvalidConfigRecovery に明示的にオプトインしている Plugin 向けの、限定的なバンドル済み Plugin 復旧パスです。

--force と再インストール対更新

--force は既存のインストール先を再利用し、すでにインストール済みの Plugin またはフックパックをその場で上書きします。同じ id を新しいローカルパス、アーカイブ、ClawHub パッケージ、または npm アーティファクトから意図的に再インストールする場合に使用します。すでに追跡されている npm Plugin の通常のアップグレードでは、openclaw plugins update <id-or-npm-spec> を推奨します。

すでにインストール済みの Plugin id に対して plugins install を実行すると、OpenClaw は停止し、通常のアップグレードでは plugins update <id-or-npm-spec> を、別のソースから現在のインストールを本当に上書きしたい場合は plugins install <package> --force を案内します。

--pin の範囲

--pin は npm インストールにのみ適用されます。git: インストールではサポートされません。ソースをピン留めしたい場合は、git:github.com/acme/[email protected] のような明示的な git ref を使用してください。--marketplace でもサポートされません。マーケットプレイスインストールは npm spec ではなく、マーケットプレイスのソースメタデータを保持するためです。

--dangerously-force-unsafe-install

--dangerously-force-unsafe-install は、組み込みの危険コードスキャナーの誤検知に対する非常用オプションです。組み込みスキャナーが critical の検出結果を報告してもインストールの続行を許可しますが、Plugin の before_install フックポリシーブロックをバイパスすることはなく、スキャン失敗をバイパスすることもありません

この CLI フラグは、Plugin の install/update フローに適用されます。Gateway が処理する skill 依存関係のインストールでは、対応する dangerouslyForceUnsafeInstall リクエストオーバーライドを使用します。一方、openclaw skills install は別個の ClawHub skill ダウンロード/インストールフローのままです。

ClawHub に公開した Plugin がレジストリスキャンでブロックされた場合は、ClawHub の公開者向け手順を使用してください。

フックパックと npm spec

plugins install は、package.jsonopenclaw.hooks を公開するフックパックのインストール面でもあります。フィルタリングされたフックの可視性とフックごとの有効化には openclaw hooks を使用し、パッケージインストールには使用しません。

Npm spec はレジストリのみです(パッケージ名 + 任意の正確なバージョンまたはdist-tag)。Git/URL/file spec と semver 範囲は拒否されます。依存関係のインストールは、安全のため --ignore-scripts を付けてプロジェクトローカルに実行されます。シェルにグローバル npm install 設定がある場合でも同様です。管理対象 Plugin の npm ルートは OpenClaw のパッケージレベル npm overrides を継承するため、ホストのセキュリティピンは hoist された Plugin 依存関係にも適用されます。

npm 解決を明示したい場合は npm:<package> を使用します。ローンチ切り替え期間中は、裸のパッケージ spec も npm から直接インストールされます。

裸の spec と @latest は安定版トラックに留まります。2026.5.3-1 のような従来の OpenClaw 修正版も、このチェックでは引き続き安定版リリースとして扱われるため、古いパッケージも安全に更新され続けます。新しい月次サポートラインの作業では、ハイフン付き修正サフィックスではなく通常の SemVer パッチ番号を使用する予定です。npm がデフォルトラインの spec をプレリリースに解決した場合、OpenClaw は停止し、@beta/@rc のようなプレリリースタグ、または @1.2.3-beta.4 のような正確なプレリリースバージョンで明示的にオプトインするよう求めます。

裸のインストール spec が公式 Plugin id(例: diffs)と一致する場合、OpenClaw はカタログエントリを直接インストールします。同じ名前の npm パッケージをインストールするには、明示的なスコープ付き spec(例: @scope/diffs)を使用してください。

Git リポジトリ

git リポジトリから直接インストールするには git:<repo> を使用します。サポートされる形式には、git:github.com/owner/repogit:owner/repo、完全な https://ssh://git://file://、および git@host:owner/repo.git クローン URL が含まれます。インストール前にブランチ、タグ、またはコミットをチェックアウトするには、@<ref> または #<ref> を追加します。

Git インストールは一時ディレクトリにクローンし、要求された ref がある場合はそれをチェックアウトしてから、通常の Plugin ディレクトリインストーラーを使用します。つまり、マニフェスト検証、危険コードスキャン、パッケージマネージャーのインストール作業、インストール記録は npm インストールと同様に動作します。記録された git インストールには、ソース URL/ref と解決済みコミットが含まれるため、openclaw plugins update は後でソースを再解決できます。

git からインストールした後は、openclaw plugins inspect <id> --runtime --json を使用して、gateway メソッドや CLI コマンドなどのランタイム登録を確認します。Plugin が api.registerCli で CLI ルートを登録した場合は、そのコマンドを OpenClaw ルート CLI 経由で直接実行します。例: openclaw demo-plugin ping

アーカイブ

サポートされるアーカイブ: .zip.tgz.tar.gz.tar。ネイティブ OpenClaw Plugin アーカイブは、展開された Plugin ルートに有効な openclaw.plugin.json を含む必要があります。package.json だけを含むアーカイブは、OpenClaw がインストール記録を書き込む前に拒否されます。

ファイルが npm-pack tarball であり、レジストリインストールで使用されるものと同じ管理対象 npm ルートのインストールパスをテストしたい場合は、npm-pack:<path.tgz> を使用します。これには、package-lock.json 検証、hoist された依存関係のスキャン、npm インストール記録が含まれます。通常のアーカイブパスは、引き続き Plugin extensions ルート配下にローカルアーカイブとしてインストールされます。

Claude マーケットプレイスインストールもサポートされています。

ClawHub インストールでは、明示的な clawhub:<package> ロケーターを使用します。

openclaw plugins install clawhub:openclaw-codex-app-server
openclaw plugins install clawhub:[email protected]

ローンチ切り替え期間中、裸の npm-safe Plugin spec はデフォルトで npm からインストールされます。

openclaw plugins install openclaw-codex-app-server

npm のみの解決を明示するには npm: を使用します。

openclaw plugins install npm:openclaw-codex-app-server
openclaw plugins install npm:@scope/[email protected]

OpenClaw は、インストール前に公開されている Plugin API / 最小 Gateway 互換性を確認します。選択された ClawHub バージョンが ClawPack アーティファクトを公開している場合、OpenClaw はバージョン付き npm-pack .tgz をダウンロードし、ClawHub ダイジェストヘッダーとアーティファクトダイジェストを検証してから、通常のアーカイブパス経由でインストールします。ClawPack メタデータがない古い ClawHub バージョンは、引き続き従来のパッケージアーカイブ検証パス経由でインストールされます。記録されたインストールは、後続の更新のために ClawHub ソースメタデータ、アーティファクト種別、npm integrity、npm shasum、tarball 名、ClawPack ダイジェスト情報を保持します。 バージョン指定なしの ClawHub インストールは、openclaw plugins update が新しい ClawHub リリースを追跡できるように、バージョン指定なしの記録済み spec を保持します。clawhub:[email protected]clawhub:pkg@beta などの明示的なバージョンまたはタグセレクターは、そのセレクターに固定されたままです。

マーケットプレイス短縮表記

マーケットプレイス名が Claude のローカルレジストリキャッシュ ~/.claude/plugins/known_marketplaces.json に存在する場合は、plugin@marketplace 短縮表記を使用します。

openclaw plugins marketplace list <marketplace-name>
openclaw plugins install <plugin-name>@<marketplace-name>

マーケットプレイスソースを明示的に渡したい場合は、--marketplace を使用します。

openclaw plugins install <plugin-name> --marketplace <marketplace-name>
openclaw plugins install <plugin-name> --marketplace <owner/repo>
openclaw plugins install <plugin-name> --marketplace https://github.com/<owner>/<repo>
openclaw plugins install <plugin-name> --marketplace ./my-marketplace

マーケットプレイスソース

  • ~/.claude/plugins/known_marketplaces.json の Claude 既知マーケットプレイス名
  • ローカルマーケットプレイスルートまたは marketplace.json パス
  • owner/repo などの GitHub repo 短縮表記
  • https://github.com/owner/repo などの GitHub repo URL
  • git URL

リモートマーケットプレイスルール

GitHub または git から読み込まれるリモートマーケットプレイスでは、Plugin エントリはクローンされたマーケットプレイス repo の内部に留まる必要があります。OpenClaw はその repo からの相対パスソースを受け入れ、リモートマニフェスト内の HTTP(S)、絶対パス、git、GitHub、およびその他の非パス Plugin ソースを拒否します。

ローカルパスとアーカイブについて、OpenClaw は次を自動検出します。

  • ネイティブ OpenClaw Plugins (openclaw.plugin.json)
  • Codex 互換バンドル (.codex-plugin/plugin.json)
  • Claude 互換バンドル (.claude-plugin/plugin.json またはデフォルトの Claude コンポーネントレイアウト)
  • Cursor 互換バンドル (.cursor-plugin/plugin.json)

一覧

openclaw plugins list
openclaw plugins list --enabled
openclaw plugins list --verbose
openclaw plugins list --json
openclaw plugins search <query>
openclaw plugins search <query> --limit 20
openclaw plugins search <query> --json
--enabledboolean

有効な Plugins のみを表示します。

--verboseboolean

テーブルビューから、ソース/出所/バージョン/アクティベーションメタデータを含む Plugin ごとの詳細行に切り替えます。

--jsonboolean

機械可読のインベントリに加え、レジストリ診断とパッケージ依存関係のインストール状態を出力します。

plugins search はリモート ClawHub カタログ検索です。ローカル状態の検査、config の変更、パッケージのインストール、Plugin ランタイムコードの読み込みは行いません。検索結果には、ClawHub パッケージ名、ファミリー、チャネル、バージョン、概要、および openclaw plugins install clawhub:<package> などのインストールヒントが含まれます。

パッケージ化された Docker イメージ内でバンドル Plugin を扱う場合は、Plugin ソースディレクトリを、対応するパッケージ化済みソースパス、たとえば /app/extensions/synology-chat に bind-mount します。OpenClaw は /app/dist/extensions/synology-chat より前にそのマウントされたソースオーバーレイを検出します。単にコピーされたソースディレクトリは無効のままなので、通常のパッケージ化インストールは引き続きコンパイル済み dist を使用します。

ランタイム hook のデバッグには次を使用します。

  • openclaw plugins inspect <id> --runtime --json は、モジュール読み込みの検査パスから登録済み hooks と診断を表示します。ランタイム検査は依存関係をインストールしません。従来の依存関係状態を整理したり、config で参照されている不足したダウンロード可能 Plugins を復旧したりするには、openclaw doctor --fix を使用してください。
  • openclaw gateway status --deep --require-rpc は、到達可能な Gateway、サービス/プロセスのヒント、config パス、RPC ヘルスを確認します。
  • 非バンドル会話 hooks (llm_input, llm_output, before_model_resolve, before_agent_reply, before_agent_run, before_agent_finalize, agent_end) には plugins.entries.<id>.hooks.allowConversationAccess=true が必要です。

ローカルディレクトリのコピーを避けるには --link を使用します (plugins.load.paths に追加されます)。

openclaw plugins install -l ./my-plugin

Plugin インデックス

Plugin インストールメタデータは、ユーザー config ではなく機械管理の状態です。インストールと更新は、アクティブな OpenClaw 状態ディレクトリ配下の plugins/installs.json にこれを書き込みます。そのトップレベルの installRecords マップは、壊れている、または欠落している Plugin マニフェストのレコードを含む、インストールメタデータの永続的なソースです。plugins 配列は、マニフェストから導出されたコールドレジストリキャッシュです。このファイルには編集禁止の警告が含まれ、openclaw plugins update、アンインストール、診断、コールド Plugin レジストリで使用されます。

OpenClaw が config 内に出荷済みの従来の plugins.installs レコードを見つけた場合、ランタイム読み取りはそれらを openclaw.json を書き換えずに互換性入力として扱います。明示的な Plugin 書き込みと openclaw doctor --fix は、config 書き込みが許可されている場合にそれらのレコードを Plugin インデックスへ移動し、config キーを削除します。どちらかの書き込みが失敗した場合、インストールメタデータが失われないように config レコードは保持されます。

アンインストール

openclaw plugins uninstall <id>
openclaw plugins uninstall <id> --dry-run
openclaw plugins uninstall <id> --keep-files

uninstall は、該当する場合に plugins.entries、永続化された Plugin インデックス、Plugin allow/deny list エントリ、リンクされた plugins.load.paths エントリから Plugin レコードを削除します。--keep-files が設定されていない限り、アンインストールは OpenClaw の Plugin extensions ルート内にある追跡対象の管理インストールディレクトリも削除します。Active Memory Plugins では、memory slot が memory-core にリセットされます。

更新

openclaw plugins update <id-or-npm-spec>
openclaw plugins update --all
openclaw plugins update <id-or-npm-spec> --dry-run
openclaw plugins update @openclaw/voice-call
openclaw plugins update openclaw-codex-app-server --dangerously-force-unsafe-install

更新は、管理対象 Plugin インデックスで追跡されている Plugin インストールと、hooks.internal.installs で追跡されている hook-pack インストールに適用されます。

Plugin id と npm spec の解決

Plugin id を渡すと、OpenClaw はその Plugin に記録されたインストール spec を再利用します。つまり、以前に保存された @beta などの dist-tags や正確に固定されたバージョンは、後続の update <id> 実行でも引き続き使用されます。

npm インストールでは、dist-tag または正確なバージョンを含む明示的な npm package spec を渡すこともできます。OpenClaw はそのパッケージ名を追跡対象の Plugin レコードに逆解決し、そのインストール済み Plugin を更新して、将来の id ベース更新用に新しい npm spec を記録します。

バージョンやタグなしで npm パッケージ名を渡した場合も、追跡対象の Plugin レコードに逆解決されます。Plugin が正確なバージョンに固定されていて、それをレジストリのデフォルトリリースラインに戻したい場合に使用します。

ベータチャネル更新

openclaw plugins update は、新しい spec を渡さない限り、追跡対象の Plugin spec を再利用します。openclaw update はさらに、アクティブな OpenClaw 更新チャネルを認識します。ベータチャネルでは、デフォルトラインの npm および ClawHub Plugin レコードはまず @beta を試し、Plugin のベータリリースが存在しない場合は記録済みの default/latest spec にフォールバックします。正確なバージョンと明示的なタグは、そのセレクターに固定されたままです。

OpenClaw はまだ LTS または monthly support Plugin チャネルを公開していません。計画中の support-line 作業では、Plugin パッケージと ClawHub タグが core パッケージと同じ support line に従う必要があります。

バージョン確認と integrity drift

ライブ npm 更新の前に、OpenClaw はインストール済みパッケージバージョンを npm registry メタデータと照合します。インストール済みバージョンと記録済みアーティファクト ID が解決済みターゲットとすでに一致している場合、更新はダウンロード、再インストール、openclaw.json の書き換えを行わずにスキップされます。

保存された integrity hash が存在し、取得したアーティファクトハッシュが変化した場合、OpenClaw はそれを npm artifact drift として扱います。対話型の openclaw plugins update コマンドは、期待されるハッシュと実際のハッシュを表示し、続行前に確認を求めます。非対話型の更新ヘルパーは、呼び出し元が明示的な継続ポリシーを指定しない限り fail closed します。

更新時の --dangerously-force-unsafe-install

--dangerously-force-unsafe-install は、Plugin 更新中の built-in dangerous-code scan の false positives に対する break-glass override として、plugins update でも利用できます。それでも Plugin before_install ポリシーブロックや scan-failure blocking はバイパスされず、Plugin 更新にのみ適用され、hook-pack 更新には適用されません。

検査

openclaw plugins inspect <id>
openclaw plugins inspect <id> --runtime
openclaw plugins inspect <id> --json

Inspect はデフォルトでは Plugin ランタイムをインポートせずに、ID、読み込み状態、ソース、マニフェスト機能、ポリシーフラグ、診断、インストールメタデータ、バンドル機能、および検出された MCP または LSP server サポートを表示します。--runtime を追加すると Plugin モジュールを読み込み、登録済み hooks、tools、commands、services、gateway methods、HTTP routes を含めます。ランタイム検査は不足している Plugin 依存関係を直接報告します。インストールと修復は openclaw plugins installopenclaw plugins updateopenclaw doctor --fix に留まります。

Plugin 所有の CLI コマンドは、ルート openclaw コマンドグループとしてインストールされます。inspect --runtimecliCommands の下にコマンドを表示したら、openclaw <command> ... として実行します。たとえば demo-git を登録する Plugin は、openclaw demo-git ping で検証できます。

各 Plugin は、ランタイムで実際に登録する内容によって分類されます。

  • plain-capability — 1 つの機能タイプ(例: プロバイダー専用 Plugin)
  • hybrid-capability — 複数の機能タイプ(例: テキスト + 音声 + 画像)
  • hook-only — フックのみで、機能やサーフェスはなし
  • non-capability — ツール/コマンド/サービスはあるが機能はなし

機能モデルの詳細は Plugin の形状 を参照してください。

Doctor

openclaw plugins doctor

doctor は、Plugin の読み込みエラー、マニフェスト/検出診断、互換性通知を報告します。すべて問題ない場合は No plugin issues detected. と表示します。

設定済みの Plugin がディスク上に存在するものの、ローダーのパス安全性チェックによってブロックされている場合、設定検証は Plugin エントリを保持し、present but blocked として報告します。plugins.entries.<id>plugins.allow 設定を削除するのではなく、パス所有権や world-writable 権限など、直前のブロックされた Plugin の診断を修正してください。

register/activate エクスポートの欠落など、モジュール形状の失敗については、OPENCLAW_PLUGIN_LOAD_DEBUG=1 を指定して再実行すると、診断出力にコンパクトなエクスポート形状の概要が含まれます。

レジストリ

openclaw plugins registry
openclaw plugins registry --refresh
openclaw plugins registry --json

ローカル Plugin レジストリは、インストール済み Plugin の ID、有効化状態、ソースメタデータ、コントリビューション所有権について、OpenClaw が永続化するコールド読み取りモデルです。通常の起動、プロバイダー所有者の検索、チャネル設定の分類、Plugin インベントリは、Plugin ランタイムモジュールをインポートせずにこれを読み取ることができます。

plugins registry を使用すると、永続化されたレジストリが存在するか、最新か、古いかを確認できます。--refresh を使用すると、永続化された Plugin インデックス、設定ポリシー、マニフェスト/パッケージメタデータから再構築します。これは修復パスであり、ランタイム有効化パスではありません。

openclaw doctor --fix は、レジストリ周辺の管理対象 npm ドリフトも修復します。管理対象 Plugin npm ルート配下にある孤立または復元された @openclaw/* パッケージがバンドル済み Plugin を隠している場合、doctor はその古いパッケージを削除し、レジストリを再構築して、起動時にバンドル済みマニフェストに対して検証できるようにします。

マーケットプレイス

openclaw plugins marketplace list <source>
openclaw plugins marketplace list <source> --json

マーケットプレイス一覧は、ローカルマーケットプレイスパス、marketplace.json パス、owner/repo のような GitHub 省略形、GitHub リポジトリ URL、または git URL を受け付けます。--json は、解決されたソースラベルに加えて、解析済みのマーケットプレイスマニフェストと Plugin エントリを出力します。

関連