CLI commands

外掛

管理閘道外掛、鉤子套件和相容套件組合。

命令

bash
openclaw plugins list [--enabled] [--verbose] [--json]openclaw plugins search <query> [--limit <n>] [--json]openclaw plugins install <path-or-spec> [--link] [--force] [--pin] [--marketplace <source>]openclaw plugins inspect <id> [--runtime] [--json]openclaw plugins inspect --all [--runtime] [--json]openclaw plugins info <id>                    # inspect 的別名openclaw plugins enable <id>openclaw plugins disable <id>openclaw plugins uninstall <id> [--dry-run] [--keep-files] [--force]openclaw plugins update <id-or-npm-spec> | --all [--dry-run]openclaw plugins registry [--refresh] [--json]openclaw plugins doctoropenclaw plugins init <id> [--name <name>] [--type tool|provider] [--directory <path>]openclaw plugins build [--entry <path>] [--check]openclaw plugins validate [--entry <path>]openclaw plugins marketplace entries [--offline] [--feed-profile <name>] [--json]openclaw plugins marketplace list <source> [--json]openclaw plugins marketplace refresh [--feed-profile <name>] [--expected-sha256 <sha256>] [--json]

若要調查緩慢的安裝、檢查、解除安裝或登錄檔重新整理,請使用 OPENCLAW_PLUGIN_LIFECYCLE_TRACE=1 執行命令。追蹤會將各階段的計時寫入 stderr,並讓 JSON 輸出保持可解析。請參閱偵錯

編寫

bash
openclaw plugins init stock-quotes --name "Stock Quotes"cd stock-quotesnpm run plugin:buildnpm run plugin:validate

plugins init 預設會建立最小化的 TypeScript 工具外掛。第一個 引數是外掛 ID;--name 設定顯示名稱。OpenClaw 會將此 ID 用於預設輸出目錄和套件命名。工具鷹架使用 defineToolPlugin,並產生 package.json 指令碼 plugin:buildplugin:validate,這些指令碼會先建置,再呼叫 openclaw plugins build/validate

plugins build 會匯入已建置的進入點、讀取其靜態工具中繼資料、寫入 openclaw.plugin.json,並保持 package.jsonopenclaw.extensions 一致。 plugins validate 會檢查產生的資訊清單、套件中繼資料和 目前進入點匯出是否仍然一致。完整的編寫工作流程請參閱工具外掛

鷹架會寫入 TypeScript 原始碼,但會從已建置的 ./dist/index.js 進入點產生中繼資料,因此此工作流程也適用於已發布的命令列介面。當進入點並非預設套件進入點時,請使用 --entry <path>。在 CI 中使用 plugins build --check,可在產生的中繼資料過時時使其失敗,而不會 重寫檔案。

供應商鷹架

bash
openclaw plugins init acme-models --name "Acme Models" --type providercd acme-modelsnpm installnpm run buildnpm testnpm run validate

供應商鷹架會建立通用的 OpenAI 相容模型供應商外掛, 其中包含 API 金鑰驗證的配管、執行 clawhub package validatenpm run validate 指令碼、ClawHub 套件中繼資料,以及可手動 分派的 GitHub Actions 工作流程,供日後透過 GitHub OIDC 進行受信任的發布。供應商鷹架不會產生 Skills,也不使用 openclaw plugins build/validate;這些命令用於工具 鷹架的產生中繼資料路徑。

發布前,請將預留位置 API 基底 URL、模型目錄、文件 路由、認證資訊文字和 README 內容替換為實際的供應商詳細資料。首次發布至 ClawHub 及設定受信任發布者時,請使用 產生的 README。

安裝

bash
openclaw plugins search "calendar"                      # 搜尋 ClawHub 外掛openclaw plugins install @openclaw/<package>            # 受信任的官方目錄openclaw plugins install <package>                       # 任意 npm 套件openclaw plugins install clawhub:<package>                # 僅限 ClawHubopenclaw plugins install npm:<package>                    # 僅限 npmopenclaw plugins install npm-pack:<path.tgz>               # 本機 npm-pack tarballopenclaw plugins install git:github.com/<owner>/<repo>     # git 儲存庫openclaw plugins install git:github.com/<owner>/<repo>@<ref>openclaw plugins install <path>                            # 本機路徑或封存檔openclaw plugins install -l <path>                         # 建立連結而非複製openclaw plugins install <plugin>@<marketplace>             # 市集簡寫openclaw plugins install <plugin> --marketplace <name>      # 市集(明確指定)openclaw plugins install <package> --force                  # 確認來源/覆寫現有項目openclaw plugins install <package> --pin                    # 鎖定解析出的 npm 版本openclaw plugins install clawhub:<package> --acknowledge-clawhub-riskopenclaw plugins install <package> --dangerously-force-unsafe-install

