夜雨聆风学习资料网

ARTICLE · 1056850

做一个基于openclaw 的hello world插件

做一个基于openclaw 的hello world插件

对任何系统级应用而言,插件是必不可少的模块。通过插件可以在第三方的协助下大大增强系统的可用性,这就像操作系统需要各种应用才能实现其最大功能,本节我们看看openclaw插件系统的设计原理。

对openclaw而言,首先我们要了解它是如何规定插件的定义和结构,我们以Browser这个插件分析一下openclaw插件的结构。插件在文件组织上分为三部分,分别为插件的“简历”,插件的“档案”和插件的“代码”。

插件的简历用来说明插件的基本信息,通常包括“我是谁”,“我在什么情况下执行”,“我具备什么能力”,“简历”通过json格式来体现(extensions/browser/openclaw.plugin.json),例如下面browser插件的简历内容如下:

{
"id""browser",
 enabledByDefault": true,
  "
activation": { "onStartup": true, "onConfigPaths": ["browser"] },
  "
contracts": { "tools": ["browser"] },
  "
commandAliases": [{ "name": "browser" }],
 skills"
: ["./skills"],
"configSchema": { "type""object""additionalProperties"false"properties": {} }
}

上面简历各个字段的作用如下: id:是插件的身份证 configSchema:用于说明配置信息的格式,上面字段的内容说明browser这个插件的配置信息以js object的格式进行组织 enabledByDefault:是否在用户没有明确说明的情况下启用 activation.onStartup:gateway进程启动时是否运行插件 activation.onConfigPaths:在系统配置中,有哪些字段设置上时启动插件 contracts.tools:插件提供哪些功能 commandAliases:插件提供哪些命令行命令 skills:插件附带哪些技能

接下来我们看看插件的“档案”(extensions/browser/openclaw.plugin.json),这里主要告知插件的代码入口文件所在位置:

"openclaw": { "extensions": ["index.ts"] }

上面内容告诉openclaw系统,要运行插件应该去哪里加载它的启动代码,上面内容说明要运行browser插件,那么就在当前目录下找到index.ts这个代码文件,然后加载并运行该文件的代码即可。

接下来我看看插件代码的内容(index.ts):

import { definePluginEntry } from"openclaw/plugin-sdk/plugin-entry";
import { browserPluginNodeHostCommands, browserPluginReload,
         browserSecurityAuditCollectors, registerBrowserPlugin } from"./plugin-registration.js";

exportdefault definePluginEntry({
id"browser",
name"Browser",
description"Default browser tool plugin",
reload: browserPluginReload,
nodeHostCommands: browserPluginNodeHostCommands  securityAuditCollectors: [...browserSecurityAuditCollectors],
register: registerBrowserPlugin,
});

注意它不做任何事——没有顶层副作用,只导出一张"报到表"。真正的行为在 register 字段指向的函数里plugin-registration.ts:99):

exportfunctionregisterBrowserPlugin(api: OpenClawPluginApi{
  api.registerTool(...);          // ① 往菜单登记一个工具(browser 控制)
  api.registerCli(...);           // ② 登记 CLI 命令(openclaw browser ...)
  api.registerGatewayMethod(...); // ③ 登记一个 RPC 方法(browser.request)
  api.registerService(...);       //  登记一个后台服务(browser-control)
}

基于上面的内容,我们动手做一个hello world插件看看。首先插件目录都需要上面说明的三种文件,问题在于我们可以把插件目录放置在任何位置,不一定要放在Opencclaw的extension目录,只有我们在配置文件里告诉openclaw插件在哪里即可。

首先我们选定一个目录,然后创建“hello-world-plugin”文件夹,在该文件夹下面先创建插件的简历,于是在目录下创建文件openclaw.plugin.json,该文件对应内容如下:

{
"id""hello-world",
"name""Hello World",
"description""教学示例插件:弹出 hello world 对话框",
"activation": { "onStartup"true },
"configSchema": { "type""object""additionalProperties"false }
}

id、`configSchema:必填,没商量; activation.onStartup: true:我们要它出现在 gateway 启动名单里 不写 contracts.tools我们不注册工具,写了就是撒谎(契约要求 registerTool 的名字必须能在 manifest 里对上); enabledByDefault 省略:config 源(load.paths)插件默认启用,不需要它

接着创建插件的“档案”,也就是package.json文件,对应内容如下:

{
"name""-world-plugin",
"version""0.0.1",
"private"true,
"type""module",
"openclaw": { "extensions": ["./index.ts"] }
}

"type": "module"必须写(仓库是 ESM only);openclaw.extensions 指向入口。

最后创建插件的入口文件代码index.ts,内容如下:

import { spawn } from"node:child_process";
import { definePluginEntry } from"openclaw/plugin-sdk/plugin-entry";

functionshowHelloDialog(): void{
  spawn(
"powershell.exe",
    [
"-NoProfile",
"-Command",
"Add-Type -AssemblyName PresentationFramework; " +
"[System.Windows.MessageBox]::Show('Hello world!','OpenClaw')",
    ],
    { detachedtruestdio"ignore" },
  ).unref();
}

exportdefault definePluginEntry({
id"hello-world",
name"Hello World",
description"教学示例插件:弹出 hello world 对话框",
  register(api) {
    api.registerCli(
({ program }) => {
        program
          .command("hello")
          .description("Pop a hello world dialog")
          .action(() => {
console.log("hello world! 对话框已弹出");
            showHelloDialog();
          });
      },
      {
commands: ["hello"],
descriptors: [
          { name"hello"description"Pop a hello world dialog"hasSubcommandsfalse },
        ],
      },
    );
  },
});

对于上面代码的逻辑我们先不深究,它的作用是在控制台显示“Hello world!”字符串,后续我们在深入插件代码的逻辑和框架。完成上面三个文件后,我们在openclaw.json(我本地目录为C:\Users\OseasyVM.openclaw) 的 plugins.load.path中加入我们上面插件文件夹所在路径:

"load": {
"paths": [
"C:/Users/OseasyVM/hello-world-plugin"
      ]

完成上面工作后,我们先在openclaw代码根目录下执行如下命令,查看一下当前插件都有哪些: node --import tsx src/entry.ts plugins list 上面命令执行后得到如下结果:

 OpenClaw 2026.5.20 (bde07dd) — I've survived more breaking changes than your last three relationships.

Plugins (72/125 enabled)
Source roots:
  stock: C:\Users\OseasyVM\Documents\openclaw\dist\extensions

┌──────────────┬──────────┬──────────┬──────────┬────────────────────────────────────────────────┬───────────┐
│ Name         │ ID       │ Format   │ Status   │ Source                                         │ Version   │
├──────────────┼──────────┼──────────┼──────────┼────────────────────────────────────────────────┼───────────┤
│ Hello World  │ hello-   │ openclaw │ enabled  │ ~\hello-world-plugin\index.ts                  │ 0.0.1     │
│              │ world    │          │          │ 教学示例插件:弹出 hello world 对话框          │           │
│ ACPX Runtime │ acpx     │ openclaw │ enabled  │ stock:acpx/index.js                            │ 2026.5.20 │
│              │          │          │          │ Embedded ACP runtime backend with plugin-      │           │
│              │          │          │          │ owned session and transport management.        │           │
│ Active       │ active-  │ openclaw │ disabled │ stock:active-memory/index.js                   │           │
│ Memory       │ memory   │          │          │ Runs a bounded blocking memory sub-agent       │           │
│              │          │          │          │ before eligible conversational replies and     │           │
│              │          │          │          │ injects relevant memory into prompt context.   │           │
│ @openclaw/   │ admin-   │ openclaw │ disabled │ stock:admin-http-rpc/index.js                  │ 2026.5.20 │
│ admin-http-  │ http-rpc │          │          │                                                │           │
│ rpc          │          │          │          │                                                │           │
│ @openclaw/   │ alibaba  │ openclaw │ enabled  │ stock:alibaba/index.js                         │ 2026.5.20 │
│ alibaba-     │          │          │          │                                                │           │
│ provider     │          │          │          │                                                │           │
│ @openclaw/   │ anthropi │ openclaw │ enabled  │ stock:anthropic/index.js                       │ 2026.5.20 │
│ anthropic-   │ c        │          │          │                                                │           │
│ provider     │          │          │          │                                                │           │
│ @openclaw/   │ arcee    │ openclaw │ enabled  │ stock:arcee/index.js                           │ 2026.5.20 │
│ arcee-       │          │          │          │                                                │           │
│ provider     │          │          │          │                                                │           │
│ Azure Speech │ azure-   │ openclaw │ enabled  │ stock:azure-speech/index.js                    │ 2026.5.20 │
│              │ speech   │          │          │ Azure AI Speech text-to-speech (MP3, native    │           │
│              │          │          │          │ Ogg/Opus voice notes, PCM telephony).          │           │
│ Bonjour      │ bonjour  │ openclaw │ disabled │ stock:bonjour/index.js                         │ 2026.5.20 │
│ Gateway      │          │          │          │ Advertise the local OpenClaw gateway over      │           │
│ Discovery    │          │          │          │ Bonjour/mDNS.                                  │           │
│ @openclaw/   │ brave    │ openclaw │ disabled │ stock:brave/index.js                           │ 2026.5.20 │
│ brave-plugin │          │          │          │                                                │           │
│ @openclaw/   │ browser  │ openclaw │ enabled  │ stock:browser/index.js                         │ 2026.5.20 │
│ browser-     │          │          │          │                                                │           │
│ plugin       │          │          │          │                                                │           │
│ @openclaw/   │ byteplus │ openclaw │ enabled  │ stock:byteplus/index.js                        │ 2026.5.20 │
│ byteplus-    │          │          │          │                                                │           │
│ provider     │          │          │          │                                                │           │
│ Canvas       │ canvas   │ openclaw │ enabled  │ stock:canvas/index.js                          │ 2026.5.20 │
│              │          │          │          │ Experimental Canvas control and A2UI           │           │
│              │          │          │          │ rendering surfaces for paired nodes.           │           │
│ @openclaw/   │ cerebras │ openclaw │ enabled  │ stock:cerebras/index.js                        │ 2026.5.20 │
│ cerebras-    │          │          │          │                                                │           │
│ provider     │          │          │          │                                                │           │
│ @openclaw/   │ chutes   │ openclaw │ enabled  │ stock:chutes/index.js                          │ 2026.5.20 │
│ chutes-      │          │          │          │                                                │           │
│ provider     │          │          │          │                                                │           │
│ @openclaw/   │ clickcla │ openclaw │ enabled  │ stock:clickclack/index.js                      │ 2026.5.20 │
│ clickclack   │ ck       │          │          │                                                │           │
│ @openclaw/   │ cloudfla │ openclaw │ enabled  │ stock:cloudflare-ai-gateway/index.js           │ 2026.5.20 │
│ cloudflare-  │ re-ai-   │          │          │                                                │           │
│ ai-gateway-  │ gateway  │          │          │                                                │           │
│ provider     │          │          │          │                                                │           │
│ Codex        │ codex    │ openclaw │ disabled │ stock:codex/index.js                           │ 2026.5.20 │
│              │          │          │          │ Codex app-server harness and Codex-managed     │           │
│              │          │          │          │ GPT model catalog.                             │           │
│ @openclaw/   │ comfy    │ openclaw │ enabled  │ stock:comfy/index.js                           │ 2026.5.20 │
│ comfy-       │          │          │          │                                                │           │
│ provider     │          │          │          │                                                │           │
│ @openclaw/   │ copilot- │ openclaw │ enabled  │ stock:copilot-proxy/index.js                   │ 2026.5.20 │
│ copilot-     │ proxy    │          │          │                                                │           │
│ proxy        │          │          │          │                                                │           │
│ @openclaw/   │ deepgram │ openclaw │ enabled  │ stock:deepgram/index.js                        │ 2026.5.20 │
│ deepgram-    │          │          │          │                                                │           │
│ provider     │          │          │          │                                                │           │
│ @openclaw/   │ deepinfr │ openclaw │ enabled  │ stock:deepinfra/index.js                       │ 2026.5.20 │
│ deepinfra-   │ a        │          │          │                                                │           │
│ provider     │          │          │          │                                                │           │
│ @openclaw/   │ deepseek │ openclaw │ enabled  │ stock:deepseek/index.js                        │ 2026.5.20 │
│ deepseek-    │          │          │          │                                                │           │
│ provider     │          │          │          │                                                │           │
│ Device       │ device-  │ openclaw │ enabled  │ stock:device-pair/index.js                     │           │
│ Pairing      │ pair     │          │          │ Generate setup codes and approve device        │           │
│              │          │          │          │ pairing requests.                              │           │
│ @openclaw/   │ diagnost │ openclaw │ disabled │ stock:diagnostics-otel/index.js                │ 2026.5.20 │
│ diagnostics- │ ics-otel │          │          │                                                │           │
│ otel         │          │          │          │                                                │           │
│ @openclaw/   │ diagnost │ openclaw │ disabled │ stock:diagnostics-prometheus/index.js          │ 2026.5.20 │
│ diagnostics- │ ics-     │          │          │                                                │           │
│ prometheus   │ promethe │          │          │                                                │           │
│              │ us       │          │          │                                                │           │
│ Diffs        │ diffs    │ openclaw │ disabled │ stock:diffs/index.js                           │ 2026.5.20 │
│              │          │          │          │ Read-only diff viewer and file renderer for    │           │
│              │          │          │          │ agents.                                        │           │
│ @openclaw/   │ discord  │ openclaw │ disabled │ stock:discord/index.js                         │ 2026.5.20 │
│ discord      │          │          │          │                                                │           │
│ Document     │ document │ openclaw │ enabled  │ stock:document-extract/index.js                │ 2026.5.20 │
│ Extraction   │ -extract │          │          │ Extract text and fallback page images from     │           │
│              │          │          │          │ local document attachments.                    │           │
│ @openclaw/   │ duckduck │ openclaw │ disabled │ stock:duckduckgo/index.js                      │ 2026.5.20 │
│ duckduckgo-  │ go       │          │          │                                                │           │
│ plugin       │          │          │          │                                                │           │
│ @openclaw/   │ elevenla │ openclaw │ enabled  │ stock:elevenlabs/index.js                      │ 2026.5.20 │
│ elevenlabs-  │ bs       │          │          │                                                │           │
│ speech       │          │          │          │                                                │           │
│ @openclaw/   │ exa      │ openclaw │ disabled │ stock:exa/index.js                             │ 2026.5.20 │
│ exa-plugin   │          │          │          │                                                │           │
│ @openclaw/   │ fal      │ openclaw │ enabled  │ stock:fal/index.js                             │ 2026.5.20 │
│ fal-provider │          │          │          │                                                │           │
│ @openclaw/   │ feishu   │ openclaw │ enabled  │ ~\.openclaw\npm\node_                          │ 2026.5.22 │
│ feishu       │          │          │          │ modules\@openclaw\feishu\dist\index.js         │           │
│ File         │ file-    │ openclaw │ enabled  │ stock:file-transfer/index.js                   │ 2026.5.20 │
│ Transfer     │ transfer │          │          │ Fetch, list, and write files on paired nodes   │           │
│              │          │          │          │ via dedicated node commands. Bypasses bash     │           │
│              │          │          │          │ stdout truncation by using base64 over node.   │           │
│              │          │          │          │ invoke for binaries up to 16 MB.               │           │
│ @openclaw/   │ firecraw │ openclaw │ disabled │ stock:firecrawl/index.js                       │ 2026.5.20 │
│ firecrawl-   │ l        │          │          │                                                │           │
│ plugin       │          │          │          │                                                │           │
│ @openclaw/   │ firework │ openclaw │ enabled  │ stock:fireworks/index.js                       │ 2026.5.20 │
│ fireworks-   │ s        │          │          │                                                │           │
│ provider     │          │          │          │                                                │           │
│ @openclaw/   │ github-  │ openclaw │ enabled  │ stock:github-copilot/index.js                  │ 2026.5.20 │
│ github-      │ copilot  │          │          │                                                │           │
│ copilot-     │          │          │          │                                                │           │
│ provider     │          │          │          │                                                │           │
│ @openclaw/   │ google   │ openclaw │ enabled  │ stock:google/index.js                          │ 2026.5.20 │
│ google-      │          │          │          │                                                │           │
│ plugin       │          │          │          │                                                │           │
│ Google Meet  │ google-  │ openclaw │ disabled │ stock:google-meet/index.js                     │ 2026.5.20 │
│              │ meet     │          │          │ Join Google Meet calls through Chrome or       │           │
│              │          │          │          │ Twilio transports.                             │           │
│ @openclaw/   │ googlech │ openclaw │ disabled │ stock:googlechat/index.js                      │ 2026.5.20 │
│ googlechat   │ at       │          │          │                                                │           │
│ @openclaw/   │ gradium  │ openclaw │ disabled │ stock:gradium/index.js                         │ 2026.5.20 │
│ gradium-     │          │          │          │                                                │           │
│ speech       │          │          │          │                                                │           │
│ @openclaw/   │ groq     │ openclaw │ enabled  │ stock:groq/index.js                            │ 2026.5.20 │
│ groq-        │          │          │          │                                                │           │
│ provider     │          │          │          │                                                │           │
│ @openclaw/   │ huggingf │ openclaw │ enabled  │ stock:huggingface/index.js                     │ 2026.5.20 │
│ huggingface- │ ace      │          │          │                                                │           │
│ provider     │          │          │          │                                                │           │
│ @openclaw/   │ imessage │ openclaw │ disabled │ stock:imessage/index.js                        │ 2026.5.20 │
│ imessage     │          │          │          │                                                │           │
│ Inworld      │ inworld  │ openclaw │ enabled  │ stock:inworld/index.js                         │ 2026.5.20 │
│              │          │          │          │ Inworld streaming text-to-speech (MP3, OGG_    │           │
│              │          │          │          │ OPUS, PCM telephony).                          │           │
│ @openclaw/   │ irc      │ openclaw │ disabled │ stock:irc/index.js                             │ 2026.5.20 │
│ irc          │          │          │          │                                                │           │
│ @openclaw/   │ kilocode │ openclaw │ enabled  │ stock:kilocode/index.js                        │ 2026.5.20 │
│ kilocode-    │          │          │          │                                                │           │
│ provider     │          │          │          │                                                │           │
│ @openclaw/   │ kimi     │ openclaw │ enabled  │ stock:kimi-coding/index.js                     │ 2026.5.20 │
│ kimi-        │          │          │          │                                                │           │
│ provider     │          │          │          │                                                │           │
│ @openclaw/   │ line     │ openclaw │ disabled │ stock:line/index.js                            │ 2026.5.20 │
│ line         │          │          │          │                                                │           │
│ @openclaw/   │ litellm  │ openclaw │ enabled  │ stock:litellm/index.js                         │ 2026.5.20 │
│ litellm-     │          │          │          │                                                │           │
│ provider     │          │          │          │                                                │           │
│ LLM Task     │ llm-task │ openclaw │ disabled │ stock:llm-task/index.js                        │ 2026.5.20 │
│              │          │          │          │ Generic JSON-only LLM tool for structured      │           │
│              │          │          │          │ tasks callable from workflows.                 │           │
│ @openclaw/   │ lmstudio │ openclaw │ enabled  │ stock:lmstudio/index.js                        │ 2026.5.20 │
│ lmstudio-    │          │          │          │                                                │           │
│ provider     │          │          │          │                                                │           │
│ Lobster      │ lobster  │ openclaw │ disabled │ stock:lobster/index.js                         │ 2026.5.20 │
│              │          │          │          │ Typed workflow tool with resumable approvals.  │           │
│ @openclaw/   │ matrix   │ openclaw │ disabled │ stock:matrix/index.js                          │ 2026.5.20 │
│ matrix       │          │          │          │                                                │           │
│ @openclaw/   │ mattermo │ openclaw │ disabled │ stock:mattermost/index.js                      │ 2026.5.20 │
│ mattermost   │ st       │          │          │                                                │           │
│ @openclaw/   │ memory-  │ openclaw │ enabled  │ stock:memory-core/index.js                     │ 2026.5.20 │
│ memory-core  │ core     │          │          │                                                │           │
│ @openclaw/   │ memory-  │ openclaw │ disabled │ stock:memory-lancedb/index.js                  │ 2026.5.20 │
│ memory-      │ lancedb  │          │          │                                                │           │
│ lancedb      │          │          │          │                                                │           │
│ Memory Wiki  │ memory-  │ openclaw │ disabled │ stock:memory-wiki/index.js                     │ 2026.5.20 │
│              │ wiki     │          │          │ Persistent wiki compiler and Obsidian-         │           │
│              │          │          │          │ friendly knowledge vault for OpenClaw.         │           │
│ @openclaw/   │ microsof │ openclaw │ enabled  │ stock:microsoft/index.js                       │ 2026.5.20 │
│ microsoft-   │ t        │          │          │                                                │           │
│ speech       │          │          │          │                                                │           │
│ @openclaw/   │ microsof │ openclaw │ enabled  │ stock:microsoft-foundry/index.js               │ 2026.5.20 │
│ microsoft-   │ t-       │          │          │                                                │           │
│ foundry      │ foundry  │          │          │                                                │           │
│ Claude       │ migrate- │ openclaw │ disabled │ stock:migrate-claude/index.js                  │ 2026.5.20 │
│ Migration    │ claude   │          │          │ Imports Claude Code and Claude Desktop         │           │
│              │          │          │          │ instructions, MCP servers, skills, and safe    │           │
│              │          │          │          │ configuration into OpenClaw.                   │           │
│ Hermes       │ migrate- │ openclaw │ disabled │ stock:migrate-hermes/index.js                  │ 2026.5.20 │
│ Migration    │ hermes   │          │          │ Imports Hermes configuration, memories,        │           │
│              │          │          │          │ skills, and supported credentials into         │           │
│              │          │          │          │ OpenClaw.                                      │           │
│ @openclaw/   │ minimax  │ openclaw │ enabled  │ stock:minimax/index.js                         │ 2026.5.20 │
│ minimax-     │          │          │          │                                                │           │
│ provider     │          │          │          │                                                │           │
│ @openclaw/   │ mistral  │ openclaw │ enabled  │ stock:mistral/index.js                         │ 2026.5.20 │
│ mistral-     │          │          │          │                                                │           │
│ provider     │          │          │          │                                                │           │
│ @openclaw/   │ moonshot │ openclaw │ enabled  │ stock:moonshot/index.js                        │ 2026.5.20 │
│ moonshot-    │          │          │          │                                                │           │
│ provider     │          │          │          │                                                │           │
│ @openclaw/   │ msteams  │ openclaw │ disabled │ stock:msteams/index.js                         │ 2026.5.20 │
│ msteams      │          │          │          │                                                │           │
│ @openclaw/   │ nextclou │ openclaw │ disabled │ stock:nextcloud-talk/index.js                  │ 2026.5.20 │
│ nextcloud-   │ d-talk   │          │          │                                                │           │
│ talk         │          │          │          │                                                │           │
│ @openclaw/   │ nostr    │ openclaw │ disabled │ stock:nostr/index.js                           │ 2026.5.20 │
│ nostr        │          │          │          │                                                │           │
│ @openclaw/   │ nvidia   │ openclaw │ enabled  │ stock:nvidia/index.js                          │ 2026.5.20 │
│ nvidia-      │          │          │          │                                                │           │
│ provider     │          │          │          │                                                │           │
│ OC Path      │ oc-path  │ openclaw │ disabled │ stock:oc-path/index.js                         │ 2026.5.20 │
│              │          │          │          │ Adds the openclaw path CLI for oc://           │           │
│              │          │          │          │ workspace file addressing.                     │           │
│ @openclaw/   │ ollama   │ openclaw │ enabled  │ stock:ollama/index.js                          │ 2026.5.20 │
│ ollama-      │          │          │          │                                                │           │
│ provider     │          │          │          │                                                │           │
│ OpenProse    │ open-    │ openclaw │ disabled │ stock:open-prose/index.js                      │ 2026.5.20 │
│              │ prose    │          │          │ OpenProse VM skill pack with a /prose slash    │           │
│              │          │          │          │ command.                                       │           │
│ @openclaw/   │ openai   │ openclaw │ enabled  │ stock:openai/index.js                          │ 2026.5.20 │
│ openai-      │          │          │          │                                                │           │
│ provider     │          │          │          │                                                │           │
│ @openclaw/   │ opencode │ openclaw │ enabled  │ stock:opencode/index.js                        │ 2026.5.20 │
│ opencode-    │          │          │          │                                                │           │
│ provider     │          │          │          │                                                │           │
│ @openclaw/   │ opencode │ openclaw │ enabled  │ stock:opencode-go/index.js                     │ 2026.5.20 │
│ opencode-go- │ -go      │          │          │                                                │           │
│ provider     │          │          │          │                                                │           │
│ @openclaw/   │ openrout │ openclaw │ enabled  │ stock:openrouter/index.js                      │ 2026.5.20 │
│ openrouter-  │ er       │          │          │                                                │           │
│ provider     │          │          │          │                                                │           │
│ @openclaw/   │ perplexi │ openclaw │ disabled │ stock:perplexity/index.js                      │ 2026.5.20 │
│ perplexity-  │ ty       │          │          │                                                │           │
│ plugin       │          │          │          │                                                │           │
│ Phone        │ phone-   │ openclaw │ enabled  │ stock:phone-control/index.js                   │           │
│ Control      │ control  │          │          │ Arm/disarm high-risk phone node commands       │           │
│              │          │          │          │ (camera/screen/writes) with an optional auto-  │           │
│              │          │          │          │ expiry.                                        │           │
│ Policy       │ policy   │ openclaw │ disabled │ stock:policy/index.js                          │ 2026.5.20 │
│              │          │          │          │ Adds policy-backed doctor checks for           │           │
│              │          │          │          │ workspace conformance.                         │           │
│ @openclaw/   │ qianfan  │ openclaw │ enabled  │ stock:qianfan/index.js                         │ 2026.5.20 │
│ qianfan-     │          │          │          │                                                │           │
│ provider     │          │          │          │                                                │           │
│ @openclaw/   │ qwen     │ openclaw │ enabled  │ stock:qwen/index.js                            │ 2026.5.20 │
│ qwen-        │          │          │          │                                                │           │
│ provider     │          │          │          │                                                │           │
│ @openclaw/   │ runway   │ openclaw │ enabled  │ stock:runway/index.js                          │ 2026.5.20 │
│ runway-      │          │          │          │                                                │           │
│ provider     │          │          │          │                                                │           │
│ @openclaw/   │ searxng  │ openclaw │ disabled │ stock:searxng/index.js                         │ 2026.5.20 │
│ searxng-     │          │          │          │                                                │           │
│ plugin       │          │          │          │                                                │           │
│ @openclaw/   │ senseaud │ openclaw │ enabled  │ stock:senseaudio/index.js                      │ 2026.5.20 │
│ senseaudio-  │ io       │          │          │                                                │           │
│ provider     │          │          │          │                                                │           │
│ @openclaw/   │ sglang   │ openclaw │ enabled  │ stock:sglang/index.js                          │ 2026.5.20 │
│ sglang-      │          │          │          │                                                │           │
│ provider     │          │          │          │                                                │           │
│ @openclaw/   │ signal   │ openclaw │ disabled │ stock:signal/index.js                          │ 2026.5.20 │
│ signal       │          │          │          │                                                │           │
│ Skill        │ skill-   │ openclaw │ disabled │ stock:skill-workshop/index.js                  │ 2026.5.20 │
│ Workshop     │ workshop │          │          │ Captures repeatable workflows as workspace     │           │
│              │          │          │          │ skills, with pending review, safe writes, and  │           │
│              │          │          │          │ skill prompt refresh.                          │           │
│ @openclaw/   │ stepfun  │ openclaw │ enabled  │ stock:stepfun/index.js                         │ 2026.5.20 │
│ stepfun-     │          │          │          │                                                │           │
│ provider     │          │          │          │                                                │           │
│ @openclaw/   │ synology │ openclaw │ disabled │ stock:synology-chat/index.js                   │ 2026.5.20 │
│ synology-    │ -chat    │          │          │                                                │           │
│ chat         │          │          │          │                                                │           │
│ @openclaw/   │ syntheti │ openclaw │ enabled  │ stock:synthetic/index.js                       │ 2026.5.20 │
│ synthetic-   │ c        │          │          │                                                │           │
│ provider     │          │          │          │                                                │           │
│ Talk Voice   │ talk-    │ openclaw │ enabled  │ stock:talk-voice/index.js                      │           │
│              │ voice    │          │          │ Manage Talk voice selection (list/set).        │           │
│ @openclaw/   │ tavily   │ openclaw │ disabled │ stock:tavily/index.js                          │ 2026.5.20 │
│ tavily-      │          │          │          │                                                │           │
│ plugin       │          │          │          │                                                │           │
│ @openclaw/   │ telegram │ openclaw │ disabled │ stock:telegram/index.js                        │ 2026.5.20 │
│ telegram     │          │          │          │                                                │           │
│ @openclaw/   │ tencent  │ openclaw │ enabled  │ stock:tencent/index.js                         │ 2026.5.20 │
│ tencent-     │          │          │          │                                                │           │
│ provider     │          │          │          │                                                │           │
│ Thread       │ thread-  │ openclaw │ disabled │ stock:thread-ownership/index.js                │           │
│ Ownership    │ ownershi │          │          │ Prevents multiple agents from responding in    │           │
│              │ p        │          │          │ the same Slack thread. Uses HTTP calls to the  │           │
│              │          │          │          │ slack-forwarder ownership API.                 │           │
│ @openclaw/   │ tlon     │ openclaw │ disabled │ stock:tlon/index.js                            │ 2026.5.20 │
│ tlon         │          │          │          │                                                │           │
│ @openclaw/   │ together │ openclaw │ enabled  │ stock:together/index.js                        │ 2026.5.20 │
│ together-    │          │          │          │                                                │           │
│ provider     │          │          │          │                                                │           │
│ tokenjuice   │          │ openclaw │ disabled │ stock:tokenjuice/index.js                      │ 2026.5.20 │
│              │          │          │          │ Compacts exec and bash tool results with       │           │
│              │          │          │          │ tokenjuice reducers.                           │           │
│ @openclaw/   │ tts-     │ openclaw │ enabled  │ stock:tts-local-cli/index.js                   │ 2026.5.20 │
│ tts-local-   │ local-   │          │          │                                                │           │
│ cli          │ cli      │          │          │                                                │           │
│ @openclaw/   │ twitch   │ openclaw │ disabled │ stock:twitch/index.js                          │ 2026.5.20 │
│ twitch       │          │          │          │                                                │           │
│ @openclaw/   │ venice   │ openclaw │ enabled  │ stock:venice/index.js                          │ 2026.5.20 │
│ venice-      │          │          │          │                                                │           │
│ provider     │          │          │          │                                                │           │
│ @openclaw/   │ vercel-  │ openclaw │ enabled  │ stock:vercel-ai-gateway/index.js               │ 2026.5.20 │
│ vercel-ai-   │ ai-      │          │          │                                                │           │
│ gateway-     │ gateway  │          │          │                                                │           │
│ provider     │          │          │          │                                                │           │
│ @openclaw/   │ vllm     │ openclaw │ enabled  │ stock:vllm/index.js                            │ 2026.5.20 │
│ vllm-        │          │          │          │                                                │           │
│ provider     │          │          │          │                                                │           │
│ @openclaw/   │ voice-   │ openclaw │ disabled │ stock:voice-call/index.js                      │ 2026.5.20 │
│ voice-call   │ call     │          │          │                                                │           │
│ @openclaw/   │ volcengi │ openclaw │ enabled  │ stock:volcengine/index.js                      │ 2026.5.20 │
│ volcengine-  │ ne       │          │          │                                                │           │
│ provider     │          │          │          │                                                │           │
│ @openclaw/   │ voyage   │ openclaw │ enabled  │ stock:voyage/index.js                          │ 2026.5.20 │
│ voyage-      │          │          │          │                                                │           │
│ provider     │          │          │          │                                                │           │
│ @openclaw/   │ vydra    │ openclaw │ enabled  │ stock:vydra/index.js                           │ 2026.5.20 │
│ vydra-       │          │          │          │                                                │           │
│ provider     │          │          │          │                                                │           │
│ Web          │ web-     │ openclaw │ enabled  │ stock:web-readability/index.js                 │ 2026.5.20 │
│ Readability  │ readabil │          │          │ Extract readable article content from local    │           │
│ Extraction   │ ity      │          │          │ HTML web fetch responses.                      │           │
│ Webhooks     │ webhooks │ openclaw │ disabled │ stock:webhooks/index.js                        │ 2026.5.20 │
│              │          │          │          │ Authenticated inbound webhooks that bind       │           │
│              │          │          │          │ external automation to OpenClaw TaskFlows.     │           │
│ @openclaw/   │ xai      │ openclaw │ enabled  │ stock:xai/index.js                             │ 2026.5.20 │
│ xai-plugin   │          │          │          │                                                │           │
│ @openclaw/   │ xiaomi   │ openclaw │ enabled  │ stock:xiaomi/index.js                          │ 2026.5.20 │
│ xiaomi-      │          │          │          │                                                │           │
│ provider     │          │          │          │                                                │           │
│ @openclaw/   │ zai      │ openclaw │ enabled  │ stock:zai/index.js                             │ 2026.5.20 │
│ zai-provider │          │          │          │                                                │           │
│ @openclaw/   │ zalo     │ openclaw │ disabled │ stock:zalo/index.js                            │ 2026.5.20 │
│ zalo         │          │          │          │                                                │           │
│ @openclaw/   │ zalouser │ openclaw │ disabled │ stock:zalouser/index.js                        │ 2026.5.20 │
│ zalouser     │          │          │          │                                                │           │
│ @openclaw/   │ amazon-  │ openclaw │ enabled  │ ~\Documents\openclaw\extensions\amazon-        │ 2026.5.20 │
│ amazon-      │ bedrock  │          │          │ bedrock\index.ts                               │           │
│ bedrock-     │          │          │          │                                                │           │
│ provider     │          │          │          │                                                │           │
│ @openclaw/   │ amazon-  │ openclaw │ enabled  │ ~\Documents\openclaw\extensions\amazon-        │ 2026.5.20 │
│ amazon-      │ bedrock- │          │          │ bedrock-mantle\index.ts                        │           │
│ bedrock-     │ mantle   │          │          │                                                │           │
│ mantle-      │          │          │          │                                                │           │
│ provider     │          │          │          │                                                │           │
│ @openclaw/   │ anthropi │ openclaw │ enabled  │ ~\Documents\openclaw\extensions\anthropic-     │ 2026.5.20 │
│ anthropic-   │ c-vertex │          │          │ vertex\index.ts                                │           │
│ vertex-      │          │          │          │                                                │           │
│ provider     │          │          │          │                                                │           │
│ OpenShell    │ openshel │ openclaw │ disabled │ ~\Documents\openclaw\extensions\openshell\inde │ 2026.5.20 │
│ Sandbox      │ l        │          │          │ x.ts                                           │           │
│              │          │          │          │ Sandbox backend powered by OpenShell with      │           │
│              │          │          │          │ mirrored local workspaces and SSH-based        │           │
│              │          │          │          │ command execution.                             │           │
│ @openclaw/   │ qa-      │ openclaw │ disabled │ ~\Documents\openclaw\extensions\qa-            │ 2026.5.20 │
│ qa-channel   │ channel  │          │          │ channel\index.ts                               │           │
│ @openclaw/   │ qa-lab   │ openclaw │ disabled │ ~\Documents\openclaw\extensions\qa-lab\index.  │ 2026.5.20 │
│ qa-lab       │          │          │          │ ts                                             │           │
│ QA Matrix    │ qa-      │ openclaw │ disabled │ ~\Documents\openclaw\extensions\qa-            │ 2026.5.20 │
│              │ matrix   │          │          │ matrix\index.ts                                │           │
│              │          │          │          │ Matrix QA transport runner and substrate       │           │
│ @openclaw/   │ qqbot    │ openclaw │ enabled  │ ~\Documents\openclaw\extensions\qqbot\index.ts │ 2026.5.20 │
│ qqbot        │          │          │          │                                                │           │
│ @openclaw/   │ slack    │ openclaw │ disabled │ ~\Documents\openclaw\extensions\slack\index.ts │ 2026.5.20 │
│ slack        │          │          │          │                                                │           │
│ @openclaw/   │ whatsapp │ openclaw │ disabled │ ~\Documents\openclaw\extensions\whatsapp\index │ 2026.5.20 │
│ whatsapp     │          │          │          │ .ts                                            │           │
└──────────────┴──────────┴──────────┴──────────┴────────────────────────────────────────────────┴───────────┘

然后我们运行前面创建的插件,注意要使用管理员权限来执行如下命令,或者使用管理员权限打开控制台,然后执行如下命令: node --import tsx src/entry.ts hello

然后应该能看到如下对话框:

最后在执行前面命令的控制台可以看到如下输出:

$ node --import tsx src/entry.ts hello 

◇  

🦞 OpenClaw 2026.5.20 (bde07dd)
   If you're lost, run doctor; if you're brave, run prod; if you're wise, run tests.

hello world! 对话框已弹出

本节我们先对Openclaw的插件有初步认识,下一节我们在深入分析openclaw对插件的加载逻辑

相关学习资料