docs: compact plugin inventory tables

This commit is contained in:
Peter Steinberger
2026-05-02 15:39:58 +01:00
parent 9d5a0d4094
commit 27318663ef
2 changed files with 143 additions and 136 deletions

View File

@@ -28,130 +28,130 @@ dependencies are available.
## Core npm package
| Plugin | Package | Surface | Docs | Install |
| --------------------- | ------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------- | -------------------- |
| alibaba | `@openclaw/alibaba-provider` | contracts: videoGenerationProviders | [alibaba](/providers/alibaba) | included in OpenClaw |
| amazon-bedrock | `@openclaw/amazon-bedrock-provider` | providers: amazon-bedrock; contracts: memoryEmbeddingProviders | [amazon-bedrock](/providers/bedrock) | included in OpenClaw |
| amazon-bedrock-mantle | `@openclaw/amazon-bedrock-mantle-provider` | providers: amazon-bedrock-mantle | [amazon-bedrock-mantle](/providers/bedrock-mantle) | included in OpenClaw |
| anthropic | `@openclaw/anthropic-provider` | providers: anthropic; contracts: mediaUnderstandingProviders | [anthropic](/providers/anthropic) | included in OpenClaw |
| anthropic-vertex | `@openclaw/anthropic-vertex-provider` | providers: anthropic-vertex | - | included in OpenClaw |
| arcee | `@openclaw/arcee-provider` | providers: arcee | [arcee](/providers/arcee) | included in OpenClaw |
| azure-speech | `@openclaw/azure-speech` | contracts: speechProviders | [azure-speech](/providers/azure-speech) | included in OpenClaw |
| bonjour | `@openclaw/bonjour` | plugin | - | included in OpenClaw |
| browser | `@openclaw/browser-plugin` | contracts: tools; skills | [browser](/tools/browser) | included in OpenClaw |
| byteplus | `@openclaw/byteplus-provider` | providers: byteplus, byteplus-plan; contracts: videoGenerationProviders | - | included in OpenClaw |
| cerebras | `@openclaw/cerebras-provider` | providers: cerebras | [cerebras](/providers/cerebras) | included in OpenClaw |
| chutes | `@openclaw/chutes-provider` | providers: chutes | [chutes](/providers/chutes) | included in OpenClaw |
| cloudflare-ai-gateway | `@openclaw/cloudflare-ai-gateway-provider` | providers: cloudflare-ai-gateway | [cloudflare-ai-gateway](/providers/cloudflare-ai-gateway) | included in OpenClaw |
| comfy | `@openclaw/comfy-provider` | providers: comfy; contracts: imageGenerationProviders, musicGenerationProviders, videoGenerationProviders | [comfy](/providers/comfy) | included in OpenClaw |
| copilot-proxy | `@openclaw/copilot-proxy` | providers: copilot-proxy | - | included in OpenClaw |
| deepgram | `@openclaw/deepgram-provider` | contracts: mediaUnderstandingProviders, realtimeTranscriptionProviders | [deepgram](/providers/deepgram) | included in OpenClaw |
| deepinfra | `@openclaw/deepinfra-provider` | providers: deepinfra; contracts: imageGenerationProviders, mediaUnderstandingProviders, memoryEmbeddingProviders, speechProviders, videoGenerationProviders | [deepinfra](/providers/deepinfra) | included in OpenClaw |
| deepseek | `@openclaw/deepseek-provider` | providers: deepseek | [deepseek](/providers/deepseek) | included in OpenClaw |
| document-extract | `@openclaw/document-extract-plugin` | contracts: documentExtractors | [document-extract](/tools/pdf) | included in OpenClaw |
| duckduckgo | `@openclaw/duckduckgo-plugin` | contracts: webSearchProviders | [duckduckgo](/tools/duckduckgo-search) | included in OpenClaw |
| elevenlabs | `@openclaw/elevenlabs-speech` | contracts: mediaUnderstandingProviders, realtimeTranscriptionProviders, speechProviders | [elevenlabs](/providers/elevenlabs) | included in OpenClaw |
| exa | `@openclaw/exa-plugin` | contracts: webSearchProviders | [exa](/tools/exa-search) | included in OpenClaw |
| fal | `@openclaw/fal-provider` | providers: fal; contracts: imageGenerationProviders, videoGenerationProviders | [fal](/providers/fal) | included in OpenClaw |
| file-transfer | `@openclaw/file-transfer` | contracts: tools | - | included in OpenClaw |
| firecrawl | `@openclaw/firecrawl-plugin` | contracts: tools, webFetchProviders, webSearchProviders | [firecrawl](/tools/firecrawl) | included in OpenClaw |
| fireworks | `@openclaw/fireworks-provider` | providers: fireworks | [fireworks](/providers/fireworks) | included in OpenClaw |
| github-copilot | `@openclaw/github-copilot-provider` | providers: github-copilot; contracts: memoryEmbeddingProviders | [github-copilot](/providers/github-copilot) | included in OpenClaw |
| google | `@openclaw/google-plugin` | providers: google, google-gemini-cli, google-vertex; contracts: imageGenerationProviders, mediaUnderstandingProviders, memoryEmbeddingProviders, musicGenerationProviders, realtimeVoiceProviders, speechProviders, videoGenerationProviders, webSearchProviders | [google](/providers/google) | included in OpenClaw |
| gradium | `@openclaw/gradium-speech` | contracts: speechProviders | [gradium](/providers/gradium) | included in OpenClaw |
| groq | `@openclaw/groq-provider` | providers: groq; contracts: mediaUnderstandingProviders | [groq](/providers/groq) | included in OpenClaw |
| huggingface | `@openclaw/huggingface-provider` | providers: huggingface | [huggingface](/providers/huggingface) | included in OpenClaw |
| imessage | `@openclaw/imessage` | channels: imessage | [imessage](/channels/imessage) | included in OpenClaw |
| inworld | `@openclaw/inworld-speech` | contracts: speechProviders | [inworld](/providers/inworld) | included in OpenClaw |
| irc | `@openclaw/irc` | channels: irc | [irc](/channels/irc) | included in OpenClaw |
| kilocode | `@openclaw/kilocode-provider` | providers: kilocode | [kilocode](/providers/kilocode) | included in OpenClaw |
| kimi | `@openclaw/kimi-provider` | providers: kimi, kimi-coding | [kimi](/providers/moonshot) | included in OpenClaw |
| litellm | `@openclaw/litellm-provider` | providers: litellm; contracts: imageGenerationProviders | [litellm](/providers/litellm) | included in OpenClaw |
| llm-task | `@openclaw/llm-task` | contracts: tools | - | included in OpenClaw |
| lmstudio | `@openclaw/lmstudio-provider` | providers: lmstudio; contracts: memoryEmbeddingProviders | [lmstudio](/providers/lmstudio) | included in OpenClaw |
| memory-core | `@openclaw/memory-core` | contracts: memoryEmbeddingProviders, tools | - | included in OpenClaw |
| memory-wiki | `@openclaw/memory-wiki` | contracts: tools; skills | [memory-wiki](/plugins/memory-wiki) | included in OpenClaw |
| microsoft | `@openclaw/microsoft-speech` | contracts: speechProviders | - | included in OpenClaw |
| microsoft-foundry | `@openclaw/microsoft-foundry` | providers: microsoft-foundry | - | included in OpenClaw |
| migrate-claude | `@openclaw/migrate-claude` | contracts: migrationProviders | - | included in OpenClaw |
| migrate-hermes | `@openclaw/migrate-hermes` | contracts: migrationProviders | - | included in OpenClaw |
| minimax | `@openclaw/minimax-provider` | providers: minimax, minimax-portal; contracts: imageGenerationProviders, mediaUnderstandingProviders, musicGenerationProviders, speechProviders, videoGenerationProviders, webSearchProviders | [minimax](/providers/minimax) | included in OpenClaw |
| mistral | `@openclaw/mistral-provider` | providers: mistral; contracts: mediaUnderstandingProviders, memoryEmbeddingProviders, realtimeTranscriptionProviders | [mistral](/providers/mistral) | included in OpenClaw |
| moonshot | `@openclaw/moonshot-provider` | providers: moonshot; contracts: mediaUnderstandingProviders, webSearchProviders | [moonshot](/providers/moonshot) | included in OpenClaw |
| nvidia | `@openclaw/nvidia-provider` | providers: nvidia | [nvidia](/providers/nvidia) | included in OpenClaw |
| ollama | `@openclaw/ollama-provider` | providers: ollama; contracts: memoryEmbeddingProviders, webSearchProviders | [ollama](/providers/ollama) | included in OpenClaw |
| open-prose | `@openclaw/open-prose` | skills | - | included in OpenClaw |
| openai | `@openclaw/openai-provider` | providers: openai, openai-codex; contracts: imageGenerationProviders, mediaUnderstandingProviders, memoryEmbeddingProviders, realtimeTranscriptionProviders, realtimeVoiceProviders, speechProviders, videoGenerationProviders | [openai](/providers/openai) | included in OpenClaw |
| opencode | `@openclaw/opencode-provider` | providers: opencode; contracts: mediaUnderstandingProviders | [opencode](/providers/opencode) | included in OpenClaw |
| opencode-go | `@openclaw/opencode-go-provider` | providers: opencode-go; contracts: mediaUnderstandingProviders | [opencode-go](/providers/opencode-go) | included in OpenClaw |
| openrouter | `@openclaw/openrouter-provider` | providers: openrouter; contracts: imageGenerationProviders, mediaUnderstandingProviders, speechProviders, videoGenerationProviders | [openrouter](/providers/openrouter) | included in OpenClaw |
| openshell | `@openclaw/openshell-sandbox` | plugin | - | included in OpenClaw |
| perplexity | `@openclaw/perplexity-plugin` | contracts: webSearchProviders | [perplexity](/tools/perplexity-search) | included in OpenClaw |
| qianfan | `@openclaw/qianfan-provider` | providers: qianfan | [qianfan](/providers/qianfan) | included in OpenClaw |
| qwen | `@openclaw/qwen-provider` | providers: qwen, qwencloud, modelstudio, dashscope; contracts: mediaUnderstandingProviders, videoGenerationProviders | [qwen](/providers/qwen) | included in OpenClaw |
| runway | `@openclaw/runway-provider` | contracts: videoGenerationProviders | [runway](/providers/runway) | included in OpenClaw |
| searxng | `@openclaw/searxng-plugin` | contracts: webSearchProviders | - | included in OpenClaw |
| senseaudio | `@openclaw/senseaudio-provider` | contracts: mediaUnderstandingProviders | [senseaudio](/providers/senseaudio) | included in OpenClaw |
| sglang | `@openclaw/sglang-provider` | providers: sglang | [sglang](/providers/sglang) | included in OpenClaw |
| signal | `@openclaw/signal` | channels: signal | [signal](/channels/signal) | included in OpenClaw |
| skill-workshop | `@openclaw/skill-workshop` | contracts: tools | [skill-workshop](/plugins/skill-workshop) | included in OpenClaw |
| slack | `@openclaw/slack` | channels: slack | [slack](/channels/slack) | included in OpenClaw |
| stepfun | `@openclaw/stepfun-provider` | providers: stepfun, stepfun-plan | [stepfun](/providers/stepfun) | included in OpenClaw |
| synthetic | `@openclaw/synthetic-provider` | providers: synthetic | [synthetic](/providers/synthetic) | included in OpenClaw |
| tavily | `@openclaw/tavily-plugin` | contracts: tools, webSearchProviders; skills | [tavily](/tools/tavily) | included in OpenClaw |
| telegram | `@openclaw/telegram` | channels: telegram | [telegram](/channels/telegram) | included in OpenClaw |
| tencent | `@openclaw/tencent-provider` | providers: tencent-tokenhub | [tencent](/providers/tencent) | included in OpenClaw |
| together | `@openclaw/together-provider` | providers: together; contracts: videoGenerationProviders | [together](/providers/together) | included in OpenClaw |
| tokenjuice | `@openclaw/tokenjuice` | contracts: agentToolResultMiddleware | [tokenjuice](/tools/tokenjuice) | included in OpenClaw |
| tts-local-cli | `@openclaw/tts-local-cli` | contracts: speechProviders | - | included in OpenClaw |
| venice | `@openclaw/venice-provider` | providers: venice | [venice](/providers/venice) | included in OpenClaw |
| vercel-ai-gateway | `@openclaw/vercel-ai-gateway-provider` | providers: vercel-ai-gateway | [vercel-ai-gateway](/providers/vercel-ai-gateway) | included in OpenClaw |
| vllm | `@openclaw/vllm-provider` | providers: vllm | [vllm](/providers/vllm) | included in OpenClaw |
| volcengine | `@openclaw/volcengine-provider` | providers: volcengine, volcengine-plan; contracts: speechProviders | [volcengine](/providers/volcengine) | included in OpenClaw |
| voyage | `@openclaw/voyage-provider` | contracts: memoryEmbeddingProviders | - | included in OpenClaw |
| vydra | `@openclaw/vydra-provider` | providers: vydra; contracts: imageGenerationProviders, speechProviders, videoGenerationProviders | [vydra](/providers/vydra) | included in OpenClaw |
| web-readability | `@openclaw/web-readability-plugin` | contracts: webContentExtractors | - | included in OpenClaw |
| webhooks | `@openclaw/webhooks` | plugin | [webhooks](/plugins/webhooks) | included in OpenClaw |
| xai | `@openclaw/xai-plugin` | providers: xai; contracts: imageGenerationProviders, mediaUnderstandingProviders, realtimeTranscriptionProviders, speechProviders, tools, videoGenerationProviders, webSearchProviders | [xai](/providers/xai) | included in OpenClaw |
| xiaomi | `@openclaw/xiaomi-provider` | providers: xiaomi; contracts: speechProviders | [xiaomi](/providers/xiaomi) | included in OpenClaw |
| zai | `@openclaw/zai-provider` | providers: zai; contracts: mediaUnderstandingProviders | [zai](/providers/zai) | included in OpenClaw |
| Plugin | Package | Surface | Install |
| --------------------------------------------------------- | ------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------- |
| [alibaba](/providers/alibaba) | `@openclaw/alibaba-provider` | contracts: videoGenerationProviders | included in OpenClaw |
| [amazon-bedrock](/providers/bedrock) | `@openclaw/amazon-bedrock-provider` | providers: amazon-bedrock; contracts: memoryEmbeddingProviders | included in OpenClaw |
| [amazon-bedrock-mantle](/providers/bedrock-mantle) | `@openclaw/amazon-bedrock-mantle-provider` | providers: amazon-bedrock-mantle | included in OpenClaw |
| [anthropic](/providers/anthropic) | `@openclaw/anthropic-provider` | providers: anthropic; contracts: mediaUnderstandingProviders | included in OpenClaw |
| anthropic-vertex | `@openclaw/anthropic-vertex-provider` | providers: anthropic-vertex | included in OpenClaw |
| [arcee](/providers/arcee) | `@openclaw/arcee-provider` | providers: arcee | included in OpenClaw |
| [azure-speech](/providers/azure-speech) | `@openclaw/azure-speech` | contracts: speechProviders | included in OpenClaw |
| bonjour | `@openclaw/bonjour` | plugin | included in OpenClaw |
| [browser](/tools/browser) | `@openclaw/browser-plugin` | contracts: tools; skills | included in OpenClaw |
| byteplus | `@openclaw/byteplus-provider` | providers: byteplus, byteplus-plan; contracts: videoGenerationProviders | included in OpenClaw |
| [cerebras](/providers/cerebras) | `@openclaw/cerebras-provider` | providers: cerebras | included in OpenClaw |
| [chutes](/providers/chutes) | `@openclaw/chutes-provider` | providers: chutes | included in OpenClaw |
| [cloudflare-ai-gateway](/providers/cloudflare-ai-gateway) | `@openclaw/cloudflare-ai-gateway-provider` | providers: cloudflare-ai-gateway | included in OpenClaw |
| [comfy](/providers/comfy) | `@openclaw/comfy-provider` | providers: comfy; contracts: imageGenerationProviders, musicGenerationProviders, videoGenerationProviders | included in OpenClaw |
| copilot-proxy | `@openclaw/copilot-proxy` | providers: copilot-proxy | included in OpenClaw |
| [deepgram](/providers/deepgram) | `@openclaw/deepgram-provider` | contracts: mediaUnderstandingProviders, realtimeTranscriptionProviders | included in OpenClaw |
| [deepinfra](/providers/deepinfra) | `@openclaw/deepinfra-provider` | providers: deepinfra; contracts: imageGenerationProviders, mediaUnderstandingProviders, memoryEmbeddingProviders, speechProviders, videoGenerationProviders | included in OpenClaw |
| [deepseek](/providers/deepseek) | `@openclaw/deepseek-provider` | providers: deepseek | included in OpenClaw |
| [discord](/channels/discord) | `@openclaw/discord` | channels: discord | included in OpenClaw |
| [document-extract](/tools/pdf) | `@openclaw/document-extract-plugin` | contracts: documentExtractors | included in OpenClaw |
| [duckduckgo](/tools/duckduckgo-search) | `@openclaw/duckduckgo-plugin` | contracts: webSearchProviders | included in OpenClaw |
| [elevenlabs](/providers/elevenlabs) | `@openclaw/elevenlabs-speech` | contracts: mediaUnderstandingProviders, realtimeTranscriptionProviders, speechProviders | included in OpenClaw |
| [exa](/tools/exa-search) | `@openclaw/exa-plugin` | contracts: webSearchProviders | included in OpenClaw |
| [fal](/providers/fal) | `@openclaw/fal-provider` | providers: fal; contracts: imageGenerationProviders, videoGenerationProviders | included in OpenClaw |
| file-transfer | `@openclaw/file-transfer` | contracts: tools | included in OpenClaw |
| [firecrawl](/tools/firecrawl) | `@openclaw/firecrawl-plugin` | contracts: tools, webFetchProviders, webSearchProviders | included in OpenClaw |
| [fireworks](/providers/fireworks) | `@openclaw/fireworks-provider` | providers: fireworks | included in OpenClaw |
| [github-copilot](/providers/github-copilot) | `@openclaw/github-copilot-provider` | providers: github-copilot; contracts: memoryEmbeddingProviders | included in OpenClaw |
| [google](/providers/google) | `@openclaw/google-plugin` | providers: google, google-gemini-cli, google-vertex; contracts: imageGenerationProviders, mediaUnderstandingProviders, memoryEmbeddingProviders, musicGenerationProviders, realtimeVoiceProviders, speechProviders, videoGenerationProviders, webSearchProviders | included in OpenClaw |
| [gradium](/providers/gradium) | `@openclaw/gradium-speech` | contracts: speechProviders | included in OpenClaw |
| [groq](/providers/groq) | `@openclaw/groq-provider` | providers: groq; contracts: mediaUnderstandingProviders | included in OpenClaw |
| [huggingface](/providers/huggingface) | `@openclaw/huggingface-provider` | providers: huggingface | included in OpenClaw |
| [imessage](/channels/imessage) | `@openclaw/imessage` | channels: imessage | included in OpenClaw |
| [inworld](/providers/inworld) | `@openclaw/inworld-speech` | contracts: speechProviders | included in OpenClaw |
| [irc](/channels/irc) | `@openclaw/irc` | channels: irc | included in OpenClaw |
| [kilocode](/providers/kilocode) | `@openclaw/kilocode-provider` | providers: kilocode | included in OpenClaw |
| [kimi](/providers/moonshot) | `@openclaw/kimi-provider` | providers: kimi, kimi-coding | included in OpenClaw |
| [litellm](/providers/litellm) | `@openclaw/litellm-provider` | providers: litellm; contracts: imageGenerationProviders | included in OpenClaw |
| llm-task | `@openclaw/llm-task` | contracts: tools | included in OpenClaw |
| [lmstudio](/providers/lmstudio) | `@openclaw/lmstudio-provider` | providers: lmstudio; contracts: memoryEmbeddingProviders | included in OpenClaw |
| memory-core | `@openclaw/memory-core` | contracts: memoryEmbeddingProviders, tools | included in OpenClaw |
| [memory-wiki](/plugins/memory-wiki) | `@openclaw/memory-wiki` | contracts: tools; skills | included in OpenClaw |
| microsoft | `@openclaw/microsoft-speech` | contracts: speechProviders | included in OpenClaw |
| microsoft-foundry | `@openclaw/microsoft-foundry` | providers: microsoft-foundry | included in OpenClaw |
| migrate-claude | `@openclaw/migrate-claude` | contracts: migrationProviders | included in OpenClaw |
| migrate-hermes | `@openclaw/migrate-hermes` | contracts: migrationProviders | included in OpenClaw |
| [minimax](/providers/minimax) | `@openclaw/minimax-provider` | providers: minimax, minimax-portal; contracts: imageGenerationProviders, mediaUnderstandingProviders, musicGenerationProviders, speechProviders, videoGenerationProviders, webSearchProviders | included in OpenClaw |
| [mistral](/providers/mistral) | `@openclaw/mistral-provider` | providers: mistral; contracts: mediaUnderstandingProviders, memoryEmbeddingProviders, realtimeTranscriptionProviders | included in OpenClaw |
| [moonshot](/providers/moonshot) | `@openclaw/moonshot-provider` | providers: moonshot; contracts: mediaUnderstandingProviders, webSearchProviders | included in OpenClaw |
| [nvidia](/providers/nvidia) | `@openclaw/nvidia-provider` | providers: nvidia | included in OpenClaw |
| [ollama](/providers/ollama) | `@openclaw/ollama-provider` | providers: ollama; contracts: memoryEmbeddingProviders, webSearchProviders | included in OpenClaw |
| open-prose | `@openclaw/open-prose` | skills | included in OpenClaw |
| [openai](/providers/openai) | `@openclaw/openai-provider` | providers: openai, openai-codex; contracts: imageGenerationProviders, mediaUnderstandingProviders, memoryEmbeddingProviders, realtimeTranscriptionProviders, realtimeVoiceProviders, speechProviders, videoGenerationProviders | included in OpenClaw |
| [opencode](/providers/opencode) | `@openclaw/opencode-provider` | providers: opencode; contracts: mediaUnderstandingProviders | included in OpenClaw |
| [opencode-go](/providers/opencode-go) | `@openclaw/opencode-go-provider` | providers: opencode-go; contracts: mediaUnderstandingProviders | included in OpenClaw |
| [openrouter](/providers/openrouter) | `@openclaw/openrouter-provider` | providers: openrouter; contracts: imageGenerationProviders, mediaUnderstandingProviders, speechProviders, videoGenerationProviders | included in OpenClaw |
| openshell | `@openclaw/openshell-sandbox` | plugin | included in OpenClaw |
| [perplexity](/tools/perplexity-search) | `@openclaw/perplexity-plugin` | contracts: webSearchProviders | included in OpenClaw |
| [qianfan](/providers/qianfan) | `@openclaw/qianfan-provider` | providers: qianfan | included in OpenClaw |
| [qwen](/providers/qwen) | `@openclaw/qwen-provider` | providers: qwen, qwencloud, modelstudio, dashscope; contracts: mediaUnderstandingProviders, videoGenerationProviders | included in OpenClaw |
| [runway](/providers/runway) | `@openclaw/runway-provider` | contracts: videoGenerationProviders | included in OpenClaw |
| searxng | `@openclaw/searxng-plugin` | contracts: webSearchProviders | included in OpenClaw |
| [senseaudio](/providers/senseaudio) | `@openclaw/senseaudio-provider` | contracts: mediaUnderstandingProviders | included in OpenClaw |
| [sglang](/providers/sglang) | `@openclaw/sglang-provider` | providers: sglang | included in OpenClaw |
| [signal](/channels/signal) | `@openclaw/signal` | channels: signal | included in OpenClaw |
| [skill-workshop](/plugins/skill-workshop) | `@openclaw/skill-workshop` | contracts: tools | included in OpenClaw |
| [slack](/channels/slack) | `@openclaw/slack` | channels: slack | included in OpenClaw |
| [stepfun](/providers/stepfun) | `@openclaw/stepfun-provider` | providers: stepfun, stepfun-plan | included in OpenClaw |
| [synthetic](/providers/synthetic) | `@openclaw/synthetic-provider` | providers: synthetic | included in OpenClaw |
| [tavily](/tools/tavily) | `@openclaw/tavily-plugin` | contracts: tools, webSearchProviders; skills | included in OpenClaw |
| [telegram](/channels/telegram) | `@openclaw/telegram` | channels: telegram | included in OpenClaw |
| [tencent](/providers/tencent) | `@openclaw/tencent-provider` | providers: tencent-tokenhub | included in OpenClaw |
| [together](/providers/together) | `@openclaw/together-provider` | providers: together; contracts: videoGenerationProviders | included in OpenClaw |
| [tokenjuice](/tools/tokenjuice) | `@openclaw/tokenjuice` | contracts: agentToolResultMiddleware | included in OpenClaw |
| tts-local-cli | `@openclaw/tts-local-cli` | contracts: speechProviders | included in OpenClaw |
| [venice](/providers/venice) | `@openclaw/venice-provider` | providers: venice | included in OpenClaw |
| [vercel-ai-gateway](/providers/vercel-ai-gateway) | `@openclaw/vercel-ai-gateway-provider` | providers: vercel-ai-gateway | included in OpenClaw |
| [vllm](/providers/vllm) | `@openclaw/vllm-provider` | providers: vllm | included in OpenClaw |
| [volcengine](/providers/volcengine) | `@openclaw/volcengine-provider` | providers: volcengine, volcengine-plan; contracts: speechProviders | included in OpenClaw |
| voyage | `@openclaw/voyage-provider` | contracts: memoryEmbeddingProviders | included in OpenClaw |
| [vydra](/providers/vydra) | `@openclaw/vydra-provider` | providers: vydra; contracts: imageGenerationProviders, speechProviders, videoGenerationProviders | included in OpenClaw |
| web-readability | `@openclaw/web-readability-plugin` | contracts: webContentExtractors | included in OpenClaw |
| [webhooks](/plugins/webhooks) | `@openclaw/webhooks` | plugin | included in OpenClaw |
| [xai](/providers/xai) | `@openclaw/xai-plugin` | providers: xai; contracts: imageGenerationProviders, mediaUnderstandingProviders, realtimeTranscriptionProviders, speechProviders, tools, videoGenerationProviders, webSearchProviders | included in OpenClaw |
| [xiaomi](/providers/xiaomi) | `@openclaw/xiaomi-provider` | providers: xiaomi; contracts: speechProviders | included in OpenClaw |
| [zai](/providers/zai) | `@openclaw/zai-provider` | providers: zai; contracts: mediaUnderstandingProviders | included in OpenClaw |
## Official external packages
| Plugin | Package | Surface | Docs | Install |
| ---------------------- | ---------------------------------- | ---------------------------------------------------------------------------- | ------------------------------------------------------------- | ------------------------------------------------- |
| acpx | `@openclaw/acpx` | skills | [acpx](/tools/acp-agents-setup) | ClawHub + npm: `@openclaw/acpx` |
| bluebubbles | `@openclaw/bluebubbles` | channels: bluebubbles | [bluebubbles](/channels/bluebubbles) | ClawHub + npm: `@openclaw/bluebubbles` |
| brave | `@openclaw/brave-plugin` | contracts: webSearchProviders | [brave](/tools/brave-search) | ClawHub + npm: `@openclaw/brave-plugin` |
| codex | `@openclaw/codex` | providers: codex; contracts: mediaUnderstandingProviders, migrationProviders | [codex](/plugins/codex-harness) | ClawHub + npm: `@openclaw/codex` |
| diagnostics-otel | `@openclaw/diagnostics-otel` | plugin | - | ClawHub + npm: `@openclaw/diagnostics-otel` |
| diagnostics-prometheus | `@openclaw/diagnostics-prometheus` | plugin | - | ClawHub + npm: `@openclaw/diagnostics-prometheus` |
| diffs | `@openclaw/diffs` | contracts: tools; skills | - | ClawHub + npm: `@openclaw/diffs` |
| discord | `@openclaw/discord` | channels: discord | [discord](/channels/discord) | ClawHub + npm: `@openclaw/discord` |
| feishu | `@openclaw/feishu` | channels: feishu; contracts: tools; skills | [feishu](/channels/feishu) | ClawHub + npm: `@openclaw/feishu` |
| google-meet | `@openclaw/google-meet` | contracts: tools | [google-meet](/plugins/google-meet) | ClawHub + npm: `@openclaw/google-meet` |
| googlechat | `@openclaw/googlechat` | channels: googlechat | [googlechat](/channels/googlechat) | ClawHub + npm: `@openclaw/googlechat` |
| line | `@openclaw/line` | channels: line | [line](/channels/line) | ClawHub + npm: `@openclaw/line` |
| lobster | `@openclaw/lobster` | contracts: tools | - | ClawHub + npm: `@openclaw/lobster` |
| matrix | `@openclaw/matrix` | channels: matrix | [matrix](/channels/matrix) | ClawHub + npm: `@openclaw/matrix` |
| mattermost | `@openclaw/mattermost` | channels: mattermost | [mattermost](/channels/mattermost) | ClawHub + npm: `@openclaw/mattermost` |
| memory-lancedb | `@openclaw/memory-lancedb` | contracts: tools | [memory-lancedb](/plugins/memory-lancedb) | ClawHub + npm: `@openclaw/memory-lancedb` |
| msteams | `@openclaw/msteams` | channels: msteams | [msteams](/channels/msteams) | ClawHub + npm: `@openclaw/msteams` |
| nextcloud-talk | `@openclaw/nextcloud-talk` | channels: nextcloud-talk | [nextcloud-talk](/channels/nextcloud-talk) | ClawHub + npm: `@openclaw/nextcloud-talk` |
| nostr | `@openclaw/nostr` | channels: nostr | [nostr](/channels/nostr) | ClawHub + npm: `@openclaw/nostr` |
| qqbot | `@openclaw/qqbot` | channels: qqbot; contracts: tools; skills | [qqbot](/channels/qqbot) | ClawHub + npm: `@openclaw/qqbot` |
| synology-chat | `@openclaw/synology-chat` | channels: synology-chat | [synology-chat](/channels/synology-chat) | ClawHub + npm: `@openclaw/synology-chat` |
| tlon | `@openclaw/tlon` | channels: tlon; contracts: tools; skills | [tlon](/channels/tlon) | ClawHub + npm: `@openclaw/tlon` |
| twitch | `@openclaw/twitch` | channels: twitch | [twitch](/channels/twitch) | ClawHub + npm: `@openclaw/twitch` |
| voice-call | `@openclaw/voice-call` | contracts: tools | [voice-call](/plugins/voice-call) | ClawHub + npm: `@openclaw/voice-call` |
| whatsapp | `@openclaw/whatsapp` | channels: whatsapp | [whatsapp](/channels/whatsapp) | ClawHub + npm: `@openclaw/whatsapp` |
| zalo | `@openclaw/zalo` | channels: zalo | [zalo](/channels/zalo) | ClawHub + npm: `@openclaw/zalo` |
| zalouser | `@openclaw/zalouser` | channels: zalouser; contracts: tools | [zalouser](/channels/zalouser), [zalouser](/plugins/zalouser) | ClawHub + npm: `@openclaw/zalouser` |
| Plugin | Package | Surface | Install |
| ------------------------------------------ | ---------------------------------- | ---------------------------------------------------------------------------- | ------------------------------------------------- |
| [acpx](/tools/acp-agents-setup) | `@openclaw/acpx` | skills | ClawHub + npm: `@openclaw/acpx` |
| [bluebubbles](/channels/bluebubbles) | `@openclaw/bluebubbles` | channels: bluebubbles | ClawHub + npm: `@openclaw/bluebubbles` |
| [brave](/tools/brave-search) | `@openclaw/brave-plugin` | contracts: webSearchProviders | ClawHub + npm: `@openclaw/brave-plugin` |
| [codex](/plugins/codex-harness) | `@openclaw/codex` | providers: codex; contracts: mediaUnderstandingProviders, migrationProviders | ClawHub + npm: `@openclaw/codex` |
| diagnostics-otel | `@openclaw/diagnostics-otel` | plugin | ClawHub + npm: `@openclaw/diagnostics-otel` |
| diagnostics-prometheus | `@openclaw/diagnostics-prometheus` | plugin | ClawHub + npm: `@openclaw/diagnostics-prometheus` |
| diffs | `@openclaw/diffs` | contracts: tools; skills | ClawHub + npm: `@openclaw/diffs` |
| [feishu](/channels/feishu) | `@openclaw/feishu` | channels: feishu; contracts: tools; skills | ClawHub + npm: `@openclaw/feishu` |
| [google-meet](/plugins/google-meet) | `@openclaw/google-meet` | contracts: tools | ClawHub + npm: `@openclaw/google-meet` |
| [googlechat](/channels/googlechat) | `@openclaw/googlechat` | channels: googlechat | ClawHub + npm: `@openclaw/googlechat` |
| [line](/channels/line) | `@openclaw/line` | channels: line | ClawHub + npm: `@openclaw/line` |
| lobster | `@openclaw/lobster` | contracts: tools | ClawHub + npm: `@openclaw/lobster` |
| [matrix](/channels/matrix) | `@openclaw/matrix` | channels: matrix | ClawHub + npm: `@openclaw/matrix` |
| [mattermost](/channels/mattermost) | `@openclaw/mattermost` | channels: mattermost | ClawHub + npm: `@openclaw/mattermost` |
| [memory-lancedb](/plugins/memory-lancedb) | `@openclaw/memory-lancedb` | contracts: tools | ClawHub + npm: `@openclaw/memory-lancedb` |
| [msteams](/channels/msteams) | `@openclaw/msteams` | channels: msteams | ClawHub + npm: `@openclaw/msteams` |
| [nextcloud-talk](/channels/nextcloud-talk) | `@openclaw/nextcloud-talk` | channels: nextcloud-talk | ClawHub + npm: `@openclaw/nextcloud-talk` |
| [nostr](/channels/nostr) | `@openclaw/nostr` | channels: nostr | ClawHub + npm: `@openclaw/nostr` |
| [qqbot](/channels/qqbot) | `@openclaw/qqbot` | channels: qqbot; contracts: tools; skills | ClawHub + npm: `@openclaw/qqbot` |
| [synology-chat](/channels/synology-chat) | `@openclaw/synology-chat` | channels: synology-chat | ClawHub + npm: `@openclaw/synology-chat` |
| [tlon](/channels/tlon) | `@openclaw/tlon` | channels: tlon; contracts: tools; skills | ClawHub + npm: `@openclaw/tlon` |
| [twitch](/channels/twitch) | `@openclaw/twitch` | channels: twitch | ClawHub + npm: `@openclaw/twitch` |
| [voice-call](/plugins/voice-call) | `@openclaw/voice-call` | contracts: tools | ClawHub + npm: `@openclaw/voice-call` |
| [whatsapp](/channels/whatsapp) | `@openclaw/whatsapp` | channels: whatsapp | ClawHub + npm: `@openclaw/whatsapp` |
| [zalo](/channels/zalo) | `@openclaw/zalo` | channels: zalo | ClawHub + npm: `@openclaw/zalo` |
| [zalouser](/channels/zalouser) | `@openclaw/zalouser` | channels: zalouser; contracts: tools | ClawHub + npm: `@openclaw/zalouser` |
## Source checkout only
| Plugin | Package | Surface | Docs | Install |
| ---------- | ---------------------- | -------------------- | ---------------------------------- | -------------------- |
| qa-channel | `@openclaw/qa-channel` | channels: qa-channel | [qa-channel](/channels/qa-channel) | source checkout only |
| qa-lab | `@openclaw/qa-lab` | plugin | - | source checkout only |
| qa-matrix | `@openclaw/qa-matrix` | plugin | - | source checkout only |
| Plugin | Package | Surface | Install |
| ---------------------------------- | ---------------------- | -------------------- | -------------------- |
| [qa-channel](/channels/qa-channel) | `@openclaw/qa-channel` | channels: qa-channel | source checkout only |
| qa-lab | `@openclaw/qa-lab` | plugin | source checkout only |
| qa-matrix | `@openclaw/qa-matrix` | plugin | source checkout only |