測試設定期間安裝的維護者,可以使用受保護的環境變數覆寫自動外掛安裝 來源。請參閱 外掛安裝覆寫

plugins search 會向 ClawHub 查詢可安裝的 code-pluginbundle-plugin 套件(不包含 Skills;請使用 openclaw skills search 查詢 Skills)。 預設 --limit 為 20,上限為 100。它只會讀取遠端目錄,不會 檢查本機狀態、變更設定、安裝套件或載入外掛執行階段。 結果包含 ClawHub 套件名稱、系列、通道、版本、 摘要,以及如 openclaw plugins install clawhub:<package> 的安裝提示。

設定引入與無效設定修復

如果你的 plugins 區段由單一檔案的 $include 支援,plugins install/update/enable/disable/uninstall 會直接寫入該引入檔案,並保持 openclaw.json 不變。根層級引入、引入陣列和包含同層覆寫的引入會採取關閉式失敗,而非攤平。支援的形狀請參閱設定引入

如果安裝前設定無效,plugins install 通常會採取關閉式失敗,並要求你先執行 openclaw doctor --fix。在閘道啟動和熱重新載入期間,無效的外掛設定會像其他任何無效設定一樣採取關閉式失敗;openclaw doctor --fix 可隔離無效的外掛項目。唯一的既有設定例外,是針對明確選擇加入 openclaw.install.allowInvalidConfigRecovery 的外掛所提供的狹義隨附外掛復原路徑。

當現有主機設定有效,但新安裝外掛本身的設定不存在時,OpenClaw 會將安裝記錄為已停用,而不會寫入無效的已啟用項目。請設定 plugins.entries.<id>.config,然後執行 openclaw plugins enable <id>。如果現有外掛設定項目存在但無效,安裝會失敗且不會重寫該項目。

--force 確認以及重新安裝與更新的差異

--force 會在不提示的情況下確認非 ClawHub 來源。它不會略過 security.installPolicy 或其餘安裝安全檢查。當外掛或鉤子套件已安裝時,它也會重複使用現有目標,並在原處覆寫。請在審查任意 npm、本機、封存檔、git 或市集來源後,或刻意重新安裝相同 ID 時使用。若要例行升級已追蹤的 npm 外掛,應優先使用 openclaw plugins update <id-or-npm-spec>

如果你針對已安裝的外掛 ID 執行 plugins install,OpenClaw 會停止,並引導你使用 plugins update <id-or-npm-spec> 進行一般升級;若你確實想要從不同來源覆寫目前的安裝,則改用 plugins install <package> --force。任意來源仍會顯示互動式來源警告;以非互動方式安裝時,必須在審查後傳入 --force。受信任的 ClawHub 和 OpenClaw 目錄來源不需要此旗標。搭配 --link 時,--force 會確認來源,但不會變更連結路徑的安裝模式。

--pin 範圍

--pin 僅適用於 npm 安裝,並會記錄解析後的確切 <name>@<version>。它不支援搭配 git: 安裝(請改為在規格中釘選參照,例如 git:github.com/acme/plugin@v1.2.3),也不支援搭配 --marketplace(市集安裝會保存市集來源中繼資料,而非 npm 規格)。

--dangerously-force-unsafe-install

--dangerously-force-unsafe-install 已淘汰,現在不會執行任何操作。OpenClaw 不再針對外掛安裝執行內建的安裝階段危險程式碼封鎖。

需要主機特定的安裝政策時,請使用由操作者擁有的 security.installPolicy 介面。外掛 before_install 鉤子是外掛執行階段的生命週期鉤子,並非命令列介面安裝的主要政策邊界。

