diff --git a/docs/plugins/building-plugins.md b/docs/plugins/building-plugins.md index bfd3ecbda3b..5542be201df 100644 --- a/docs/plugins/building-plugins.md +++ b/docs/plugins/building-plugins.md @@ -10,8 +10,10 @@ read_when: # Building Plugins -Plugins extend OpenClaw with new capabilities: channels, model providers, speech, -image generation, web search, agent tools, or any combination. +Plugins extend OpenClaw with new capabilities: channels, model providers, +speech, realtime transcription, realtime voice, media understanding, image +generation, video generation, web fetch, web search, agent tools, or any +combination. You do not need to add your plugin to the OpenClaw repository. Publish to [ClawHub](/tools/clawhub) or npm and users install with diff --git a/docs/plugins/manifest.md b/docs/plugins/manifest.md index 61a4dfaf78a..59485bce063 100644 --- a/docs/plugins/manifest.md +++ b/docs/plugins/manifest.md @@ -129,27 +129,27 @@ Those belong in your plugin code and `package.json`. ## Top-level field reference -| Field | Required | Type | What it means | -| ----------------------------------- | -------- | -------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | -| `id` | Yes | `string` | Canonical plugin id. This is the id used in `plugins.entries.`. | -| `configSchema` | Yes | `object` | Inline JSON Schema for this plugin's config. | -| `enabledByDefault` | No | `true` | Marks a bundled plugin as enabled by default. Omit it, or set any non-`true` value, to leave the plugin disabled by default. | -| `legacyPluginIds` | No | `string[]` | Legacy ids that normalize to this canonical plugin id. | -| `autoEnableWhenConfiguredProviders` | No | `string[]` | Provider ids that should auto-enable this plugin when auth, config, or model refs mention them. | -| `kind` | No | `"memory"` \| `"context-engine"` | Declares an exclusive plugin kind used by `plugins.slots.*`. | -| `channels` | No | `string[]` | Channel ids owned by this plugin. Used for discovery and config validation. | -| `providers` | No | `string[]` | Provider ids owned by this plugin. | -| `modelSupport` | No | `object` | Manifest-owned shorthand model-family metadata used to auto-load the plugin before runtime. | -| `cliBackends` | No | `string[]` | CLI inference backend ids owned by this plugin. Used for startup auto-activation from explicit config refs. | -| `providerAuthEnvVars` | No | `Record` | Cheap provider-auth env metadata that OpenClaw can inspect without loading plugin code. | -| `providerAuthChoices` | No | `object[]` | Cheap auth-choice metadata for onboarding pickers, preferred-provider resolution, and simple CLI flag wiring. | -| `contracts` | No | `object` | Static bundled capability snapshot for speech, media-understanding, image-generation, video-generation, web search, and tool ownership. | -| `channelConfigs` | No | `Record` | Manifest-owned channel config metadata merged into discovery and validation surfaces before runtime loads. | -| `skills` | No | `string[]` | Skill directories to load, relative to the plugin root. | -| `name` | No | `string` | Human-readable plugin name. | -| `description` | No | `string` | Short summary shown in plugin surfaces. | -| `version` | No | `string` | Informational plugin version. | -| `uiHints` | No | `Record` | UI labels, placeholders, and sensitivity hints for config fields. | +| Field | Required | Type | What it means | +| ----------------------------------- | -------- | -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `id` | Yes | `string` | Canonical plugin id. This is the id used in `plugins.entries.`. | +| `configSchema` | Yes | `object` | Inline JSON Schema for this plugin's config. | +| `enabledByDefault` | No | `true` | Marks a bundled plugin as enabled by default. Omit it, or set any non-`true` value, to leave the plugin disabled by default. | +| `legacyPluginIds` | No | `string[]` | Legacy ids that normalize to this canonical plugin id. | +| `autoEnableWhenConfiguredProviders` | No | `string[]` | Provider ids that should auto-enable this plugin when auth, config, or model refs mention them. | +| `kind` | No | `"memory"` \| `"context-engine"` | Declares an exclusive plugin kind used by `plugins.slots.*`. | +| `channels` | No | `string[]` | Channel ids owned by this plugin. Used for discovery and config validation. | +| `providers` | No | `string[]` | Provider ids owned by this plugin. | +| `modelSupport` | No | `object` | Manifest-owned shorthand model-family metadata used to auto-load the plugin before runtime. | +| `cliBackends` | No | `string[]` | CLI inference backend ids owned by this plugin. Used for startup auto-activation from explicit config refs. | +| `providerAuthEnvVars` | No | `Record` | Cheap provider-auth env metadata that OpenClaw can inspect without loading plugin code. | +| `providerAuthChoices` | No | `object[]` | Cheap auth-choice metadata for onboarding pickers, preferred-provider resolution, and simple CLI flag wiring. | +| `contracts` | No | `object` | Static bundled capability snapshot for speech, realtime transcription, realtime voice, media-understanding, image-generation, video-generation, web-fetch, web search, and tool ownership. | +| `channelConfigs` | No | `Record` | Manifest-owned channel config metadata merged into discovery and validation surfaces before runtime loads. | +| `skills` | No | `string[]` | Skill directories to load, relative to the plugin root. | +| `name` | No | `string` | Human-readable plugin name. | +| `description` | No | `string` | Short summary shown in plugin surfaces. | +| `version` | No | `string` | Informational plugin version. | +| `uiHints` | No | `Record` | UI labels, placeholders, and sensitivity hints for config fields. | ## providerAuthChoices reference diff --git a/docs/tools/plugin.md b/docs/tools/plugin.md index a44fd776df2..1c0a82f3363 100644 --- a/docs/tools/plugin.md +++ b/docs/tools/plugin.md @@ -306,20 +306,24 @@ public contract. Common registration methods: -| Method | What it registers | -| ------------------------------------ | -------------------- | -| `registerProvider` | Model provider (LLM) | -| `registerChannel` | Chat channel | -| `registerTool` | Agent tool | -| `registerHook` / `on(...)` | Lifecycle hooks | -| `registerSpeechProvider` | Text-to-speech / STT | -| `registerMediaUnderstandingProvider` | Image/audio analysis | -| `registerImageGenerationProvider` | Image generation | -| `registerWebSearchProvider` | Web search | -| `registerHttpRoute` | HTTP endpoint | -| `registerCommand` / `registerCli` | CLI commands | -| `registerContextEngine` | Context engine | -| `registerService` | Background service | +| Method | What it registers | +| --------------------------------------- | --------------------------- | +| `registerProvider` | Model provider (LLM) | +| `registerChannel` | Chat channel | +| `registerTool` | Agent tool | +| `registerHook` / `on(...)` | Lifecycle hooks | +| `registerSpeechProvider` | Text-to-speech / STT | +| `registerRealtimeTranscriptionProvider` | Streaming STT | +| `registerRealtimeVoiceProvider` | Duplex realtime voice | +| `registerMediaUnderstandingProvider` | Image/audio analysis | +| `registerImageGenerationProvider` | Image generation | +| `registerVideoGenerationProvider` | Video generation | +| `registerWebFetchProvider` | Web fetch / scrape provider | +| `registerWebSearchProvider` | Web search | +| `registerHttpRoute` | HTTP endpoint | +| `registerCommand` / `registerCli` | CLI commands | +| `registerContextEngine` | Context engine | +| `registerService` | Background service | Hook guard behavior for typed lifecycle hooks: