chore(i18n): refresh zh-CN translations
This commit is contained in:
parent
ff98cf51d7
commit
b7df2e7077
@ -1,15 +1,15 @@
|
||||
---
|
||||
read_when:
|
||||
- 你想安装或管理 Gateway 网关插件或兼容包
|
||||
- 你想调试插件加载失败
|
||||
- 你想安装或管理 Gateway 网关插件或兼容捆绑包
|
||||
- 你想调试插件加载失败问题
|
||||
sidebarTitle: Plugins
|
||||
summary: CLI 参考:`openclaw plugins`(list、install、marketplace、uninstall、enable/disable、doctor)
|
||||
summary: '`openclaw plugins` 的 CLI 参考(列出、安装、市场、卸载、启用/禁用、Doctor)'
|
||||
title: 插件
|
||||
x-i18n:
|
||||
generated_at: "2026-05-02T03:16:38Z"
|
||||
generated_at: "2026-05-02T17:02:31Z"
|
||||
model: gpt-5.5
|
||||
provider: openai
|
||||
source_hash: 963a4292f86d651a23f06ee83fd82d7ad80cb99ff3397a665940d8247225252c
|
||||
source_hash: a067e6a42eb71e5795b881b6cef45281144a695800b6a33f0669a60ec493d893
|
||||
source_path: cli/plugins.md
|
||||
workflow: 16
|
||||
---
|
||||
@ -18,10 +18,10 @@ x-i18n:
|
||||
|
||||
<CardGroup cols={2}>
|
||||
<Card title="插件系统" href="/zh-CN/tools/plugin">
|
||||
安装、启用插件以及排查插件问题的最终用户指南。
|
||||
面向最终用户的指南,用于安装、启用插件并排查插件问题。
|
||||
</Card>
|
||||
<Card title="插件包" href="/zh-CN/plugins/bundles">
|
||||
Bundle 兼容性模型。
|
||||
包兼容性模型。
|
||||
</Card>
|
||||
<Card title="插件清单" href="/zh-CN/plugins/manifest">
|
||||
清单字段和配置 schema。
|
||||
@ -59,14 +59,14 @@ openclaw plugins marketplace list <marketplace>
|
||||
openclaw plugins marketplace list <marketplace> --json
|
||||
```
|
||||
|
||||
排查缓慢的安装、检查、卸载或 registry 刷新时,请带上 `OPENCLAW_PLUGIN_LIFECYCLE_TRACE=1` 运行该命令。trace 会将阶段耗时写入 stderr,并让 JSON 输出保持可解析。请参阅[调试](/zh-CN/help/debugging#plugin-lifecycle-trace)。
|
||||
排查缓慢的安装、检查、卸载或注册表刷新时,请使用 `OPENCLAW_PLUGIN_LIFECYCLE_TRACE=1` 运行该命令。跟踪会将各阶段耗时写入 stderr,并保持 JSON 输出可解析。请参阅[调试](/zh-CN/help/debugging#plugin-lifecycle-trace)。
|
||||
|
||||
<Note>
|
||||
内置插件随 OpenClaw 一起发布。有些默认启用(例如内置模型提供商、内置语音提供商和内置浏览器插件);其他插件需要执行 `plugins enable`。
|
||||
|
||||
原生 OpenClaw 插件必须随附 `openclaw.plugin.json`,其中包含内联 JSON Schema(`configSchema`,即使为空)。兼容包则使用自己的包清单。
|
||||
原生 OpenClaw 插件必须随附 `openclaw.plugin.json`,并包含内联 JSON Schema(`configSchema`,即使为空也必须有)。兼容包则使用它们自己的包清单。
|
||||
|
||||
`plugins list` 会显示 `Format: openclaw` 或 `Format: bundle`。详细列表/info 输出还会显示包子类型(`codex`、`claude` 或 `cursor`)以及检测到的包能力。
|
||||
`plugins list` 会显示 `Format: openclaw` 或 `Format: bundle`。详细列表/信息输出还会显示包子类型(`codex`、`claude` 或 `cursor`)以及检测到的包能力。
|
||||
</Note>
|
||||
|
||||
### 安装
|
||||
@ -88,93 +88,93 @@ openclaw plugins install <plugin> --marketplace https://github.com/<owner>/<repo
|
||||
```
|
||||
|
||||
<Warning>
|
||||
裸包名会先对照 ClawHub 检查,然后才检查 npm。请像运行代码一样对待插件安装。优先使用固定版本。
|
||||
裸包名会先对照 ClawHub 检查,然后再检查 npm。请像运行代码一样对待插件安装。优先使用固定版本。
|
||||
</Warning>
|
||||
|
||||
`plugins search` 会查询 ClawHub 中可安装的插件包,并输出可直接用于安装的包名。它会搜索代码插件和包插件包,而不是 Skills。请使用 `openclaw skills search` 搜索 ClawHub Skills。
|
||||
`plugins search` 会查询 ClawHub 中可安装的插件包,并打印可直接用于安装的包名。它搜索代码插件和包插件包,而不是 Skills。要搜索 ClawHub Skills,请使用 `openclaw skills search`。
|
||||
|
||||
<Note>
|
||||
ClawHub 是大多数插件的主要分发和发现入口。Npm 仍然是受支持的回退路径和直接安装路径。在迁移到 ClawHub 的过程中,OpenClaw 仍然在 npm 上发布一些 OpenClaw 自有的 `@openclaw/*` 插件包;这些包版本可能会在插件发布列车之间落后于内置源码。如果 npm 将某个 OpenClaw 自有插件包标记为 deprecated,说明该已发布版本是旧的外部构件;请使用当前 OpenClaw 内置的插件,或使用本地 checkout,直到发布更新的 npm 包。
|
||||
ClawHub 是大多数插件的主要分发和发现入口。Npm 仍然是受支持的备用方案和直接安装路径。在迁移到 ClawHub 期间,OpenClaw 仍会在 npm 上发布一些 OpenClaw 自有的 `@openclaw/*` 插件包;这些包版本在插件发布列车之间可能落后于内置源码。如果 npm 报告某个 OpenClaw 自有插件包已弃用,则该已发布版本是旧的外部构件;请使用当前 OpenClaw 内置的插件,或使用本地检出版本,直到发布更新的 npm 包。
|
||||
</Note>
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="配置 include 和无效配置恢复">
|
||||
如果你的 `plugins` 段由单文件 `$include` 支持,`plugins install/update/enable/disable/uninstall` 会写入该被包含的文件,并保持 `openclaw.json` 不变。root includes、include 数组以及带有同级 override 的 include 会失败关闭,而不是被展平。受支持的形态请参阅[配置 include](/zh-CN/gateway/configuration)。
|
||||
<Accordion title="配置 include 与无效配置恢复">
|
||||
如果你的 `plugins` 部分由单文件 `$include` 支持,`plugins install/update/enable/disable/uninstall` 会写入该 include 文件,并保持 `openclaw.json` 不变。根级 include、include 数组以及带同级覆盖项的 include 会以失败关闭方式处理,而不是展开扁平化。受支持的形态请参阅[配置 include](/zh-CN/gateway/configuration)。
|
||||
|
||||
如果安装期间配置无效,`plugins install` 通常会失败关闭,并提示你先运行 `openclaw doctor --fix`。在 Gateway 网关启动期间,某个插件的无效配置会被隔离到该插件,这样其他渠道和插件仍可继续运行;`openclaw doctor --fix` 可以隔离该无效插件条目。唯一有文档说明的安装时例外,是一个很窄的内置插件恢复路径,仅适用于显式选择加入 `openclaw.install.allowInvalidConfigRecovery` 的插件。
|
||||
如果安装期间配置无效,`plugins install` 通常会失败关闭,并提示你先运行 `openclaw doctor --fix`。Gateway 网关启动期间,某个插件的无效配置会被隔离到该插件,以便其他渠道和插件可以继续运行;`openclaw doctor --fix` 可以隔离无效的插件条目。唯一记录在文档中的安装时例外,是一个狭窄的内置插件恢复路径,仅适用于显式选择加入 `openclaw.install.allowInvalidConfigRecovery` 的插件。
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="--force 以及重新安装与更新">
|
||||
`--force` 会复用现有安装目标,并在原地覆盖已安装的插件或钩子包。当你有意从新的本地路径、归档、ClawHub 包或 npm 构件重新安装同一 id 时使用它。对于已跟踪 npm 插件的常规升级,请优先使用 `openclaw plugins update <id-or-npm-spec>`。
|
||||
<Accordion title="--force 和重新安装与更新">
|
||||
`--force` 会复用现有安装目标,并就地覆盖已安装的插件或钩子包。当你有意从新的本地路径、归档、ClawHub 包或 npm 构件重新安装同一 ID 时使用它。对于已跟踪 npm 插件的常规升级,请优先使用 `openclaw plugins update <id-or-npm-spec>`。
|
||||
|
||||
如果你对一个已安装的插件 id 运行 `plugins install`,OpenClaw 会停止,并将你引导到 `plugins update <id-or-npm-spec>` 进行正常升级;如果你确实想从不同来源覆盖当前安装,则会引导你使用 `plugins install <package> --force`。
|
||||
如果你对已安装的插件 ID 运行 `plugins install`,OpenClaw 会停止,并提示你使用 `plugins update <id-or-npm-spec>` 进行正常升级,或在你确实想从不同来源覆盖当前安装时使用 `plugins install <package> --force`。
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="--pin 范围">
|
||||
`--pin` 仅适用于 npm 安装。它不支持 `git:` 安装;当你需要固定来源时,请使用显式 git ref,例如 `git:github.com/acme/plugin@v1.2.3`。它不支持 `--marketplace`,因为 marketplace 安装会持久化 marketplace 来源元数据,而不是 npm spec。
|
||||
<Accordion title="--pin 作用范围">
|
||||
`--pin` 仅适用于 npm 安装。它不支持 `git:` 安装;当你需要固定源码时,请使用显式 git ref,例如 `git:github.com/acme/plugin@v1.2.3`。它不支持与 `--marketplace` 一起使用,因为 marketplace 安装会持久化 marketplace 源元数据,而不是 npm spec。
|
||||
</Accordion>
|
||||
<Accordion title="--dangerously-force-unsafe-install">
|
||||
`--dangerously-force-unsafe-install` 是用于内置危险代码扫描器误报的应急选项。即使内置扫描器报告 `critical` 发现,它也允许安装继续,但它**不会**绕过插件 `before_install` 钩子策略阻断,也**不会**绕过扫描失败。
|
||||
`--dangerously-force-unsafe-install` 是用于内置危险代码扫描器误报的应急选项。它允许在内置扫描器报告 `critical` 发现时继续安装,但它**不会**绕过插件 `before_install` 钩子策略阻断,也**不会**绕过扫描失败。
|
||||
|
||||
此 CLI 标志适用于插件安装/更新流程。Gateway 网关支持的 Skill 依赖安装使用对应的 `dangerouslyForceUnsafeInstall` 请求 override,而 `openclaw skills install` 仍是独立的 ClawHub Skill 下载/安装流程。
|
||||
此 CLI 标志适用于插件安装/更新流程。由 Gateway 网关支持的技能依赖安装使用对应的 `dangerouslyForceUnsafeInstall` 请求覆盖,而 `openclaw skills install` 仍然是单独的 ClawHub 技能下载/安装流程。
|
||||
|
||||
如果你发布在 ClawHub 上的插件被 registry 扫描阻止,请使用 [ClawHub](/zh-CN/tools/clawhub) 中的发布者步骤。
|
||||
如果你发布到 ClawHub 的插件被注册表扫描阻止,请使用 [ClawHub](/zh-CN/tools/clawhub) 中的发布者步骤。
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="钩子包和 npm spec">
|
||||
`plugins install` 也是安装在 `package.json` 中公开 `openclaw.hooks` 的钩子包的入口。请使用 `openclaw hooks` 查看筛选后的钩子可见性和按钩子启用,而不是用于包安装。
|
||||
<Accordion title="钩子包和 npm specs">
|
||||
`plugins install` 也是安装在 `package.json` 中暴露 `openclaw.hooks` 的钩子包的入口。请使用 `openclaw hooks` 查看过滤后的钩子可见性并逐个启用钩子,而不是用于包安装。
|
||||
|
||||
Npm spec **仅限 registry**(包名 + 可选的**精确版本**或 **dist-tag**)。Git/URL/file spec 和 semver range 会被拒绝。依赖安装会以项目本地方式运行,并为安全起见带上 `--ignore-scripts`,即使你的 shell 配置了全局 npm 安装设置也是如此。
|
||||
Npm specs **仅限注册表**(包名 + 可选的**精确版本**或 **dist-tag**)。Git/URL/file specs 和 semver 范围会被拒绝。依赖安装会以项目本地方式运行,并为安全起见使用 `--ignore-scripts`,即使你的 shell 配置了全局 npm 安装设置也是如此。
|
||||
|
||||
如果你想跳过 ClawHub 查询并直接从 npm 安装,请使用 `npm:<package>`。裸包 spec 仍然优先使用 ClawHub,只有当 ClawHub 没有该包或版本时才回退到 npm。
|
||||
当你想跳过 ClawHub 查询并直接从 npm 安装时,请使用 `npm:<package>`。裸包 specs 仍会优先使用 ClawHub,只有当 ClawHub 没有该包或版本时才回退到 npm。
|
||||
|
||||
裸 spec 和 `@latest` 会留在 stable 轨道。如果 npm 将其中任一解析为 prerelease,OpenClaw 会停止,并要求你使用 prerelease tag(例如 `@beta`/`@rc`)或精确 prerelease 版本(例如 `@1.2.3-beta.4`)显式选择加入。
|
||||
裸 specs 和 `@latest` 会停留在稳定轨道。如果 npm 将其中任一项解析为预发布版本,OpenClaw 会停止,并要求你使用预发布标签(例如 `@beta`/`@rc`)或精确预发布版本(例如 `@1.2.3-beta.4`)显式选择加入。
|
||||
|
||||
如果裸安装 spec 匹配官方插件 id(例如 `diffs`),OpenClaw 会直接安装目录条目。要安装同名 npm 包,请使用显式 scoped spec(例如 `@scope/diffs`)。
|
||||
如果裸安装 spec 匹配官方插件 ID(例如 `diffs`),OpenClaw 会直接安装目录条目。要安装同名 npm 包,请使用显式 scoped spec(例如 `@scope/diffs`)。
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="Git 仓库">
|
||||
使用 `git:<repo>` 直接从 git 仓库安装。受支持的形式包括 `git:github.com/owner/repo`、`git:owner/repo`、完整的 `https://`、`ssh://`、`git://`、`file://`,以及 `git@host:owner/repo.git` clone URL。添加 `@<ref>` 或 `#<ref>` 可在安装前 checkout 某个分支、tag 或 commit。
|
||||
使用 `git:<repo>` 直接从 git 仓库安装。支持的形式包括 `git:github.com/owner/repo`、`git:owner/repo`、完整 `https://`、`ssh://`、`git://`、`file://`,以及 `git@host:owner/repo.git` 克隆 URL。在安装前添加 `@<ref>` 或 `#<ref>` 以检出分支、标签或提交。
|
||||
|
||||
Git 安装会 clone 到临时目录,在存在请求的 ref 时 checkout 该 ref,然后使用常规插件目录安装器。这意味着清单验证、危险代码扫描、包管理器安装工作和安装记录的行为都与 npm 安装一致。已记录的 git 安装包含来源 URL/ref 以及解析后的 commit,因此 `openclaw plugins update` 稍后可以重新解析该来源。
|
||||
Git 安装会克隆到临时目录,在存在请求的 ref 时检出该 ref,然后使用常规插件目录安装器。这意味着清单验证、危险代码扫描、包管理器安装工作以及安装记录的行为都类似 npm 安装。记录的 git 安装包含源 URL/ref 以及解析出的提交,以便 `openclaw plugins update` 稍后可以重新解析该来源。
|
||||
|
||||
从 git 安装后,请使用 `openclaw plugins inspect <id> --runtime --json` 验证运行时注册,例如 gateway 方法和 CLI 命令。如果插件通过 `api.registerCli` 注册了 CLI root,请直接通过 OpenClaw root CLI 执行该命令,例如 `openclaw demo-plugin ping`。
|
||||
从 git 安装后,使用 `openclaw plugins inspect <id> --runtime --json` 验证运行时注册项,例如 gateway 方法和 CLI 命令。如果插件通过 `api.registerCli` 注册了 CLI 根命令,请直接通过 OpenClaw 根 CLI 执行该命令,例如 `openclaw demo-plugin ping`。
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="归档">
|
||||
支持的归档:`.zip`、`.tgz`、`.tar.gz`、`.tar`。原生 OpenClaw 插件归档必须在解压后的插件 root 中包含有效的 `openclaw.plugin.json`;仅包含 `package.json` 的归档会在 OpenClaw 写入安装记录前被拒绝。
|
||||
支持的归档:`.zip`、`.tgz`、`.tar.gz`、`.tar`。原生 OpenClaw 插件归档必须在解压后的插件根目录中包含有效的 `openclaw.plugin.json`;只包含 `package.json` 的归档会在 OpenClaw 写入安装记录前被拒绝。
|
||||
|
||||
也支持 Claude marketplace 安装。
|
||||
|
||||
</Accordion>
|
||||
</AccordionGroup>
|
||||
|
||||
ClawHub 安装使用显式的 `clawhub:<package>` 定位符:
|
||||
ClawHub 安装使用显式 `clawhub:<package>` 定位器:
|
||||
|
||||
```bash
|
||||
openclaw plugins install clawhub:openclaw-codex-app-server
|
||||
openclaw plugins install clawhub:openclaw-codex-app-server@1.2.3
|
||||
```
|
||||
|
||||
OpenClaw 现在也会对裸的 npm-safe 插件 spec 优先使用 ClawHub。只有当 ClawHub 没有该包或版本时,它才会回退到 npm:
|
||||
OpenClaw 现在也会优先对裸 npm 安全插件 specs 使用 ClawHub。只有当 ClawHub 没有该包或版本时,它才会回退到 npm:
|
||||
|
||||
```bash
|
||||
openclaw plugins install openclaw-codex-app-server
|
||||
```
|
||||
|
||||
使用 `npm:` 可强制仅通过 npm 解析,例如当 ClawHub 不可访问,或你知道该包只存在于 npm 上时:
|
||||
使用 `npm:` 强制仅从 npm 解析,例如当 ClawHub 不可访问,或你知道该包只存在于 npm 上时:
|
||||
|
||||
```bash
|
||||
openclaw plugins install npm:openclaw-codex-app-server
|
||||
openclaw plugins install npm:@scope/plugin-name@1.0.1
|
||||
```
|
||||
|
||||
OpenClaw 会在安装前检查公布的插件 API / 最低 gateway 兼容性。当所选 ClawHub 版本发布了 ClawPack 构件时,OpenClaw 会下载带版本的 ClawPack,验证 ClawHub digest header 和构件 digest,然后通过常规归档路径安装它。没有 ClawPack 元数据的旧版 ClawHub 版本仍通过旧版包归档验证路径安装。已记录的安装会保留其 ClawHub 来源元数据和 ClawPack digest 事实,以便后续更新。
|
||||
未指定版本的 ClawHub 安装会保留未指定版本的已记录 spec,这样 `openclaw plugins update` 可以跟随更新的 ClawHub 发布;显式版本或 tag 选择器(例如 `clawhub:pkg@1.2.3` 和 `clawhub:pkg@beta`)仍固定到该选择器。
|
||||
OpenClaw 会在安装前检查公布的插件 API / 最低 Gateway 网关兼容性。当选定的 ClawHub 版本发布了 ClawPack 构件时,OpenClaw 会下载带版本的 npm-pack `.tgz`,验证 ClawHub digest header 和构件 digest,然后通过常规归档路径安装它。没有 ClawPack 元数据的旧 ClawHub 版本仍会通过旧版包归档验证路径安装。记录的安装会保留其 ClawHub 源元数据和 ClawPack digest 事实,以供后续更新使用。
|
||||
未带版本的 ClawHub 安装会保留未带版本的记录 spec,以便 `openclaw plugins update` 可以跟随后续的 ClawHub 版本;显式版本或标签选择器(例如 `clawhub:pkg@1.2.3` 和 `clawhub:pkg@beta`)仍会固定到该选择器。
|
||||
|
||||
#### Marketplace 简写
|
||||
|
||||
当 marketplace 名称存在于 Claude 的本地 registry 缓存 `~/.claude/plugins/known_marketplaces.json` 中时,请使用 `plugin@marketplace` 简写:
|
||||
当 marketplace 名称存在于 Claude 的本地注册表缓存 `~/.claude/plugins/known_marketplaces.json` 中时,使用 `plugin@marketplace` 简写:
|
||||
|
||||
```bash
|
||||
openclaw plugins marketplace list <marketplace-name>
|
||||
@ -191,16 +191,16 @@ openclaw plugins install <plugin-name> --marketplace ./my-marketplace
|
||||
```
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Marketplace 来源">
|
||||
- 来自 `~/.claude/plugins/known_marketplaces.json` 的 Claude 已知 marketplace 名称
|
||||
- 本地 marketplace 根目录或 `marketplace.json` 路径
|
||||
- 类似 `owner/repo` 的 GitHub 仓库简写
|
||||
- 类似 `https://github.com/owner/repo` 的 GitHub 仓库 URL
|
||||
<Tab title="市场来源">
|
||||
- 来自 `~/.claude/plugins/known_marketplaces.json` 的 Claude 已知市场名称
|
||||
- 本地市场根目录或 `marketplace.json` 路径
|
||||
- GitHub 仓库简写,例如 `owner/repo`
|
||||
- GitHub 仓库 URL,例如 `https://github.com/owner/repo`
|
||||
- git URL
|
||||
|
||||
</Tab>
|
||||
<Tab title="远程 marketplace 规则">
|
||||
对于从 GitHub 或 git 加载的远程 marketplace,插件条目必须保持在克隆的 marketplace 仓库内。OpenClaw 接受该仓库中的相对路径来源,并拒绝远程清单中的 HTTP(S)、绝对路径、git、GitHub 以及其他非路径插件来源。
|
||||
<Tab title="远程市场规则">
|
||||
对于从 GitHub 或 git 加载的远程市场,插件条目必须保留在克隆的市场仓库内。OpenClaw 接受来自该仓库的相对路径来源,并拒绝远程清单中的 HTTP(S)、绝对路径、git、GitHub 以及其他非路径插件来源。
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
@ -212,10 +212,10 @@ openclaw plugins install <plugin-name> --marketplace ./my-marketplace
|
||||
- Cursor 兼容包(`.cursor-plugin/plugin.json`)
|
||||
|
||||
<Note>
|
||||
兼容包会安装到常规插件根目录,并参与相同的 list/info/enable/disable 流程。目前支持包 Skills、Claude command-skills、Claude `settings.json` 默认值、Claude `.lsp.json` / 清单声明的 `lspServers` 默认值、Cursor command-skills,以及兼容的 Codex hook 目录;其他检测到的包能力会显示在诊断/info 中,但尚未接入运行时执行。
|
||||
兼容包会安装到常规插件根目录,并参与相同的列表/信息/启用/禁用流程。目前支持包 Skills、Claude 命令 Skills、Claude `settings.json` 默认值、Claude `.lsp.json` / 清单声明的 `lspServers` 默认值、Cursor 命令 Skills,以及兼容的 Codex 钩子目录;其他检测到的包能力会显示在诊断/信息中,但尚未接入运行时执行。
|
||||
</Note>
|
||||
|
||||
### 列出
|
||||
### 列表
|
||||
|
||||
```bash
|
||||
openclaw plugins list
|
||||
@ -231,25 +231,25 @@ openclaw plugins search <query> --json
|
||||
仅显示已启用的插件。
|
||||
</ParamField>
|
||||
<ParamField path="--verbose" type="boolean">
|
||||
从表格视图切换到每个插件的详情行,其中包含 source/origin/version/activation 元数据。
|
||||
从表格视图切换为逐插件详情行,包含来源/源头/版本/激活元数据。
|
||||
</ParamField>
|
||||
<ParamField path="--json" type="boolean">
|
||||
机器可读的清单以及注册表诊断。
|
||||
机器可读的清单加注册表诊断。
|
||||
</ParamField>
|
||||
|
||||
<Note>
|
||||
`plugins list` 会先读取持久化的本地插件注册表;当注册表缺失或无效时,使用仅由清单派生的回退结果。它适合检查插件是否已安装、已启用并且对冷启动规划可见,但它不是对已经运行的 Gateway 网关进程的实时运行时探测。更改插件代码、启用状态、hook 策略或 `plugins.load.paths` 后,请重启服务于该渠道的 Gateway 网关,然后再预期新的 `register(api)` 代码或 hooks 会运行。对于远程/容器部署,请确认你重启的是实际的 `openclaw gateway run` 子进程,而不仅仅是包装器进程。
|
||||
`plugins list` 会先读取持久化的本地插件注册表;当注册表缺失或无效时,会使用仅由清单派生的回退。它可用于检查插件是否已安装、已启用,并对冷启动规划可见,但它不是对已经运行的 Gateway 网关进程的实时运行时探测。更改插件代码、启用状态、钩子策略或 `plugins.load.paths` 后,请重启服务该渠道的 Gateway 网关,再期待新的 `register(api)` 代码或钩子运行。对于远程/容器部署,请确认你重启的是实际的 `openclaw gateway run` 子进程,而不只是包装器进程。
|
||||
</Note>
|
||||
|
||||
`plugins search` 是远程 ClawHub 目录查询。它不会检查本地状态、修改配置、安装包,或加载插件运行时代码。搜索结果包含 ClawHub 包名、系列、渠道、版本、摘要,以及类似 `openclaw plugins install clawhub:<package>` 的安装提示。
|
||||
`plugins search` 是远程 ClawHub 目录查询。它不会检查本地状态、修改配置、安装包或加载插件运行时代码。搜索结果包含 ClawHub 包名、系列、渠道、版本、摘要,以及类似 `openclaw plugins install clawhub:<package>` 的安装提示。
|
||||
|
||||
对于打包 Docker 镜像内的内置插件开发,请将插件源目录 bind-mount 到匹配的打包源路径上,例如 `/app/extensions/synology-chat`。OpenClaw 会先于 `/app/dist/extensions/synology-chat` 发现该挂载的源覆盖层;普通复制的源目录仍然不会生效,因此常规打包安装仍会使用已编译的 dist。
|
||||
对于打包 Docker 镜像内的内置插件工作,请将插件源目录绑定挂载到匹配的打包源路径上,例如 `/app/extensions/synology-chat`。OpenClaw 会先于 `/app/dist/extensions/synology-chat` 发现该挂载的源覆盖层;普通复制的源目录仍然不会生效,因此常规打包安装仍会使用编译后的 dist。
|
||||
|
||||
用于运行时 hook 调试:
|
||||
用于运行时钩子调试:
|
||||
|
||||
- `openclaw plugins inspect <id> --runtime --json` 会显示来自模块加载检查过程的已注册 hooks 和诊断。运行时检查绝不会安装依赖;请使用 `openclaw doctor --fix` 清理旧版依赖状态,或安装缺失的已配置可下载插件。
|
||||
- `openclaw gateway status --deep --require-rpc` 会确认可访问的 Gateway 网关、服务/进程提示、配置路径和 RPC 健康状况。
|
||||
- 非内置对话 hooks(`llm_input`、`llm_output`、`before_agent_finalize`、`agent_end`)需要 `plugins.entries.<id>.hooks.allowConversationAccess=true`。
|
||||
- `openclaw plugins inspect <id> --runtime --json` 会显示来自模块加载检查过程的已注册钩子和诊断。运行时检查永远不会安装依赖;使用 `openclaw doctor --fix` 清理旧依赖状态或安装缺失的已配置可下载插件。
|
||||
- `openclaw gateway status --deep --require-rpc` 会确认可达的 Gateway 网关、服务/进程提示、配置路径和 RPC 健康状态。
|
||||
- 非内置对话钩子(`llm_input`、`llm_output`、`before_agent_finalize`、`agent_end`)需要 `plugins.entries.<id>.hooks.allowConversationAccess=true`。
|
||||
|
||||
使用 `--link` 可避免复制本地目录(会添加到 `plugins.load.paths`):
|
||||
|
||||
@ -260,14 +260,14 @@ openclaw plugins install -l ./my-plugin
|
||||
<Note>
|
||||
`--force` 不支持与 `--link` 一起使用,因为链接安装会复用源路径,而不是覆盖托管安装目标。
|
||||
|
||||
在 npm 安装中使用 `--pin`,可在托管插件索引中保存解析后的精确 spec(`name@version`),同时保持默认行为不固定版本。
|
||||
在 npm 安装上使用 `--pin`,可在托管插件索引中保存解析后的精确规格(`name@version`),同时保持默认行为不固定。
|
||||
</Note>
|
||||
|
||||
### 插件索引
|
||||
|
||||
插件安装元数据是机器管理的状态,不是用户配置。安装和更新会把它写入活动 OpenClaw 状态目录下的 `plugins/installs.json`。其顶层 `installRecords` 映射是安装元数据的持久来源,包括损坏或缺失插件清单的记录。`plugins` 数组是由清单派生的冷注册表缓存。该文件包含不要编辑的警告,并由 `openclaw plugins update`、卸载、诊断以及冷插件注册表使用。
|
||||
插件安装元数据是机器管理的状态,不是用户配置。安装和更新会将它写入活动 OpenClaw 状态目录下的 `plugins/installs.json`。其顶层 `installRecords` 映射是安装元数据的持久来源,包括损坏或缺失插件清单的记录。`plugins` 数组是由清单派生的冷注册表缓存。该文件包含“请勿编辑”警告,并由 `openclaw plugins update`、卸载、诊断和冷插件注册表使用。
|
||||
|
||||
当 OpenClaw 在配置中看到已发布的旧版 `plugins.installs` 记录时,会将它们移动到插件索引并移除该配置键;如果任一写入失败,配置记录会被保留,以免安装元数据丢失。
|
||||
当 OpenClaw 在配置中看到已发布的旧版 `plugins.installs` 记录时,会将它们移动到插件索引并移除该配置键;如果任一写入失败,则保留配置记录,确保安装元数据不会丢失。
|
||||
|
||||
### 卸载
|
||||
|
||||
@ -277,10 +277,10 @@ openclaw plugins uninstall <id> --dry-run
|
||||
openclaw plugins uninstall <id> --keep-files
|
||||
```
|
||||
|
||||
`uninstall` 会从 `plugins.entries`、持久化插件索引、插件允许/拒绝列表条目,以及适用时的链接 `plugins.load.paths` 条目中移除插件记录。除非设置了 `--keep-files`,否则卸载还会移除已跟踪的托管安装目录,前提是该目录位于 OpenClaw 的插件 extensions 根目录内。对于主动记忆插件,记忆槽会重置为 `memory-core`。
|
||||
`uninstall` 会从 `plugins.entries`、持久化插件索引、插件允许/拒绝列表条目以及适用时的链接 `plugins.load.paths` 条目中移除插件记录。除非设置了 `--keep-files`,卸载还会移除跟踪的托管安装目录,前提是该目录位于 OpenClaw 的插件扩展根目录内。对于主动记忆插件,记忆槽会重置为 `memory-core`。
|
||||
|
||||
<Note>
|
||||
`--keep-config` 作为 `--keep-files` 的已弃用别名仍受支持。
|
||||
`--keep-config` 作为 `--keep-files` 的已弃用别名受到支持。
|
||||
</Note>
|
||||
|
||||
### 更新
|
||||
@ -293,25 +293,25 @@ openclaw plugins update @openclaw/voice-call@beta
|
||||
openclaw plugins update openclaw-codex-app-server --dangerously-force-unsafe-install
|
||||
```
|
||||
|
||||
更新会应用于托管插件索引中已跟踪的插件安装,以及 `hooks.internal.installs` 中已跟踪的 hook-pack 安装。
|
||||
更新适用于托管插件索引中跟踪的插件安装,以及 `hooks.internal.installs` 中跟踪的钩子包安装。
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="解析插件 id 与 npm spec">
|
||||
当你传入插件 id 时,OpenClaw 会复用为该插件记录的安装 spec。这意味着先前存储的 dist-tags(例如 `@beta`)以及精确固定的版本,会在后续 `update <id>` 运行中继续使用。
|
||||
<Accordion title="解析插件 id 与 npm 规格">
|
||||
当你传入插件 id 时,OpenClaw 会复用该插件记录的安装规格。这意味着之前存储的 dist-tag(例如 `@beta`)和精确固定版本,会在后续 `update <id>` 运行中继续使用。
|
||||
|
||||
对于 npm 安装,你也可以传入带 dist-tag 或精确版本的显式 npm 包 spec。OpenClaw 会将该包名解析回已跟踪的插件记录,更新该已安装插件,并记录新的 npm spec 供未来基于 id 的更新使用。
|
||||
对于 npm 安装,你也可以传入带有 dist-tag 或精确版本的显式 npm 包规格。OpenClaw 会将该包名解析回跟踪的插件记录,更新该已安装插件,并记录新的 npm 规格以供未来基于 id 的更新使用。
|
||||
|
||||
传入不带版本或标签的 npm 包名也会解析回已跟踪的插件记录。当某个插件被固定到精确版本,而你想将它移回注册表的默认发布线时,请使用此方式。
|
||||
传入不带版本或标签的 npm 包名,也会解析回跟踪的插件记录。当某个插件被固定到精确版本,而你想将它移回注册表的默认发布线时,请使用这种方式。
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="版本检查和完整性漂移">
|
||||
在执行实时 npm 更新之前,OpenClaw 会根据 npm 注册表元数据检查已安装包版本。如果已安装版本和记录的构件身份已经与解析后的目标匹配,则会跳过更新,不下载、不重新安装,也不重写 `openclaw.json`。
|
||||
在实时 npm 更新前,OpenClaw 会根据 npm 注册表元数据检查已安装包版本。如果已安装版本和记录的构件身份已经与解析目标匹配,则会跳过更新,不下载、不重新安装,也不重写 `openclaw.json`。
|
||||
|
||||
当存在已存储的完整性哈希且获取到的构件哈希发生变化时,OpenClaw 会将其视为 npm 构件漂移。交互式 `openclaw plugins update` 命令会打印预期和实际哈希,并在继续之前要求确认。非交互式更新辅助工具会默认失败关闭,除非调用方提供显式继续策略。
|
||||
当存在已存储的完整性哈希且获取到的构件哈希发生变化时,OpenClaw 会将其视为 npm 构件漂移。交互式 `openclaw plugins update` 命令会打印预期哈希和实际哈希,并在继续前请求确认。非交互式更新助手会默认失败关闭,除非调用方提供显式继续策略。
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="更新时使用 --dangerously-force-unsafe-install">
|
||||
`--dangerously-force-unsafe-install` 也可用于 `plugins update`,作为插件更新期间内置危险代码扫描误报的 break-glass 覆盖。它仍然不会绕过插件 `before_install` 策略阻止或扫描失败阻止,并且仅适用于插件更新,不适用于 hook-pack 更新。
|
||||
<Accordion title="更新时的 --dangerously-force-unsafe-install">
|
||||
`--dangerously-force-unsafe-install` 也可用于 `plugins update`,作为插件更新期间内置危险代码扫描误报的紧急覆盖。它仍不会绕过插件 `before_install` 策略阻断或扫描失败阻断,并且只适用于插件更新,不适用于钩子包更新。
|
||||
</Accordion>
|
||||
</AccordionGroup>
|
||||
|
||||
@ -323,21 +323,21 @@ openclaw plugins inspect <id> --runtime
|
||||
openclaw plugins inspect <id> --json
|
||||
```
|
||||
|
||||
Inspect 默认不会导入插件运行时,而是显示身份、加载状态、来源、清单能力、策略标志、诊断、安装元数据、包能力,以及检测到的任何 MCP 或 LSP 服务器支持。添加 `--runtime` 可加载插件模块,并包含已注册的 hooks、工具、命令、服务、gateway 方法和 HTTP 路由。运行时检查会直接报告缺失的插件依赖;安装和修复仍由 `openclaw plugins install`、`openclaw plugins update` 和 `openclaw doctor --fix` 处理。
|
||||
默认情况下,检查会显示身份、加载状态、来源、清单能力、策略标志、诊断、安装元数据、包能力,以及任何检测到的 MCP 或 LSP 服务器支持,而不会导入插件运行时。添加 `--runtime` 可加载插件模块,并包含已注册的钩子、工具、命令、服务、Gateway 网关方法和 HTTP 路由。运行时检查会直接报告缺失的插件依赖;安装和修复仍由 `openclaw plugins install`、`openclaw plugins update` 和 `openclaw doctor --fix` 处理。
|
||||
|
||||
插件拥有的 CLI 命令会作为根级 `openclaw` 命令组安装。在 `inspect --runtime` 显示 `cliCommands` 下存在某个命令后,可通过 `openclaw <command> ...` 运行它;例如,注册了 `demo-git` 的插件可以用 `openclaw demo-git ping` 验证。
|
||||
插件拥有的 CLI 命令会作为根 `openclaw` 命令组安装。`inspect --runtime` 在 `cliCommands` 下显示命令后,请以 `openclaw <command> ...` 运行它;例如,注册了 `demo-git` 的插件可以用 `openclaw demo-git ping` 验证。
|
||||
|
||||
每个插件会根据其在运行时实际注册的内容分类:
|
||||
每个插件会按其在运行时实际注册的内容分类:
|
||||
|
||||
- **plain-capability** — 一种能力类型(例如仅提供商插件)
|
||||
- **hybrid-capability** — 多种能力类型(例如文本 + 语音 + 图像)
|
||||
- **hook-only** — 只有 hooks,没有能力或界面
|
||||
- **hook-only** — 只有钩子,没有能力或表面
|
||||
- **non-capability** — 有工具/命令/服务,但没有能力
|
||||
|
||||
有关能力模型的更多信息,请参阅 [插件形态](/zh-CN/plugins/architecture#plugin-shapes)。
|
||||
请参阅[插件形态](/zh-CN/plugins/architecture#plugin-shapes),了解更多能力模型信息。
|
||||
|
||||
<Note>
|
||||
`--json` 标志会输出适合脚本和审计的机器可读报告。`inspect --all` 会渲染覆盖全量插件的表格,其中包含形态、能力种类、兼容性提示、包能力和 hook 摘要列。`info` 是 `inspect` 的别名。
|
||||
`--json` 标志会输出适合脚本和审计的机器可读报告。`inspect --all` 会渲染全局表格,包含形态、能力种类、兼容性通知、包能力和钩子摘要列。`info` 是 `inspect` 的别名。
|
||||
</Note>
|
||||
|
||||
### Doctor
|
||||
@ -346,9 +346,9 @@ Inspect 默认不会导入插件运行时,而是显示身份、加载状态、
|
||||
openclaw plugins doctor
|
||||
```
|
||||
|
||||
`doctor` 会报告插件加载错误、清单/设备发现诊断和兼容性提示。当一切正常时,它会打印 `No plugin issues detected.`
|
||||
`doctor` 会报告插件加载错误、清单/设备发现诊断以及兼容性通知。一切正常时,它会打印 `No plugin issues detected.`
|
||||
|
||||
对于缺少 `register`/`activate` 导出等模块形态失败,请使用 `OPENCLAW_PLUGIN_LOAD_DEBUG=1` 重新运行,以在诊断输出中包含紧凑的导出形态摘要。
|
||||
对于缺少 `register`/`activate` 导出等模块形态故障,请使用 `OPENCLAW_PLUGIN_LOAD_DEBUG=1` 重新运行,以在诊断输出中包含紧凑的导出形态摘要。
|
||||
|
||||
### 注册表
|
||||
|
||||
@ -358,24 +358,24 @@ openclaw plugins registry --refresh
|
||||
openclaw plugins registry --json
|
||||
```
|
||||
|
||||
本地插件注册表是 OpenClaw 持久化的冷读取模型,用于已安装插件的身份、启用状态、来源元数据和贡献归属。常规启动、提供商归属查找、渠道设置分类和插件清单都可以读取它,而无需导入插件运行时模块。
|
||||
本地插件注册表是 OpenClaw 为已安装插件身份、启用状态、来源元数据和贡献归属持久化的冷读取模型。正常启动、提供商所有者查找、渠道设置分类和插件清单都可以读取它,而无需导入插件运行时模块。
|
||||
|
||||
使用 `plugins registry` 检查持久化注册表是否存在、是否为当前版本或是否已过期。使用 `--refresh` 可基于持久化插件索引、配置策略以及清单/包元数据重建它。这是修复路径,不是运行时激活路径。
|
||||
使用 `plugins registry` 检查持久化注册表是否存在、最新或已过期。使用 `--refresh` 可从持久化插件索引、配置策略以及清单/包元数据重建它。这是修复路径,不是运行时激活路径。
|
||||
|
||||
<Warning>
|
||||
`OPENCLAW_DISABLE_PERSISTED_PLUGIN_REGISTRY=1` 是已弃用的 break-glass 兼容性开关,用于注册表读取失败。优先使用 `plugins registry --refresh` 或 `openclaw doctor --fix`;环境变量回退仅用于迁移推出期间的紧急启动恢复。
|
||||
`OPENCLAW_DISABLE_PERSISTED_PLUGIN_REGISTRY=1` 是一个已弃用的注册表读取失败紧急兼容开关。优先使用 `plugins registry --refresh` 或 `openclaw doctor --fix`;环境变量回退仅用于迁移推出期间的紧急启动恢复。
|
||||
</Warning>
|
||||
|
||||
### Marketplace
|
||||
### 市场
|
||||
|
||||
```bash
|
||||
openclaw plugins marketplace list <source>
|
||||
openclaw plugins marketplace list <source> --json
|
||||
```
|
||||
|
||||
Marketplace list 接受本地 marketplace 路径、`marketplace.json` 路径、类似 `owner/repo` 的 GitHub 简写、GitHub 仓库 URL 或 git URL。`--json` 会打印解析后的来源标签,以及解析后的 marketplace 清单和插件条目。
|
||||
市场列表接受本地市场路径、`marketplace.json` 路径、类似 `owner/repo` 的 GitHub 简写、GitHub 仓库 URL 或 git URL。`--json` 会打印解析后的来源标签,以及解析出的市场清单和插件条目。
|
||||
|
||||
## 相关内容
|
||||
## 相关
|
||||
|
||||
- [构建插件](/zh-CN/plugins/building-plugins)
|
||||
- [CLI 参考](/zh-CN/cli)
|
||||
|
||||
@ -7,18 +7,18 @@ sidebarTitle: ClawHub
|
||||
summary: ClawHub:OpenClaw Skills 和插件的公共注册表、原生安装流程,以及 clawhub CLI
|
||||
title: ClawHub
|
||||
x-i18n:
|
||||
generated_at: "2026-05-02T03:16:43Z"
|
||||
generated_at: "2026-05-02T17:02:37Z"
|
||||
model: gpt-5.5
|
||||
provider: openai
|
||||
source_hash: 353b224ccfb8096c270b7896e640e9e419fcb50c265298102a5ce0173566933e
|
||||
source_hash: a6c0e78a10439b11540cce03a86278f475c6bac81f1b8fbd53a6d6ad87b721f5
|
||||
source_path: tools/clawhub.md
|
||||
workflow: 16
|
||||
---
|
||||
|
||||
ClawHub 是 **OpenClaw Skills 和插件**的公共注册表。
|
||||
|
||||
- 使用原生 `openclaw` 命令搜索、安装和更新 Skills,以及从 ClawHub 安装插件。
|
||||
- 使用单独的 `clawhub` CLI 处理注册表认证、发布、删除/恢复删除和同步工作流。
|
||||
- 使用原生 `openclaw` 命令搜索、安装和更新 Skills,并从 ClawHub 安装插件。
|
||||
- 使用单独的 `clawhub` CLI 处理注册表身份验证、发布、删除/取消删除和同步工作流。
|
||||
|
||||
站点:[clawhub.ai](https://clawhub.ai)
|
||||
|
||||
@ -36,10 +36,10 @@ ClawHub 是 **OpenClaw Skills 和插件**的公共注册表。
|
||||
```
|
||||
</Step>
|
||||
<Step title="使用">
|
||||
启动一个新的 OpenClaw 会话,它会加载新 Skill。
|
||||
启动新的 OpenClaw 会话,它会加载新的 skill。
|
||||
</Step>
|
||||
<Step title="发布(可选)">
|
||||
对于需要注册表认证的工作流(发布、同步、管理),安装
|
||||
对于需要注册表身份验证的工作流(发布、同步、管理),请安装
|
||||
单独的 `clawhub` CLI:
|
||||
|
||||
```bash
|
||||
@ -61,8 +61,8 @@ ClawHub 是 **OpenClaw Skills 和插件**的公共注册表。
|
||||
openclaw skills update --all
|
||||
```
|
||||
|
||||
原生 `openclaw` 命令会安装到你的当前工作区,并
|
||||
持久保存来源元数据,以便之后的 `update` 调用可以继续使用 ClawHub。
|
||||
原生 `openclaw` 命令会安装到你的活动工作区,并
|
||||
持久保存来源元数据,这样之后的 `update` 调用可以继续使用 ClawHub。
|
||||
|
||||
</Tab>
|
||||
<Tab title="插件">
|
||||
@ -72,71 +72,70 @@ ClawHub 是 **OpenClaw Skills 和插件**的公共注册表。
|
||||
openclaw plugins update --all
|
||||
```
|
||||
|
||||
`plugins search` 查询 ClawHub 插件目录,并打印可直接安装的
|
||||
包名。裸的 npm 安全插件规格也会先尝试通过 ClawHub
|
||||
解析,再尝试 npm:
|
||||
`plugins search` 会查询 ClawHub 插件目录,并输出可直接安装的
|
||||
软件包名称。不带前缀且符合 npm 安全命名的插件规格也会先尝试在 ClawHub
|
||||
中解析,然后再尝试 npm:
|
||||
|
||||
```bash
|
||||
openclaw plugins install openclaw-codex-app-server
|
||||
```
|
||||
|
||||
当你希望仅通过 npm 解析而不进行
|
||||
ClawHub 查找时,使用 `npm:<package>`:
|
||||
如果你只想使用 npm 解析而不进行 ClawHub 查询,请使用 `npm:<package>`:
|
||||
|
||||
```bash
|
||||
openclaw plugins install npm:openclaw-codex-app-server
|
||||
```
|
||||
|
||||
插件安装会在归档安装运行前验证声明的 `pluginApi` 和
|
||||
`minGatewayVersion` 兼容性,因此不兼容的主机会尽早关闭失败,而不是部分安装
|
||||
该包。当某个包版本发布 ClawPack 构件时,
|
||||
OpenClaw 会优先使用该构件,验证 ClawHub 摘要标头和
|
||||
已下载字节,并记录 ClawPack 摘要元数据以供后续
|
||||
更新使用。没有 ClawPack 元数据的旧包版本仍使用
|
||||
旧版包归档验证路径。
|
||||
插件安装会在归档安装运行之前验证声明的 `pluginApi` 和
|
||||
`minGatewayVersion` 兼容性,因此不兼容的主机会尽早失败并关闭流程,而不是部分安装
|
||||
该软件包。当某个软件包版本发布 ClawPack 工件时,
|
||||
OpenClaw 会优先使用上传的精确 npm-pack `.tgz`,验证 ClawHub 摘要标头和
|
||||
下载的字节,并记录 ClawPack 摘要元数据以供之后
|
||||
更新使用。没有 ClawPack 元数据的旧软件包版本仍使用
|
||||
旧版软件包归档验证路径。
|
||||
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
<Note>
|
||||
`openclaw plugins install clawhub:...` 只接受可安装的插件
|
||||
系列。如果 ClawHub 包实际是一个 Skill,OpenClaw 会停止并
|
||||
系列。如果某个 ClawHub 软件包实际上是一个 skill,OpenClaw 会停止并
|
||||
改为指向 `openclaw skills install <slug>`。
|
||||
|
||||
匿名 ClawHub 插件安装也会对私有包关闭失败。
|
||||
社区或其他非官方渠道仍然可以安装,但 OpenClaw
|
||||
会发出警告,以便操作员在启用它们前审查来源和验证。
|
||||
匿名 ClawHub 插件安装也会对私有软件包失败并关闭流程。
|
||||
社区或其他非官方渠道仍可安装,但 OpenClaw
|
||||
会发出警告,以便操作员在启用前审查来源和验证结果。
|
||||
</Note>
|
||||
|
||||
## ClawHub 是什么
|
||||
|
||||
- OpenClaw Skills 和插件的公共注册表。
|
||||
- Skill 捆绑包和元数据的版本化存储。
|
||||
- skill 包和元数据的版本化存储。
|
||||
- 用于搜索、标签和使用信号的发现界面。
|
||||
|
||||
典型 Skill 是一个版本化文件捆绑包,包含:
|
||||
典型的 skill 是一个包含以下内容的版本化文件包:
|
||||
|
||||
- 一个带有主要描述和用法的 `SKILL.md` 文件。
|
||||
- Skill 使用的可选配置、脚本或支持文件。
|
||||
- 一个包含主要说明和用法的 `SKILL.md` 文件。
|
||||
- skill 使用的可选配置、脚本或支持文件。
|
||||
- 标签、摘要和安装要求等元数据。
|
||||
|
||||
ClawHub 使用元数据支持发现,并安全地公开 Skill
|
||||
能力。注册表跟踪使用信号(星标、下载量)以
|
||||
改进排序和可见性。每次发布都会创建新的 semver
|
||||
版本,并且注册表会保留版本历史,以便用户审计
|
||||
ClawHub 使用元数据来支持发现,并安全地公开 skill
|
||||
能力。注册表会跟踪使用信号(star、下载量),以
|
||||
提升排序和可见性。每次发布都会创建一个新的 semver
|
||||
版本,并且注册表会保留版本历史,便于用户审计
|
||||
变更。
|
||||
|
||||
## 工作区和 Skill 加载
|
||||
## 工作区和 skill 加载
|
||||
|
||||
单独的 `clawhub` CLI 也会将 Skills 安装到当前工作目录下的
|
||||
`./skills`。如果配置了 OpenClaw 工作区,
|
||||
单独的 `clawhub` CLI 也会把 Skills 安装到
|
||||
当前工作目录下的 `./skills`。如果已配置 OpenClaw 工作区,
|
||||
`clawhub` 会回退到该工作区,除非你覆盖 `--workdir`
|
||||
(或 `CLAWHUB_WORKDIR`)。OpenClaw 从
|
||||
(或 `CLAWHUB_WORKDIR`)。OpenClaw 会从
|
||||
`<workspace>/skills` 加载工作区 Skills,并在**下一个**会话中加载它们。
|
||||
|
||||
如果你已经使用 `~/.openclaw/skills` 或内置 Skills,工作区
|
||||
Skills 优先。有关 Skills 如何加载、
|
||||
共享和受控的更多详情,请参阅 [Skills](/zh-CN/tools/skills)。
|
||||
Skills 会优先。关于 Skills 如何加载、
|
||||
共享和受控的更多细节,请参阅 [Skills](/zh-CN/tools/skills)。
|
||||
|
||||
## 服务功能
|
||||
|
||||
@ -145,41 +144,41 @@ Skills 优先。有关 Skills 如何加载、
|
||||
| 公开浏览 | Skills 及其 `SKILL.md` 内容可公开查看。 |
|
||||
| 搜索 | 由嵌入驱动(向量搜索),不只是关键词。 |
|
||||
| 版本控制 | Semver、变更日志和标签(包括 `latest`)。 |
|
||||
| 下载 | 每个版本一个 Zip。 |
|
||||
| 星标和评论 | 社区反馈。 |
|
||||
| 安全扫描摘要 | 详情页面在安装或下载前显示最新扫描状态。 |
|
||||
| 扫描器详情页面 | VirusTotal、ClawScan 和静态分析结果有深层链接。 |
|
||||
| 所有者恢复仪表板 | 发布者可以从 `/dashboard` 查看因扫描而被保留的自有内容。 |
|
||||
| 所有者请求重新扫描 | 所有者可以请求有限次数的重新扫描,用于误报恢复。 |
|
||||
| 内容审核 | 批准和审计。 |
|
||||
| CLI 友好的 API | 适合自动化和脚本。 |
|
||||
| 下载 | 每个版本一个 zip。 |
|
||||
| Star 和评论 | 社区反馈。 |
|
||||
| 安全扫描摘要 | 详情页会在安装或下载前显示最新扫描状态。 |
|
||||
| 扫描器详情页 | VirusTotal、ClawScan 和静态分析结果都有深层链接。 |
|
||||
| 所有者恢复仪表板 | 发布者可以在 `/dashboard` 查看因扫描而暂缓的自有内容。 |
|
||||
| 所有者请求重新扫描 | 所有者可以为误报恢复请求有限次数的重新扫描。 |
|
||||
| 审核 | 批准和审计。 |
|
||||
| CLI 友好的 API | 适合自动化和脚本编写。 |
|
||||
|
||||
## 安全和内容审核
|
||||
## 安全与审核
|
||||
|
||||
ClawHub 默认开放,任何人都可以上传 Skills,但 GitHub
|
||||
账号必须**至少存在一周**才能发布。这会减缓
|
||||
滥用,而不会阻止合法贡献者。
|
||||
账号必须**至少创建一周**才能发布。这可以减缓
|
||||
滥用,同时不阻碍合法贡献者。
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="安全扫描">
|
||||
ClawHub 对已发布的 Skills 和插件
|
||||
发布版本运行自动安全检查。公开详情页面会总结当前结果,扫描器
|
||||
行链接到 VirusTotal、ClawScan 和静态
|
||||
分析的专用详情页面。
|
||||
ClawHub 会对已发布的 Skills 和插件
|
||||
release 运行自动化安全检查。公开详情页会汇总当前结果,扫描器
|
||||
行会链接到 VirusTotal、ClawScan 和静态
|
||||
分析的专用详情页。
|
||||
|
||||
因扫描保留或被阻止的发布版本可能无法在公开目录和
|
||||
安装界面中使用,但其所有者仍可在 `/dashboard` 中看到。
|
||||
因扫描被暂缓或阻止的 release 可能不会出现在公共目录和
|
||||
安装界面中,但其所有者仍可在 `/dashboard` 中看到。
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="举报">
|
||||
- 任何已登录用户都可以举报 Skill。
|
||||
- 举报原因是必填项并会被记录。
|
||||
- 任何已登录用户都可以举报 skill。
|
||||
- 必须提供举报原因,并且会被记录。
|
||||
- 每个用户同一时间最多可以有 20 个活跃举报。
|
||||
- 默认情况下,超过 3 个唯一举报的 Skills 会被自动隐藏。
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="内容审核">
|
||||
- 审核员可以查看隐藏的 Skills、取消隐藏、删除它们,或封禁用户。
|
||||
<Accordion title="审核">
|
||||
- 审核员可以查看隐藏的 Skills、取消隐藏、删除它们或封禁用户。
|
||||
- 滥用举报功能可能导致账号被封禁。
|
||||
- 有兴趣成为审核员?请在 OpenClaw Discord 中询问,并联系审核员或维护者。
|
||||
|
||||
@ -188,12 +187,13 @@ ClawHub 默认开放,任何人都可以上传 Skills,但 GitHub
|
||||
|
||||
## ClawHub CLI
|
||||
|
||||
你只需要在发布/同步等需要注册表认证的工作流中使用它。
|
||||
只有在发布/同步等需要注册表身份验证的工作流中
|
||||
才需要它。
|
||||
|
||||
### 全局选项
|
||||
|
||||
<ParamField path="--workdir <dir>" type="string">
|
||||
工作目录。默认值:当前目录;回退到 OpenClaw 工作区。
|
||||
工作目录。默认:当前目录;回退到 OpenClaw 工作区。
|
||||
</ParamField>
|
||||
<ParamField path="--dir <dir>" type="string" default="skills">
|
||||
Skills 目录,相对于工作目录。
|
||||
@ -214,7 +214,7 @@ ClawHub 默认开放,任何人都可以上传 Skills,但 GitHub
|
||||
### 命令
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="认证(登录 / 登出 / whoami)">
|
||||
<Accordion title="身份验证(登录 / 注销 / whoami)">
|
||||
```bash
|
||||
clawhub login # browser flow
|
||||
clawhub login --token <token>
|
||||
@ -224,8 +224,8 @@ ClawHub 默认开放,任何人都可以上传 Skills,但 GitHub
|
||||
|
||||
登录选项:
|
||||
|
||||
- `--token <token>` — 粘贴 API 令牌。
|
||||
- `--label <label>` — 为浏览器登录令牌存储的标签(默认:`CLI token`)。
|
||||
- `--token <token>` — 粘贴 API token。
|
||||
- `--label <label>` — 为浏览器登录 token 存储的标签(默认:`CLI token`)。
|
||||
- `--no-browser` — 不打开浏览器(需要 `--token`)。
|
||||
|
||||
</Accordion>
|
||||
@ -234,7 +234,7 @@ ClawHub 默认开放,任何人都可以上传 Skills,但 GitHub
|
||||
clawhub search "query"
|
||||
```
|
||||
|
||||
搜索 Skills。对于插件/包发现,请使用 `clawhub package explore`。
|
||||
搜索 Skills。对于插件/软件包发现,请使用 `clawhub package explore`。
|
||||
|
||||
- `--limit <n>` — 最大结果数。
|
||||
|
||||
@ -246,15 +246,15 @@ ClawHub 默认开放,任何人都可以上传 Skills,但 GitHub
|
||||
clawhub package inspect episodic-claw
|
||||
```
|
||||
|
||||
`package explore` 和 `package inspect` 是 ClawHub CLI 用于插件/包发现和元数据检查的界面。原生 OpenClaw 安装仍使用 `openclaw plugins install clawhub:<package>`。
|
||||
`package explore` 和 `package inspect` 是 ClawHub CLI 中用于插件/软件包发现和元数据检查的界面。原生 OpenClaw 安装仍使用 `openclaw plugins install clawhub:<package>`。
|
||||
|
||||
选项:
|
||||
|
||||
- `--family skill|code-plugin|bundle-plugin` — 过滤包系列。
|
||||
- `--official` — 只显示官方包。
|
||||
- `--executes-code` — 只显示会执行代码的包。
|
||||
- `--version <version>` / `--tag <tag>` — 检查特定包版本。
|
||||
- `--versions`, `--files`, `--file <path>` — 检查包历史和文件。
|
||||
- `--family skill|code-plugin|bundle-plugin` — 筛选软件包系列。
|
||||
- `--official` — 只显示官方软件包。
|
||||
- `--executes-code` — 只显示执行代码的软件包。
|
||||
- `--version <version>` / `--tag <tag>` — 检查特定软件包版本。
|
||||
- `--versions`、`--files`、`--file <path>` — 检查软件包历史和文件。
|
||||
- `--json` — 机器可读输出。
|
||||
|
||||
</Accordion>
|
||||
@ -268,9 +268,9 @@ ClawHub 默认开放,任何人都可以上传 Skills,但 GitHub
|
||||
|
||||
选项:
|
||||
|
||||
- `--version <version>` — 安装或更新到特定版本(`update` 上仅限单个 slug)。
|
||||
- `--version <version>` — 安装或更新到特定版本(`update` 上仅支持单个 slug)。
|
||||
- `--force` — 如果文件夹已存在,或本地文件与任何已发布版本都不匹配,则覆盖。
|
||||
- `clawhub list` 读取 `.clawhub/lock.json`。
|
||||
- `clawhub list` 会读取 `.clawhub/lock.json`。
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="发布 Skills">
|
||||
@ -280,7 +280,7 @@ ClawHub 默认开放,任何人都可以上传 Skills,但 GitHub
|
||||
|
||||
选项:
|
||||
|
||||
- `--slug <slug>` — Skill slug。
|
||||
- `--slug <slug>` — skill slug。
|
||||
- `--name <name>` — 显示名称。
|
||||
- `--version <version>` — semver 版本。
|
||||
- `--changelog <text>` — 变更日志文本(可以为空)。
|
||||
@ -297,9 +297,9 @@ ClawHub 默认开放,任何人都可以上传 Skills,但 GitHub
|
||||
|
||||
选项:
|
||||
|
||||
- `--dry-run` — 构建精确的发布计划,但不上传任何内容。
|
||||
- `--json` — 为 CI 输出机器可读内容。
|
||||
- `--source-repo`, `--source-commit`, `--source-ref` — 当自动检测不足时使用的可选覆盖项。
|
||||
- `--dry-run` — 构建精确的发布计划,不上传任何内容。
|
||||
- `--json` — 为 CI 输出机器可读结果。
|
||||
- `--source-repo`、`--source-commit`、`--source-ref` — 自动检测不足时的可选覆盖项。
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="请求重新扫描">
|
||||
@ -311,21 +311,21 @@ ClawHub 默认开放,任何人都可以上传 Skills,但 GitHub
|
||||
clawhub package rescan <name> --yes --json
|
||||
```
|
||||
|
||||
重新扫描命令需要已登录的所有者令牌,并以最新
|
||||
发布的 Skill 版本或插件发布版本为目标。在非交互式运行中,传入
|
||||
重新扫描命令需要已登录的所有者 token,并以最新
|
||||
发布的 skill 版本或插件 release 为目标。在非交互式运行中,请传入
|
||||
`--yes`。
|
||||
|
||||
JSON 响应包含目标类型、名称、版本、重新扫描状态,以及
|
||||
该版本或发布版本的剩余/最大请求次数。
|
||||
该版本或 release 的剩余/最大请求次数。
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="删除 / 恢复删除(所有者或管理员)">
|
||||
<Accordion title="删除 / 取消删除(所有者或管理员)">
|
||||
```bash
|
||||
clawhub delete <slug> --yes
|
||||
clawhub undelete <slug> --yes
|
||||
```
|
||||
</Accordion>
|
||||
<Accordion title="同步(扫描本地 + 发布新增或更新)">
|
||||
<Accordion title="同步(扫描本地 + 发布新的或已更新的)">
|
||||
```bash
|
||||
clawhub sync
|
||||
```
|
||||
@ -333,9 +333,9 @@ ClawHub 默认开放,任何人都可以上传 Skills,但 GitHub
|
||||
选项:
|
||||
|
||||
- `--root <dir...>` — 额外扫描根目录。
|
||||
- `--all` — 不提示,上传所有内容。
|
||||
- `--all` — 无需提示,上传所有内容。
|
||||
- `--dry-run` — 显示将会上传的内容。
|
||||
- `--bump <type>` — 更新时使用的 `patch|minor|major`(默认:`patch`)。
|
||||
- `--bump <type>` — 用于更新的 `patch|minor|major`(默认:`patch`)。
|
||||
- `--changelog <text>` — 非交互式更新的变更日志。
|
||||
- `--tags <tags>` — 逗号分隔的标签(默认:`latest`)。
|
||||
- `--concurrency <n>` — 注册表检查并发数(默认:`4`)。
|
||||
@ -368,7 +368,7 @@ ClawHub 默认开放,任何人都可以上传 Skills,但 GitHub
|
||||
clawhub update --all
|
||||
```
|
||||
</Tab>
|
||||
<Tab title="发布单个 skill">
|
||||
<Tab title="发布单个 Skill">
|
||||
```bash
|
||||
clawhub skill publish ./my-skill --slug my-skill --name "My Skill" --version 1.0.0 --tags latest
|
||||
```
|
||||
@ -412,30 +412,30 @@ ClawHub 默认开放,任何人都可以上传 Skills,但 GitHub
|
||||
}
|
||||
```
|
||||
|
||||
已发布的包应随附**构建后的 JavaScript**,并让 `runtimeExtensions` 指向该输出。Git checkout 安装在没有构建文件时仍可回退到 TypeScript 源码,但构建后的运行时入口可以避免在启动、Doctor 和插件加载路径中进行运行时 TypeScript 编译。
|
||||
已发布的包应附带**构建后的 JavaScript**,并让 `runtimeExtensions` 指向该输出。Git 检出安装在没有构建文件时仍可回退到 TypeScript 源码,但构建后的运行时入口可避免在启动、Doctor 和插件加载路径中进行运行时 TypeScript 编译。
|
||||
|
||||
## 版本控制、lockfile 和遥测
|
||||
## 版本控制、锁文件和遥测
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="版本控制和标签">
|
||||
- 每次发布都会创建一个新的 **semver** `SkillVersion`。
|
||||
- 标签(如 `latest`)指向某个版本;移动标签可让你回滚。
|
||||
- 变更日志按版本附加,在同步或发布更新时可以为空。
|
||||
- 变更日志按版本附加,同步或发布更新时可以为空。
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="本地更改与注册表版本">
|
||||
更新会使用内容哈希将本地 skill 内容与注册表版本进行比较。如果本地文件与任何已发布版本都不匹配,CLI 会在覆盖前询问(或在非交互式运行中要求使用 `--force`)。
|
||||
更新会使用内容哈希将本地 Skill 内容与注册表版本进行比较。如果本地文件不匹配任何已发布版本,CLI 会在覆盖前询问(或在非交互式运行中要求使用 `--force`)。
|
||||
</Accordion>
|
||||
<Accordion title="同步扫描和回退根目录">
|
||||
`clawhub sync` 会先扫描你当前的工作目录。如果未找到 Skills,它会回退到已知的旧版位置(例如 `~/openclaw/skills` 和 `~/.openclaw/skills`)。此设计用于在无需额外标志的情况下找到较旧的 skill 安装。
|
||||
`clawhub sync` 会先扫描你的当前工作目录。如果未找到 Skills,它会回退到已知的旧位置(例如 `~/openclaw/skills` 和 `~/.openclaw/skills`)。这用于在没有额外标志的情况下找到较旧的 Skill 安装。
|
||||
</Accordion>
|
||||
<Accordion title="存储和 lockfile">
|
||||
<Accordion title="存储和锁文件">
|
||||
- 已安装的 Skills 会记录在你的工作目录下的 `.clawhub/lock.json` 中。
|
||||
- 认证令牌存储在 ClawHub CLI 配置文件中(可通过 `CLAWHUB_CONFIG_PATH` 覆盖)。
|
||||
- 身份验证令牌存储在 ClawHub CLI 配置文件中(可通过 `CLAWHUB_CONFIG_PATH` 覆盖)。
|
||||
|
||||
</Accordion>
|
||||
<Accordion title="遥测(安装计数)">
|
||||
当你在登录状态下运行 `clawhub sync` 时,CLI 会发送一个最小快照来计算安装计数。你可以完全禁用此功能:
|
||||
当你在已登录状态下运行 `clawhub sync` 时,CLI 会发送一个最小快照来计算安装计数。你可以完全禁用它:
|
||||
|
||||
```bash
|
||||
export CLAWHUB_DISABLE_TELEMETRY=1
|
||||
@ -446,15 +446,15 @@ ClawHub 默认开放,任何人都可以上传 Skills,但 GitHub
|
||||
|
||||
## 环境变量
|
||||
|
||||
| 变量 | 效果 |
|
||||
| 变量 | 作用 |
|
||||
| ----------------------------- | ----------------------------------------------- |
|
||||
| `CLAWHUB_SITE` | 覆盖站点 URL。 |
|
||||
| `CLAWHUB_REGISTRY` | 覆盖注册表 API URL。 |
|
||||
| `CLAWHUB_CONFIG_PATH` | 覆盖 CLI 存储令牌/配置的位置。 |
|
||||
| `CLAWHUB_WORKDIR` | 覆盖默认工作目录。 |
|
||||
| `CLAWHUB_DISABLE_TELEMETRY=1` | 在 `sync` 时禁用遥测。 |
|
||||
| `CLAWHUB_DISABLE_TELEMETRY=1` | 禁用 `sync` 上的遥测。 |
|
||||
|
||||
## 相关
|
||||
## 相关内容
|
||||
|
||||
- [社区插件](/zh-CN/plugins/community)
|
||||
- [插件](/zh-CN/tools/plugin)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user