如果你發佈到 ClawHub 的外掛因登錄檔掃描而遭隱藏或封鎖,請依照 ClawHub 發佈中的發佈者步驟操作。--dangerously-force-unsafe-install 不會要求 ClawHub 重新掃描外掛,也不會將遭封鎖的版本設為公開。

--acknowledge-clawhub-risk

社群 ClawHub 安裝會在下載前檢查所選版本的信任記錄。如果 ClawHub 停用該版本的下載、回報惡意掃描發現,或將該版本置於封鎖性審核狀態(隔離、撤銷),無論是否使用此旗標,OpenClaw 都會直接拒絕。對於非封鎖性的高風險掃描狀態或審核狀態,OpenClaw 會顯示信任詳細資料,並在繼續前要求確認。

僅在檢閱 ClawHub 警告並決定略過互動式提示繼續後,才使用 --acknowledge-clawhub-risk。待處理或過期(尚未確認無問題)的掃描結果會顯示警告,但不要求確認。ClawHub 官方套件和 OpenClaw 隨附的外掛來源會完全略過此版本信任檢查。

鉤子套件與 npm 規格

plugins install 也是安裝鉤子套件的介面;這類套件會在 package.json 中公開 openclaw.hooks。請使用 openclaw hooks 篩選鉤子的可見性並逐一啟用鉤子,而非安裝套件。

Npm 規格僅限登錄檔(套件名稱加上選用的確切版本dist-tag)。Git/URL/檔案規格和 semver 範圍都會遭拒絕。為了安全,即使你的 shell 有全域 npm 安裝設定,相依套件仍會在每個外掛各自的受管理 npm 專案中使用 --ignore-scripts 安裝。受管理的外掛 npm 專案會繼承 OpenClaw 套件層級的 npm overrides,因此主機安全性釘選也會套用至提升層級的外掛相依套件。

使用 npm:<package> 明確指定僅透過 npm 解析。在啟動切換期間,裸套件規格也會直接從 npm 安裝,除非它們符合官方外掛 ID。

與隨附外掛相符的原始 @openclaw/* 規格,會先解析為映像檔擁有的隨附副本,再回退至 npm。例如,openclaw plugins install @openclaw/discord@2026.5.20 --pin 會使用目前 OpenClaw 組建隨附的 Discord 外掛,而不會建立受管理的 npm 覆寫。若要強制使用外部 npm 套件,請使用 openclaw plugins install npm:@openclaw/discord@2026.5.20 --pin

裸規格和 @latest 會維持在穩定版本軌道。像 2026.5.3-1 這類帶日期戳記的 OpenClaw 修正版,在此檢查中視為穩定版本。如果 npm 將任一形式解析為預發行版本,OpenClaw 會停止並要求你使用預發行標籤(@beta/@rc)或確切的預發行版本(@1.2.3-beta.4)明確選擇加入。

對於未指定確切版本的 npm 安裝(npm:<package>npm:<package>@latest),OpenClaw 會在安裝前檢查解析後的套件中繼資料。如果最新穩定套件需要較新的 OpenClaw 外掛 API 或更高的主機最低版本,OpenClaw 會檢查較舊的穩定版本,並改為安裝最新的相容版本。確切版本和明確的 dist-tag 仍採嚴格模式:選取不相容的版本會失敗,並要求你升級 OpenClaw 或選擇相容版本。

如果裸安裝規格符合官方外掛 ID(例如 diffs),OpenClaw 會直接安裝目錄項目。若要安裝同名的 npm 套件,請使用明確的限定範圍規格(例如 @scope/diffs)。

Git 儲存庫

使用 git:<repo> 直接從 git 儲存庫安裝。支援的形式:git:github.com/owner/repogit:owner/repo、完整的 https://ssh://git://file://,以及 git@host:owner/repo.git 複製 URL。加入 @<ref>#<ref>,即可在安裝前取出分支、標籤或提交。

Git 安裝會複製到暫存目錄,並在有指定參照時取出該參照,接著使用一般的外掛目錄安裝程式,因此資訊清單驗證、操作者安裝政策、套件管理器安裝作業和安裝記錄的行為都與 npm 安裝相同。記錄的 git 安裝會包含來源 URL/參照與解析後的提交,讓 openclaw plugins update 日後可以重新解析來源。

從 git 安裝後,使用 openclaw plugins inspect <id> --runtime --json 驗證執行階段註冊,例如閘道方法和命令列介面命令。如果外掛使用 api.registerCli 註冊了命令列介面根命令,請直接透過 OpenClaw 根命令列介面執行該命令,例如 openclaw demo-plugin ping

封存檔

支援的封存檔:.zip.tgz.tar.gz.tar。原生 OpenClaw 外掛封存檔必須在解壓縮後的外掛根目錄包含有效的 openclaw.plugin.json;若封存檔僅包含 package.json,OpenClaw 會在寫入安裝記錄前拒絕它。

當檔案是 npm-pack tarball,且你想使用與登錄檔安裝相同的每個外掛受管理 npm 專案路徑時,請使用 npm-pack:<path.tgz>, 其中包括 package-lock.json 驗證、提升層級的相依套件掃描, 以及 npm 安裝記錄。一般封存檔路徑仍會以本機 封存檔形式安裝至外掛 extensions 根目錄下。

也支援 Claude 市集安裝。

ClawHub 安裝使用明確的 clawhub:<package> 定位器:

bash
openclaw plugins install clawhub:openclaw-codex-app-serveropenclaw plugins install clawhub:openclaw-codex-app-server@1.2.3

在啟動切換期間,符合 npm 安全命名規則的裸外掛規格預設會從 npm 安裝,除非它們符合官方外掛 ID:

bash
openclaw plugins install openclaw-codex-app-server

使用 npm: 明確指定僅透過 npm 解析:

bash
openclaw plugins install npm:openclaw-codex-app-serveropenclaw plugins install npm:@openclaw/discord@2026.5.20openclaw plugins install npm:@scope/plugin-name@1.0.1

OpenClaw 會在安裝前檢查公告的外掛 API/最低閘道相容性。當所選 ClawHub 版本發佈 ClawPack 成品時,OpenClaw 會下載帶版本的 npm-pack .tgz、驗證 ClawHub 摘要標頭和成品摘要,然後透過一般封存檔路徑安裝。沒有 ClawPack 中繼資料的舊版 ClawHub 版本仍會透過舊版套件封存檔驗證路徑安裝。記錄的安裝會保留其 ClawHub 來源中繼資料、成品種類、npm 完整性、npm shasum、tarball 名稱和 ClawPack 摘要資訊,以供日後更新使用。 未指定版本的 ClawHub 安裝會保留未指定版本的記錄規格,讓 openclaw plugins update 可以跟進較新的 ClawHub 版本;clawhub:pkg@1.2.3clawhub:pkg@beta 之類的明確版本或標籤選擇器,仍會釘選至該選擇器。

市集簡寫

當市集名稱存在於 Claude 的本機登錄檔快取 ~/.claude/plugins/known_marketplaces.json 中時,使用 plugin@marketplace 簡寫:

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

使用 --marketplace 明確傳入市集來源:

bash
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 路徑
  • GitHub 儲存庫簡寫,例如 owner/repo
  • GitHub 儲存庫 URL,例如 https://github.com/owner/repo
  • git URL

遠端市集規則

對於從 GitHub 或 git 載入的遠端市集,外掛項目必須位於複製的市集儲存庫內。OpenClaw 接受來自該儲存庫的相對路徑來源,並拒絕遠端資訊清單中的 HTTP(S)、絕對路徑、git、GitHub 和其他非路徑外掛來源。

對於本機路徑和封存檔,OpenClaw 會自動偵測:

  • 原生 OpenClaw 外掛(openclaw.plugin.json
  • Codex 相容套件組(.codex-plugin/plugin.json
  • Claude 相容套件組(.claude-plugin/plugin.json,或缺少該資訊清單檔案時的預設 Claude 元件配置)
  • Cursor 相容套件組(.cursor-plugin/plugin.json

受管理的本機安裝必須是外掛目錄或封存檔。獨立的 .js.mjs.cjs.ts 外掛檔案不會由 plugins install 複製到受管理的外掛 根目錄,也不會因為直接放置在 ~/.openclaw/extensions<workspace>/.openclaw/extensions 中而載入;這些 自動探索的根目錄會載入外掛套件或套件組目錄,並將 頂層指令碼檔案視為本機輔助程式而略過。請改為在 plugins.load.paths 中明確列出獨立檔案。

使用 -l/--link 指向本機外掛目錄而不複製它(會加入 plugins.load.paths):

bash
openclaw plugins install -l ./my-plugin

--link 不支援搭配 --marketplacegit: 安裝,且 要求本機路徑已經存在。若要建立非互動式本機連結, 請在檢閱來源後傳入 --force;它會確認來源,但不會 複製或覆寫連結的目錄。

列出

bash
openclaw plugins listopenclaw plugins list --enabledopenclaw plugins list --verboseopenclaw plugins list --json
--enabledboolean

僅顯示已啟用的外掛。

--verboseboolean

從表格檢視切換為逐一顯示外掛詳細資料的行,其中包含格式/來源/出處/版本/啟用中繼資料。

--jsonboolean

機器可讀的清單,以及登錄診斷資訊和套件相依項目安裝狀態。

若啟動記錄顯示 plugins.allow is empty; discovered non-bundled plugins may auto-load: ..., 請執行 openclaw plugins list --enabled --verbose,或使用列出的外掛 ID 執行 openclaw plugins inspect <id>,以確認外掛 ID,並將可信任的 ID 複製至 openclaw.json 中的 plugins.allow。若該 警告可列出所有已發現的外掛,它會輸出可直接貼上的 plugins.allow 程式碼片段,其中已包含這些 ID。若外掛在沒有安裝/載入路徑來源資訊的情況下載入,請檢查該外掛 ID,接著將 可信任的 ID 固定於 plugins.allow,或從可信任的來源重新安裝外掛, 讓 OpenClaw 記錄安裝來源資訊。

若要在封裝的 Docker 映像檔中處理隨附外掛,請將外掛 原始碼目錄繫結掛載至相符的封裝原始碼路徑上,例如 /app/extensions/synology-chat。OpenClaw 會先發現該掛載的原始碼覆疊層, 然後才是 /app/dist/extensions/synology-chat;僅複製原始碼目錄 不會產生作用,因此一般封裝安裝仍會使用已編譯的 dist。

若要偵錯執行階段掛鉤:

  • openclaw plugins inspect <id> --runtime --json 會顯示模組載入檢查階段所登錄的掛鉤與診斷資訊。執行階段檢查絕不會安裝相依項目;請使用 openclaw doctor --fix 清理舊版相依項目狀態,或復原設定所參照但遺失且可下載的外掛。
  • openclaw gateway status --deep --require-rpc 會確認可連線的閘道 URL/設定檔、服務/處理程序提示、設定路徑與 RPC 健全狀態。
  • 非隨附的對話掛鉤(llm_inputllm_outputbefore_model_resolvebefore_agent_replybefore_agent_runbefore_agent_finalizeagent_end)需要 plugins.entries.<id>.hooks.allowConversationAccess=true

外掛索引

外掛安裝中繼資料是由機器管理的狀態,而不是使用者設定。安裝與更新作業會將其寫入使用中 OpenClaw 狀態目錄下的共用 SQLite 狀態資料庫。installed_plugin_index 資料列會儲存持久的 installRecords 中繼資料,包括外掛資訊清單損壞或遺失的記錄,以及由資訊清單衍生的冷登錄快取,供 openclaw plugins update、解除安裝、診斷與冷外掛登錄使用。

plugins.installs 是已淘汰的手動設定介面。執行階段與更新命令只會讀取 SQLite 的已安裝外掛索引。請執行 openclaw doctor --fix,將舊版設定記錄匯入索引並移除已淘汰的鍵,再進行一般執行階段作業。

解除安裝

bash
openclaw plugins uninstall <id>openclaw plugins uninstall <id> --dry-runopenclaw plugins uninstall <id> --keep-filesopenclaw plugins uninstall <id> --force

uninstall 會從 plugins.entries、持久保存的外掛索引及外掛允許/拒絕清單中移除外掛記錄,並在適用時移除連結的 plugins.load.paths 項目。除非設定了 --keep-files,否則解除安裝也會移除所追蹤的受管理安裝目錄,但僅限於該目錄解析後位於 OpenClaw 的外掛 extensions 根目錄內。若外掛目前占用 memorycontextEngine 插槽,該插槽會重設為預設值(記憶體為 memory-core,內容引擎為 legacy)。

uninstall 會輸出即將移除之項目的預覽,接著在進行變更前提示 Uninstall plugin "<id>"?。傳入 --force 可略過確認提示(適合指令碼與非互動式執行);若未傳入,解除安裝需要互動式 TTY。--dry-run 會輸出相同的預覽,然後直接結束,不會提示或變更任何內容。

更新

bash
openclaw plugins update <id-or-npm-spec>openclaw plugins update --allopenclaw plugins update <id-or-npm-spec> --dry-runopenclaw plugins update @openclaw/voice-callopenclaw plugins update @acme/demoopenclaw plugins update openclaw-codex-app-server --acknowledge-clawhub-riskopenclaw plugins update openclaw-codex-app-server --dangerously-force-unsafe-install

更新適用於受管理外掛索引中追蹤的外掛安裝,以及共用 SQLite 狀態中追蹤的掛鉤套件安裝。更新會重複使用使用者安裝外掛時已選擇的來源,因此不需要再次確認來源。

解析外掛 ID 與 npm 規格

傳入外掛 ID 時,OpenClaw 會重複使用為該外掛記錄的安裝規格。這表示先前儲存的 dist-tag(例如 @beta)與明確固定的版本,仍會在之後執行 update <id> 時繼續使用。

執行 update <id> --dry-run 時,明確固定的 npm 安裝會維持固定。若 OpenClaw 也能解析套件的登錄預設版本線,且該預設版本線比已安裝的固定版本新,試執行會回報固定版本,並輸出明確的 @latest 套件更新命令,以跟隨登錄的預設版本線。

這項指定目標的更新規則與大量 openclaw plugins update --all 維護路徑不同。大量更新仍會遵循一般追蹤的安裝規格,但可信任的官方 OpenClaw 外掛記錄可以同步至目前的官方目錄目標,而不是停留在過時且明確指定的官方套件。若有意保持明確指定或帶有標籤的官方規格不變,請使用指定目標的 update <id>

對於 npm 安裝,也可以傳入帶有 dist-tag 或確切版本的明確 npm 套件規格。OpenClaw 會將該套件名稱解析回所追蹤的外掛記錄、更新該已安裝外掛,並記錄新的 npm 規格,以供未來依 ID 更新時使用。

傳入不含版本或標籤的 npm 套件名稱,也會解析回所追蹤的外掛記錄。若外掛原先固定於確切版本,而你想將其移回登錄的預設發行版本線,請使用此方式。

Beta 頻道更新

指定目標的 openclaw plugins update <id-or-npm-spec> 會重複使用所追蹤的外掛規格,除非傳入新的規格。大量 openclaw plugins update --all 將可信任的官方外掛記錄同步至官方目錄目標時,會使用已設定的 update.channel,因此 beta 頻道安裝可以留在 beta 發行版本線,而不會在未告知的情況下正規化為 stable/latest。

openclaw update 也知道目前使用中的 OpenClaw 更新頻道:在 beta 頻道上,預設版本線的 npm 與 ClawHub 外掛記錄會先嘗試 @beta。若不存在外掛 beta 版本,則會退回所記錄的 default/latest 規格;如果 npm 外掛的 beta 套件存在但未通過安裝驗證,也會退回。這項退回會以警告回報,但不會導致核心更新失敗。對於指定目標的更新,確切版本與明確標籤會繼續固定於該選擇器。

版本檢查與完整性偏移

在實際更新 npm 套件前,OpenClaw 會根據 npm 登錄中繼資料檢查已安裝的套件版本。若已安裝版本和所記錄的成品識別資訊都已符合解析後的目標,則會略過更新,不會下載、重新安裝或重寫 openclaw.json

若存在已儲存的完整性雜湊,而擷取的成品雜湊發生變化,OpenClaw 會將其視為 npm 成品偏移。互動式 openclaw plugins update 命令會輸出預期與實際雜湊,並在繼續前要求確認。非互動式更新輔助工具會採取失敗關閉,除非呼叫端提供明確的繼續政策。

更新時使用 --dangerously-force-unsafe-install

為維持相容性,plugins update 也接受 --dangerously-force-unsafe-install,但它已棄用,且不再變更外掛更新行為。操作人員的 security.installPolicy 仍可阻擋更新;外掛 before_install 掛鉤只會套用於已載入外掛掛鉤的處理程序。

更新時使用 --acknowledge-clawhub-risk

由社群 ClawHub 支援的外掛在更新時,會於下載替換套件前執行與安裝相同的確切發行版本信任檢查。若已審查的自動化作業應在所選 ClawHub 發行版本出現高風險信任警告時繼續,請使用 --acknowledge-clawhub-risk。官方 ClawHub 套件與隨附的 OpenClaw 外掛來源會略過此發行版本信任提示。

檢查

bash
openclaw plugins inspect <id>openclaw plugins inspect <id> --runtimeopenclaw plugins inspect <id> --jsonopenclaw plugins inspect --all

依預設,檢查功能不會匯入外掛執行階段,但會顯示識別資訊、載入狀態、來源、資訊清單功能、政策旗標、診斷資訊、安裝中繼資料、套件功能,以及偵測到的任何 MCP 或 LSP 伺服器支援。JSON 輸出包含外掛資訊清單合約,例如 contracts.agentToolResultMiddlewarecontracts.trustedToolPolicies,讓操作人員可在啟用或重新啟動外掛前稽核可信任介面的宣告。加入 --runtime 可載入外掛模組,並包含已登錄的掛鉤、工具、命令、服務、閘道方法和 HTTP 路由。執行階段檢查會直接回報遺失的外掛相依項目;安裝與修復仍由 openclaw plugins installopenclaw plugins updateopenclaw doctor --fix 負責。

外掛擁有的命令列介面命令通常會安裝為根層級的 openclaw 命令群組,但外掛也可以在核心父命令下登錄巢狀命令,例如 openclaw nodes。在 inspect --runtime 顯示 cliCommands 下的命令後,請從列出的路徑執行該命令;例如,登錄 demo-git 的外掛可使用 openclaw demo-git ping 驗證。

每個外掛會依其在執行階段實際登錄的內容分類:

形態 意義
plain-capability 正好一種功能類型(例如僅提供者外掛)
hybrid-capability 超過一種功能類型(例如文字 + 語音 + 圖像)
hook-only 僅有掛鉤,沒有功能、工具、命令、服務或路由
non-capability 有工具/命令/服務,但沒有功能

如需進一步瞭解功能模型,請參閱外掛形態

修復

bash
openclaw plugins doctor

doctor 會回報外掛載入錯誤、資訊清單/探索診斷、相容性通知,以及過時的外掛設定參照,例如缺少外掛插槽。當安裝樹狀結構與外掛設定都沒有問題時,會輸出 No plugin issues detected.。如果仍有過時設定,但安裝樹狀結構在其他方面皆正常,摘要會如實說明,而不會暗示外掛完全正常。

如果已設定的外掛存在於磁碟上,但遭載入器的路徑安全檢查封鎖,設定驗證會保留該外掛項目,並將其回報為 present but blocked。請修正前述的外掛封鎖診斷,例如路徑擁有權或所有使用者皆可寫入的權限,而不要移除 plugins.entries.<id>plugins.allow 設定。

若發生模組形態失敗,例如缺少 register/activate 匯出,請使用 OPENCLAW_PLUGIN_LOAD_DEBUG=1 重新執行,以在診斷輸出中加入精簡的匯出形態摘要。

登錄檔

bash
openclaw plugins registryopenclaw plugins registry --refreshopenclaw plugins registry --json

本機外掛登錄檔是 OpenClaw 持久保存的冷讀取模型,用於記錄已安裝外掛的身分、啟用狀態、來源中繼資料及貢獻項目的擁有權。一般啟動、提供者擁有者查詢、頻道設定分類與外掛清單,都能在不匯入外掛執行階段模組的情況下讀取該登錄檔。

使用 plugins registry 檢查持久保存的登錄檔是否存在、是否為最新或已過時。使用 --refresh,根據持久保存的外掛索引、設定原則及資訊清單/套件中繼資料重建登錄檔。這是修復路徑,不是執行階段啟用路徑。

openclaw doctor --fix 也會修復登錄檔周邊由系統管理的 npm 漂移。如果受管理的外掛 npm 專案或舊版扁平受管理 npm 根目錄下,存在孤立或復原的 @openclaw/* 套件並遮蔽內建外掛,Doctor 會移除該過時套件並重建登錄檔,使啟動程序改為依據內建資訊清單進行驗證。當具權威性的安裝記錄選定某個受管理的世代,但仍殘留較舊的扁平目錄或世代目錄時,Doctor 會停用這些過時樹狀結構,待閘道重新啟動後再予以清除。Doctor 也會將主機的 openclaw 套件重新連結至宣告 peerDependencies.openclaw 的受管理 npm 外掛中,讓 openclaw/plugin-sdk/* 等套件本機執行階段匯入在更新或修復 npm 後仍可解析。

市集

bash
openclaw plugins marketplace entriesopenclaw plugins marketplace entries --offlineopenclaw plugins marketplace entries --jsonopenclaw plugins marketplace entries --feed-profile <name>openclaw plugins marketplace entries --feed-url <url>openclaw plugins marketplace list <source>openclaw plugins marketplace list <source> --jsonopenclaw plugins marketplace refreshopenclaw plugins marketplace refresh --feed-profile <name>openclaw plugins marketplace refresh --feed-url <url>openclaw plugins marketplace refresh --expected-sha256 <sha256> --json

plugins marketplace entries 會列出已設定 OpenClaw 市集摘要來源中的項目。預設會嘗試使用託管摘要來源,並在失敗時改用最近一次接受的快照或內建資料。使用 --feed-profile <name> 讀取特定的已設定設定檔,使用 --feed-url <url> 讀取明確指定的託管摘要來源 URL,並使用 --offline 在不擷取摘要來源的情況下讀取最近一次接受的快照。

plugins marketplace refresh 會重新整理已設定的託管摘要來源快照,並回報 OpenClaw 接受的是託管資料、託管快照或內建備援資料。當呼叫端要求除非新的託管承載內容符合固定的總和檢查碼,否則命令必須失敗時,請使用 --expected-sha256

市集 list 可接受本機市集路徑、marketplace.json 路徑、如 owner/repo 的 GitHub 簡寫、GitHub 儲存庫 URL 或 git URL。--json 會輸出解析後的來源標籤,以及剖析後的市集資訊清單與外掛項目。

市集重新整理會載入託管的 OpenClaw 市集摘要來源,並將 驗證後的回應持久保存為本機託管摘要來源快照。若未指定選項,會使用 已設定的預設摘要來源設定檔。使用 --feed-profile <name> 重新整理 特定的已設定設定檔,使用 --feed-url <url> 重新整理明確指定的託管 摘要來源 URL,使用 --expected-sha256 <sha256> 要求承載內容總和檢查碼相符 (sha256:<hex> 或純 64 字元十六進位摘要),並使用 --json 取得機器可讀輸出。明確指定的託管摘要來源 URL 不得包含 認證資訊、查詢字串或片段。未固定總和檢查碼的重新整理可回報 託管快照或內建備援結果,而不讓命令失敗。固定總和檢查碼的 重新整理除非接受新的託管承載內容,否則會失敗;而成功接受託管內容的 重新整理若 OpenClaw 無法持久保存驗證後的快照,也會失敗。

內建的 clawhub-public 設定檔預期承載內容身分為 clawhub-official。ClawHub 產生並交付其正式環境公開金鑰後, OpenClaw 會內建該金鑰。在此之前,內建設定檔 不會授予已簽署摘要來源的安裝授權。公開金鑰必須來自受信任的 發行或操作者管道,而不是摘要來源主機上的金鑰端點。

OpenClaw 會驗證 DSSE 信封,且當設定檔宣告 feedId 時, 要求解碼後的承載內容 ID 與其相符。內建的 clawhub-public 設定檔一律宣告其身分,以防止其他摘要來源的有效文件 透過該設定檔遭到重播。

在分階段推出期間,既有且省略 feedId 的自訂已簽署設定檔 會保留簽章驗證,但不繫結承載內容身分。新的自訂 設定檔應宣告 feedId。摘要來源設定檔的設定介面將 連同 Control UI 所需的呈現中繼資料另行提供;其 Doctor 診斷必須要求操作者提供缺少的身分,而且不得 從摘要來源 URL 推斷身分。此信任繫結不會還原已淘汰的 根層級 marketplaces 金鑰。

相關內容

Was this useful?
On this page

On this page