跳转到主要内容
管理 Gateway 网关插件、钩子包和兼容包。

插件系统

面向最终用户的插件安装、启用和故障排查指南。

管理插件

安装、列出、更新、卸载和发布的快速示例。

插件包

包兼容性模型。

插件清单

清单字段和配置 schema。

安全

插件安装的安全加固。

命令

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>                    # alias for 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 doctor
openclaw 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 输出可解析。参见 调试
在 Nix 模式(OPENCLAW_NIX_MODE=1)下,openclaw.json 是不可变的。installupdateuninstallenabledisable 都会拒绝运行。请改为编辑此安装的 Nix 源(nix-openclaw 使用 programs.openclaw.configinstances.<name>.config),然后重新构建。参见 agent-first 快速开始
内置插件随 OpenClaw 一起发布。有些默认启用(例如内置模型提供商、内置语音提供商和内置浏览器插件);其他插件需要运行 plugins enable原生 OpenClaw 插件会随附 openclaw.plugin.json,其中包含内联 JSON Schema(configSchema,即使为空)。兼容包则使用自己的包清单。plugins list 会显示 Format: openclawFormat: bundle。详细列表/信息输出还会显示包子类型(codexclaudecursor)以及检测到的包能力。

作者

openclaw plugins init stock-quotes --name "Stock Quotes"
cd stock-quotes
npm run plugin:build
npm 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 入口生成元数据,因此该工作流也适用于已发布的 CLI。当入口不是默认包入口时,请使用 --entry <path>。在 CI 中使用 plugins build --check,可在生成的元数据过期时失败,而不重写文件。

提供商脚手架

openclaw plugins init acme-models --name "Acme Models" --type provider
cd acme-models
npm install
npm run build
npm test
npm run validate
提供商脚手架会创建一个通用的 OpenAI 兼容模型提供商插件,包含 API key 凭证管道、运行 clawhub package validatenpm run validate 脚本、ClawHub 包元数据,以及一个手动触发的 GitHub Actions 工作流,用于未来通过 GitHub OIDC 进行可信发布。提供商脚手架不会生成 Skills,也不会使用 openclaw plugins build/validate;这些命令用于工具脚手架的生成元数据路径。 发布前,请将占位 API base URL、模型目录、文档路由、凭证文本和 README 文案替换为真实的提供商详情。首次 ClawHub 发布和可信发布者设置请使用生成的 README。

安装

openclaw plugins search "calendar"                      # search ClawHub plugins
openclaw plugins install <package>                       # source auto-detection
openclaw plugins install clawhub:<package>                # ClawHub only
openclaw plugins install npm:<package>                    # npm only
openclaw plugins install npm-pack:<path.tgz>               # local npm-pack tarball
openclaw plugins install git:github.com/<owner>/<repo>     # git repo
openclaw plugins install git:github.com/<owner>/<repo>@<ref>
openclaw plugins install <path>                            # local path or archive
openclaw plugins install -l <path>                         # link instead of copy
openclaw plugins install <plugin>@<marketplace>             # marketplace shorthand
openclaw plugins install <plugin> --marketplace <name>      # marketplace (explicit)
openclaw plugins install <package> --force                  # overwrite existing install
openclaw plugins install <package> --pin                    # pin resolved npm version
openclaw plugins install clawhub:<package> --acknowledge-clawhub-risk
openclaw plugins install <package> --dangerously-force-unsafe-install
维护者测试设置阶段安装时,可以用受保护的环境变量覆盖自动插件安装源。参见 插件安装覆盖
在启动切换期间,裸包名默认从 npm 安装,除非它们匹配内置或官方插件 ID;在这种情况下,OpenClaw 会使用该本地/官方副本,而不是访问 npm 注册表。当你明确需要外部 npm 包时,请使用 npm:<package>。ClawHub 请使用 clawhub:<package>。请像运行代码一样对待插件安装;优先使用固定版本。
plugins search 会查询 ClawHub 中可安装的 code-pluginbundle-plugin 包(不是 Skills;请使用 openclaw skills search 搜索 Skills)。默认 --limit 为 20,最大 100。它只读取远程目录:不会检查本地状态、修改配置、安装包或加载插件运行时。结果包含 ClawHub 包名、系列、频道、版本、摘要,以及类似 openclaw plugins install clawhub:<package> 的安装提示。
ClawHub 是大多数插件的主要分发和发现入口。Npm 仍是受支持的 fallback 和直接安装路径。OpenClaw 拥有的 @openclaw/* 插件包已重新发布到 npm;请在 npmjs.com/org/openclaw插件清单 查看当前列表。稳定版安装使用 latest。Beta 频道安装和更新会在可用时优先使用 npm beta dist-tag,并在不可用时回退到 latest。在 extended-stable 频道上,使用裸/default 或 latest 意图的官方 npm 插件会解析为已安装核心的精确版本。精确固定版本和显式非 latest tag、第三方包以及非 npm 源不会被重写。
如果你的 plugins 部分由单文件 $include 支持,plugins install/update/enable/disable/uninstall 会写入该 include 文件,并保持 openclaw.json 不变。根 include、include 数组以及带同级覆盖的 include 会失败关闭,而不是被展平。支持的形状参见 配置 include如果安装期间配置无效,plugins install 通常会失败关闭,并提示你先运行 openclaw doctor --fix。在 Gateway 网关启动和热重载期间,无效插件配置会像任何其他无效配置一样失败关闭;openclaw doctor --fix 可以隔离无效插件条目。唯一记录在文档中的安装时例外,是针对显式选择加入 openclaw.install.allowInvalidConfigRecovery 的插件的窄范围内置插件恢复路径。
--force 会复用现有安装目标,并就地覆盖已安装的插件或钩子包。当你有意从新的本地路径、归档、ClawHub 包或 npm artifact 重新安装同一 ID 时使用它。对于已跟踪 npm 插件的常规升级,优先使用 openclaw plugins update <id-or-npm-spec>如果你对一个已安装的插件 ID 运行 plugins install,OpenClaw 会停止,并引导你使用 plugins update <id-or-npm-spec> 进行普通升级;如果你确实想从不同来源覆盖当前安装,则引导你使用 plugins install <package> --force--force 不支持与 --link 一起使用。
--pin 仅适用于 npm 安装,并记录解析后的精确 <name>@<version>。它不支持 git: 安装(请改为在 spec 中固定 ref,例如 git:github.com/acme/plugin@v1.2.3),也不支持 --marketplace(marketplace 安装会持久化 marketplace 源元数据,而不是 npm spec)。
--dangerously-force-unsafe-install 已弃用,现在是 no-op。OpenClaw 不再为插件安装运行内置的安装时危险代码阻止。当需要主机特定安装策略时,请使用操作员拥有的 security.installPolicy surface。插件 before_install 钩子是插件运行时生命周期钩子,不是 CLI 安装的主要策略边界。如果你发布到 ClawHub 的插件被注册表扫描隐藏或阻止,请使用 ClawHub 发布 中的发布者步骤。--dangerously-force-unsafe-install 不会要求 ClawHub 重新扫描插件,也不会将被阻止的发布设为公开。
Community ClawHub 安装会在下载前检查所选发布的信任记录。如果 ClawHub 禁用了该发布的下载、报告恶意扫描发现,或将该发布置于阻止型审核状态(隔离、撤销),无论是否使用此标志,OpenClaw 都会直接拒绝。对于非阻止型风险扫描状态或审核状态,OpenClaw 会显示信任详情,并在继续前请求确认。仅在查看 ClawHub 警告并决定在没有交互式提示的情况下继续后,才使用 --acknowledge-clawhub-risk。Pending 或过期(尚未 clean)的扫描结果会警告,但不需要确认。官方 ClawHub 包和内置 OpenClaw 插件源会完全绕过此发布信任检查。
plugins install 也是安装在 package.json 中暴露 openclaw.hooks 的钩子包的入口。请使用 openclaw hooks 查看经过筛选的钩子可见性和按钩子启用,而不是用于包安装。Npm 规格是仅注册表(包名加可选的精确版本dist-tag)。Git/URL/file 规格和 semver 范围会被拒绝。依赖安装会在每个插件一个托管 npm 项目中运行,并使用 --ignore-scripts 以保证安全,即使你的 shell 有全局 npm 安装设置也是如此。托管插件 npm 项目会继承 OpenClaw 包级 npm overrides,因此主机安全 pin 也会应用到提升的插件依赖。使用 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 会保持在稳定轨道。OpenClaw 日期戳修正版本(例如 2026.5.3-1)在此检查中算作稳定版本。如果 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 包,请使用显式 scoped 规格(例如 @scope/diffs)。
使用 git:<repo> 直接从 git 仓库安装。支持的形式:git:github.com/owner/repogit:owner/repo、完整 https://ssh://git://file:// 以及 git@host:owner/repo.git 克隆 URL。添加 @<ref>#<ref> 可在安装前检出分支、标签或提交。Git 安装会克隆到临时目录,在存在请求的 ref 时检出该 ref,然后使用常规插件目录安装器,因此清单验证、操作员安装策略、包管理器安装工作和安装记录的行为与 npm 安装一致。记录的 git 安装包括源 URL/ref 以及已解析提交,因此 openclaw plugins update 之后可以重新解析该源。从 git 安装后,使用 openclaw plugins inspect <id> --runtime --json 验证运行时注册,例如 gateway 方法和 CLI 命令。如果插件通过 api.registerCli 注册了 CLI 根,请直接通过 OpenClaw 根 CLI 运行该命令,例如 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 marketplace 安装。
ClawHub 安装使用显式 clawhub:<package> 定位符:
openclaw plugins install clawhub:openclaw-codex-app-server
openclaw plugins install clawhub:openclaw-codex-app-server@1.2.3
在启动切换期间,裸 npm 安全插件规格默认从 npm 安装,除非它们匹配官方插件 id:
openclaw plugins install openclaw-codex-app-server
使用 npm: 显式指定仅 npm 解析:
openclaw plugins install npm:openclaw-codex-app-server
openclaw plugins install npm:@openclaw/discord@2026.5.20
openclaw plugins install npm:@scope/plugin-name@1.0.1
OpenClaw 会在安装前检查声明的插件 API / 最低 gateway 兼容性。当选定的 ClawHub 版本发布 ClawPack 工件时,OpenClaw 会下载带版本的 npm-pack .tgz,验证 ClawHub 摘要标头和工件摘要,然后通过常规归档路径安装。没有 ClawPack 元数据的旧版 ClawHub 版本仍通过旧版包归档验证路径安装。记录的安装会保留其 ClawHub 源元数据、工件类型、npm integrity、npm shasum、tarball 名称和 ClawPack 摘要信息,以便后续更新。 未指定版本的 ClawHub 安装会保留未指定版本的记录规格,因此 openclaw plugins update 可以跟随较新的 ClawHub 版本;显式版本或标签选择器(例如 clawhub:pkg@1.2.3clawhub:pkg@beta)仍会固定到该选择器。

Marketplace 简写

当 marketplace 名称存在于 Claude 本地注册表缓存 ~/.claude/plugins/known_marketplaces.json 中时,使用 plugin@marketplace 简写:
openclaw plugins marketplace list <marketplace-name>
openclaw plugins install <plugin-name>@<marketplace-name>
使用 --marketplace 显式传递 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 known-marketplace 名称
  • 本地 marketplace 根目录或 marketplace.json 路径
  • GitHub 仓库简写,例如 owner/repo
  • GitHub 仓库 URL,例如 https://github.com/owner/repo
  • git URL
对于本地路径和归档,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 中显式列出独立文件。
兼容包会安装到常规插件根目录,并参与同一个 list/info/enable/disable 流程。目前支持包 Skills、Claude command-skills、Claude settings.json 默认值、Claude .lsp.json / 清单声明的 lspServers 默认值、Cursor command-skills,以及兼容的 Codex hook 目录;其他检测到的包能力会显示在 diagnostics/info 中,但尚未接入运行时执行。
使用 -l/--link 指向本地插件目录而不复制它(添加 到 plugins.load.paths):
openclaw plugins install -l ./my-plugin
--link 不支持与 --force 一起使用(链接插件直接指向源 路径,因此没有可在原地覆盖的内容)、--marketplacegit: 安装,并且它要求本地路径已存在。
从工作区 extensions 根发现的工作区来源插件不会 被导入或执行,直到它们被显式启用。对于本地开发, 运行 openclaw plugins enable <plugin-id> 或设置 plugins.entries.<plugin-id>.enabled: true;如果你的配置使用 plugins.allow,也请在其中包含同一个插件 id。此 fail-closed 规则 同样适用于频道设置显式以工作区来源插件为目标进行 仅设置加载的情况,因此当该工作区插件仍被禁用或被排除在 allowlist 外时, 本地频道插件设置代码不会运行。链接安装 和显式 plugins.load.paths 条目会按照其 已解析插件来源的常规策略执行。请参阅 配置插件策略配置参考在 npm 安装中使用 --pin 可将已解析的精确规格(name@version)保存到托管插件索引,同时保留默认的未固定行为。

列表

openclaw plugins list
openclaw plugins list --enabled
openclaw plugins list --verbose
openclaw plugins list --json
--enabled
boolean
仅显示已启用的插件。
--verbose
boolean
从表格视图切换为每插件详情行,包含 format/source/origin/version/activation 元数据。
--json
boolean
机器可读清单,加上注册表诊断和包依赖安装状态。
plugins list 会先读取持久化的本地插件注册表;当注册表缺失或无效时,使用仅从清单派生的回退。它可用于检查插件是否已安装、已启用,并对冷启动规划可见,但它不是对已运行 Gateway 网关进程的实时运行时探测。更改插件代码、启用状态、hook 策略或 plugins.load.paths 后,请重启为该渠道服务的 Gateway 网关,再预期新的 register(api) 代码或 hook 会运行。对于远程/容器部署,请确认你重启的是实际的 openclaw gateway run 子进程,而不仅是包装进程。plugins list --json 包含每个插件来自 package.json dependenciesoptionalDependenciesdependencyStatus。OpenClaw 会检查这些包 名称是否存在于该插件常规 Node node_modules 查找路径中;它 不会导入插件运行时代码、运行包管理器或修复缺失的 依赖。
如果启动日志显示 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。如果插件在没有 安装/load-path 来源信息的情况下加载,请检查该插件 id,然后要么将 可信 id 固定在 plugins.allow 中,要么从可信来源重新安装该插件, 以便 OpenClaw 记录安装来源信息。 对于打包 Docker 镜像内的内置插件工作,请将插件 源目录 bind-mount 到匹配的打包源路径上,例如 /app/extensions/synology-chat。OpenClaw 会先于 /app/dist/extensions/synology-chat 发现该挂载的源覆盖层;普通复制的源目录 仍不会生效,因此常规打包安装仍使用已编译的 dist。 对于运行时 hook 调试:
  • openclaw plugins inspect <id> --runtime --json 显示来自模块加载检查流程的已注册钩子和诊断。运行时检查绝不会安装依赖;使用 openclaw doctor --fix 清理旧版依赖状态,或恢复被配置引用但缺失的可下载插件。
  • openclaw gateway status --deep --require-rpc 确认可访问的 Gateway 网关 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、卸载、诊断和冷插件注册表使用。 当 OpenClaw 在配置中看到已发布旧版 plugins.installs 记录时,运行时读取会将其作为兼容性输入处理,而不会重写 openclaw.json。显式插件写入和 openclaw doctor --fix 会将这些记录移入插件索引,并在允许写入配置时移除该配置键;如果任一写入失败,配置记录会被保留,以免安装元数据丢失。

卸载

openclaw plugins uninstall <id>
openclaw plugins uninstall <id> --dry-run
openclaw plugins uninstall <id> --keep-files
openclaw plugins uninstall <id> --force
uninstall 会从 plugins.entries、持久化插件索引、插件允许/拒绝列表条目,以及适用时关联的 plugins.load.paths 条目中移除插件记录。除非设置了 --keep-files,卸载还会移除被跟踪的托管安装目录,但仅当该目录解析到 OpenClaw 的插件扩展根目录内部时才会移除。如果该插件当前拥有 memorycontextEngine 槽位,该槽位会重置为其默认值(内存为 memory-core,上下文引擎为 legacy)。 uninstall 会打印将被移除内容的预览,然后在做出更改前提示 Uninstall plugin "<id>"?。传入 --force 可跳过确认提示(适用于脚本和非交互式运行);否则,卸载需要交互式 TTY。--dry-run 会打印相同预览并退出,不提示也不更改任何内容。
--keep-config 作为 --keep-files 的已弃用别名仍受支持。

更新

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 --acknowledge-clawhub-risk
openclaw plugins update openclaw-codex-app-server --dangerously-force-unsafe-install
更新会应用到托管插件索引中被跟踪的插件安装,以及 hooks.internal.installs 中被跟踪的钩子包安装。
当你传入插件 id 时,OpenClaw 会复用该插件记录的安装 spec。这意味着先前存储的 dist-tag(例如 @beta)和精确固定版本会在后续 update <id> 运行中继续使用。update <id> --dry-run 期间,精确固定的 npm 安装会保持固定。如果 OpenClaw 也能解析该包的注册表默认线,并且该默认线比已安装的固定版本更新,试运行会报告该固定版本,并打印显式的 @latest 包更新命令,以跟随注册表默认线。该定向更新规则不同于批量 openclaw plugins update --all 维护路径。批量更新仍会遵守普通的已跟踪安装 spec,但受信任的官方 OpenClaw 插件记录可以同步到当前官方目录目标,而不是停留在过时的精确官方包上。当你有意保持精确或带标签的官方 spec 不变时,请使用定向 update <id>对于 npm 安装,你也可以传入带 dist-tag 或精确版本的显式 npm 包 spec。OpenClaw 会将该包名解析回被跟踪的插件记录,更新该已安装插件,并记录新的 npm spec 供未来基于 id 的更新使用。传入不带版本或标签的 npm 包名也会解析回被跟踪的插件记录。当某个插件被固定到精确版本,而你希望将其移回注册表默认发布线时,请使用这种方式。
定向 openclaw plugins update <id-or-npm-spec> 会复用被跟踪的插件 spec,除非你传入新的 spec。批量 openclaw plugins update --all 在将受信任的官方插件记录同步到官方目录目标时,会使用配置的 update.channel,因此 beta 频道安装可以保留在 beta 发布线上,而不会被静默规范化为 stable/latest。openclaw update 也了解活动的 OpenClaw 更新频道:在 beta 频道上,默认线 npm 和 ClawHub 插件记录会先尝试 @beta。如果不存在插件 beta 版本,它们会回退到记录的 default/latest spec;如果 beta 包存在但安装验证失败,npm 插件也会回退。该回退会作为警告报告,并且不会导致核心更新失败。精确版本和显式标签会在定向更新中继续固定到该选择器。
在实时 npm 更新之前,OpenClaw 会根据 npm 注册表元数据检查已安装包版本。如果已安装版本和记录的工件身份已经与解析后的目标匹配,则会跳过更新,不下载、不重新安装,也不重写 openclaw.json当存在已存储的完整性哈希且获取到的工件哈希发生变化时,OpenClaw 会将其视为 npm 工件漂移。交互式 openclaw plugins update 命令会打印预期哈希和实际哈希,并在继续前请求确认。非交互式更新辅助工具会默认失败关闭,除非调用方提供显式继续策略。
为保持兼容性,plugins update 也接受 --dangerously-force-unsafe-install,但它已弃用,且不再改变插件更新行为。操作员 security.installPolicy 仍可阻止更新;插件 before_install 钩子只会在加载了插件钩子的进程中应用。
由社区 ClawHub 支撑的插件更新在下载替换包之前,会运行与安装相同的精确发布信任检查。对于经过审核且在所选 ClawHub 发布存在高风险信任警告时仍应继续的自动化,请使用 --acknowledge-clawhub-risk。官方 ClawHub 包和内置 OpenClaw 插件源会绕过此发布信任提示。

检查

openclaw plugins inspect <id>
openclaw plugins inspect <id> --runtime
openclaw plugins inspect <id> --json
openclaw plugins inspect --all
默认情况下,Inspect 会显示身份、加载状态、来源、清单能力、策略标志、诊断、安装元数据、捆绑能力,以及任何检测到的 MCP 或 LSP 服务器支持,而不会导入插件运行时。JSON 输出包括插件清单契约,例如 contracts.agentToolResultMiddlewarecontracts.trustedToolPolicies,以便操作员在启用或重启插件前审计受信任表面声明。添加 --runtime 可加载插件模块,并包含已注册的钩子、工具、命令、服务、Gateway 网关方法和 HTTP 路由。运行时检查会直接报告缺失的插件依赖;安装和修复保留在 openclaw plugins installopenclaw plugins updateopenclaw doctor --fix 中。 插件拥有的 CLI 命令通常会作为根级 openclaw 命令组安装,但插件也可以在核心父级下注册嵌套命令,例如 openclaw nodes。当 inspect --runtimecliCommands 下显示某个命令后,请在列出的路径运行它;例如,注册了 demo-git 的插件可以用 openclaw demo-git ping 验证。 每个插件会按其在运行时实际注册的内容分类:
形态含义
plain-capability恰好一种能力类型(例如仅提供商插件)
hybrid-capability多于一种能力类型(例如文本 + 语音 + 图像)
hook-only只有钩子,没有能力、工具、命令、服务或路由
non-capability有工具/命令/服务,但没有能力
参见 插件形态,了解能力模型的更多信息。
--json 标志输出适合脚本和审计的机器可读报告。inspect --all 会呈现覆盖整个插件群的表格,包含形态、能力种类、兼容性通知、捆绑能力和钩子摘要列。infoinspect 的别名。

Doctor

openclaw plugins doctor
doctor 会报告插件加载错误、清单/设备发现诊断、兼容性通知,以及缺失插件槽位等过时插件配置引用。当安装树和插件配置都干净时,它会打印 No plugin issues detected. 如果仍有过时配置但安装树在其他方面健康,摘要会说明这一点,而不是暗示插件完全健康。 如果已配置的插件存在于磁盘上,但被加载器的路径安全检查阻止,配置验证会保留该插件条目,并将其报告为 present but blocked。请修复前面的被阻止插件诊断,例如路径所有权或全局可写权限,而不是移除 plugins.entries.<id>plugins.allow 配置。 对于缺失 register/activate 导出等模块形态失败,请使用 OPENCLAW_PLUGIN_LOAD_DEBUG=1 重新运行,以在诊断输出中包含紧凑的导出形态摘要。

注册表

openclaw plugins registry
openclaw plugins registry --refresh
openclaw plugins registry --json
本地插件注册表是 OpenClaw 为已安装插件身份、启用状态、来源元数据和贡献所有权持久化的冷读模型。正常启动、提供商所有者查找、渠道设置分类和插件清单可以读取它,而无需导入插件运行时模块。 使用 plugins registry 检查持久化注册表是否存在、是否当前有效或是否过时。使用 --refresh 可基于持久化插件索引、配置策略和清单/包元数据重建它。这是修复路径,不是运行时激活路径。 openclaw doctor --fix 还会修复注册表相邻的托管 npm 漂移:如果托管插件 npm 项目或旧版扁平托管 npm 根目录下孤立或恢复的 @openclaw/* 包遮蔽了内置插件,Doctor 会移除该过时包并重建注册表,使启动根据内置清单进行验证。Doctor 还会将宿主 openclaw 包重新链接到声明了 peerDependencies.openclaw 的托管 npm 插件中,使更新或 npm 修复后,包本地运行时导入(例如 openclaw/plugin-sdk/*)能够解析。
OPENCLAW_DISABLE_PERSISTED_PLUGIN_REGISTRY=1 是已弃用的应急兼容性开关,用于注册表读取失败。优先使用 plugins registry --refreshopenclaw doctor --fix;该环境变量回退仅用于迁移推出期间的紧急启动恢复。

Marketplace

openclaw plugins marketplace entries
openclaw plugins marketplace entries --offline
openclaw plugins marketplace entries --json
openclaw plugins marketplace entries --feed-profile <name>
openclaw plugins marketplace entries --feed-url <url>
openclaw plugins marketplace list <source>
openclaw plugins marketplace list <source> --json
openclaw plugins marketplace refresh
openclaw 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 无法持久化已验证的快照,也会失败。

相关内容