View File

@@ -56,12 +56,15 @@ function normalizeDocPath(value) {
return value.replace(/\.mdx?$/u, "");
}
function docLink(label, href) {
function docLink({ label, href }) {
return `[${label}](${href})`;
}
function pushUnique(values, value) {
if (value && !values.includes(value)) {
function pushUniqueDocLink(values, value) {
if (
value &&
!values.some((existing) => existing.label === value.label && existing.href === value.href)
) {
values.push(value);
}
}
@@ -70,12 +73,15 @@ function resolveDocs({ dirName, manifest, packageJson }) {
const links = [];
const pluginAlias = PLUGIN_DOC_ALIASES.get(manifest.id) ?? PLUGIN_DOC_ALIASES.get(dirName);
if (pluginAlias) {
pushUnique(links, docLink(manifest.id ?? dirName, pluginAlias));
pushUniqueDocLink(links, { href: pluginAlias, label: manifest.id ?? dirName });
}
const channelDoc = normalizeDocPath(packageJson.openclaw?.channel?.docsPath);
if (channelDoc) {
pushUnique(links, docLink(channelDoc.replace(/^\/channels\//u, ""), channelDoc));
pushUniqueDocLink(links, {
href: channelDoc,
label: channelDoc.replace(/^\/channels\//u, ""),
});
}
for (const channel of manifest.channels ?? []) {
@@ -84,7 +90,7 @@ function resolveDocs({ dirName, manifest, packageJson }) {
}
const relativePath = `docs/channels/${channel}.md`;
if (fileExists(relativePath)) {
pushUnique(links, docLink(channel, `/channels/${channel}`));
pushUniqueDocLink(links, { href: `/channels/${channel}`, label: channel });
}
}
@@ -94,12 +100,12 @@ function resolveDocs({ dirName, manifest, packageJson }) {
}
const alias = PROVIDER_DOC_ALIASES.get(provider);
if (alias) {
pushUnique(links, docLink(provider, alias));
pushUniqueDocLink(links, { href: alias, label: provider });
continue;
}
const relativePath = `docs/providers/${provider}.md`;
if (fileExists(relativePath)) {
pushUnique(links, docLink(provider, `/providers/${provider}`));
pushUniqueDocLink(links, { href: `/providers/${provider}`, label: provider });
}
}
@@ -108,17 +114,17 @@ function resolveDocs({ dirName, manifest, packageJson }) {
continue;
}
if (fileExists(`docs/channels/${candidate}.md`)) {
pushUnique(links, docLink(candidate, `/channels/${candidate}`));
pushUniqueDocLink(links, { href: `/channels/${candidate}`, label: candidate });
}
if (fileExists(`docs/providers/${candidate}.md`)) {
pushUnique(links, docLink(candidate, `/providers/${candidate}`));
pushUniqueDocLink(links, { href: `/providers/${candidate}`, label: candidate });
}
if (fileExists(`docs/plugins/${candidate}.md`)) {
pushUnique(links, docLink(candidate, `/plugins/${candidate}`));
pushUniqueDocLink(links, { href: `/plugins/${candidate}`, label: candidate });
}
}
return links.length > 0 ? links.join(", ") : "-";
return links;
}
function resolveSurface(manifest) {
@@ -185,12 +191,13 @@ function escapeCell(value) {
function renderTable(records) {
const rows = [
["Plugin", "Package", "Surface", "Docs", "Install"],
["Plugin", "Package", "Surface", "Install"],
...records.map((record) => [
escapeCell(record.id),
record.docs.length > 0
? docLink({ href: record.docs[0].href, label: escapeCell(record.id) })
: escapeCell(record.id),
`\`${escapeCell(record.packageName)}\``,
escapeCell(record.surface),
escapeCell(record.docs),
escapeCell(record.install),
]),
];