feat(plugins): externalize additional official plugins (#95683)

This commit is contained in:
Vincent Koc 2026-06-22 16:12:51 +08:00 committed by GitHub
parent 4e9dc6b5d5
commit f2eca94391
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
78 changed files with 1695 additions and 116 deletions

View file

@ -63,9 +63,9 @@ If `plugins.allow` is a non-empty restrictive list, explicitly selecting
ClickClack in channel setup or running `openclaw plugins enable clickclack`
appends `clickclack` to that list. Onboarding installation uses the same
explicit-selection behavior. These paths do not override `plugins.deny` or a
global `plugins.enabled: false` setting. Direct `openclaw plugins install
clickclack` follows the normal plugin-install policy and also records ClickClack
in an existing allowlist.
global `plugins.enabled: false` setting. Direct
`openclaw plugins install @openclaw/clickclack` follows the normal
plugin-install policy and also records ClickClack in an existing allowlist.
## Multiple bots

View file

@ -42,7 +42,7 @@ Text is supported everywhere; media and reactions vary by channel.
- [Raft](/channels/raft) - Raft CLI wake bridge for human and agent collaboration (external plugin).
- [Signal](/channels/signal) - signal-cli; privacy-focused.
- [Slack](/channels/slack) - Bolt SDK; workspace apps.
- [SMS](/channels/sms) - Twilio-backed SMS through the Gateway webhook (bundled plugin).
- [SMS](/channels/sms) - Twilio-backed SMS through the Gateway webhook (official plugin).
- [Synology Chat](/channels/synology-chat) - Synology NAS Chat via outgoing+incoming webhooks (bundled plugin).
- [Telegram](/channels/telegram) - Bot API via grammY; supports groups.
- [Tlon](/channels/tlon) - Urbit-based messenger (bundled plugin).

View file

@ -7,12 +7,18 @@ read_when:
---
Use IRC when you want OpenClaw in classic channels (`#room`) and direct messages.
IRC ships as a bundled plugin, but it is configured in the main config under `channels.irc`.
Install the official IRC plugin, then configure it under `channels.irc`.
## Quick start
1. Enable IRC config in `~/.openclaw/openclaw.json`.
2. Set at least:
1. Install the plugin:
```bash
openclaw plugins install @openclaw/irc
```
2. Enable IRC config in `~/.openclaw/openclaw.json`.
3. Set at least:
```json5
{
@ -31,7 +37,7 @@ IRC ships as a bundled plugin, but it is configured in the main config under `ch
Prefer a private IRC server for bot coordination. If you intentionally use a public IRC network, common choices include Libera.Chat, OFTC, and Snoonet. Avoid predictable public channels for bot or swarm backchannel traffic.
3. Start/restart gateway:
4. Start/restart gateway:
```bash
openclaw gateway run

View file

@ -32,7 +32,7 @@ Details: [Plugins](/tools/plugin)
<Steps>
<Step title="Ensure plugin is available">
Current packaged OpenClaw releases already bundle it. Older/custom installs can add it manually with the commands above.
Install `@openclaw/mattermost` with the command above, then restart the Gateway if it is already running.
</Step>
<Step title="Create a Mattermost bot">
Create a Mattermost bot account and copy the **bot token**.

View file

@ -20,12 +20,18 @@ Status: external CLI integration. Gateway talks to `signal-cli` over HTTP — ei
## Quick setup (beginner)
1. Use a **separate Signal number** for the bot (recommended).
2. Install `signal-cli` (Java required if you use the JVM build).
3. Choose one setup path:
2. Install the OpenClaw plugin:
```bash
openclaw plugins install @openclaw/signal
```
3. Install `signal-cli` (Java required if you use the JVM build).
4. Choose one setup path:
- **Path A (QR link):** `signal-cli link -n "OpenClaw"` and scan with Signal.
- **Path B (SMS register):** register a dedicated number with captcha + SMS verification.
4. Configure OpenClaw and restart the gateway.
5. Send a first DM and approve pairing (`openclaw pairing approve signal <CODE>`).
5. Configure OpenClaw and restart the gateway.
6. Send a first DM and approve pairing (`openclaw pairing approve signal <CODE>`).
Minimal config:

View file

@ -24,6 +24,7 @@ OpenClaw can receive and send SMS through a Twilio phone number or Messaging Ser
You need:
- The official SMS plugin installed with `openclaw plugins install @openclaw/sms`.
- A Twilio account with an SMS-capable phone number, or a Twilio Messaging Service.
- The Twilio Account SID and Auth Token.
- A public HTTPS URL that reaches your OpenClaw Gateway.
@ -34,6 +35,11 @@ Use one Twilio number for both SMS and Voice Call if the number has both capabil
## Quick Setup
<Steps>
<Step title="Install the plugin">
```bash
openclaw plugins install @openclaw/sms
```
</Step>
<Step title="Create or choose a Twilio sender">
In Twilio, open **Phone Numbers > Manage > Active numbers** and choose an SMS-capable number. Save:

View file

@ -333,7 +333,7 @@ Gateway model capability checks also read explicit `models.providers.<id>.models
### Moonshot AI (Kimi)
Moonshot ships as a bundled provider plugin. Use the built-in provider by default, and add an explicit `models.providers.moonshot` entry only when you need to override the base URL or model metadata:
Install `@openclaw/moonshot-provider` before onboarding. Add an explicit `models.providers.moonshot` entry only when you need to override the base URL or model metadata:
- Provider: `moonshot`
- Auth: `MOONSHOT_API_KEY`

View file

@ -51,7 +51,7 @@ Each entry lists the package, distribution route, and description.
## Core npm package
72 plugins
59 plugins
- **[admin-http-rpc](/plugins/reference/admin-http-rpc)** (`@openclaw/admin-http-rpc`) - included in OpenClaw. OpenClaw admin HTTP RPC endpoint.
@ -69,8 +69,6 @@ Each entry lists the package, distribution route, and description.
- **[canvas](/plugins/reference/canvas)** (`@openclaw/canvas-plugin`) - included in OpenClaw. Experimental Canvas control and A2UI rendering surfaces for paired nodes.
- **[clickclack](/plugins/reference/clickclack)** (`@openclaw/clickclack`) - included in OpenClaw. Adds the Clickclack channel surface for sending and receiving OpenClaw messages.
- **[codex-supervisor](/plugins/reference/codex-supervisor)** (`@openclaw/codex-supervisor`) - included in OpenClaw. Supervise Codex app-server sessions from OpenClaw.
- **[cohere](/plugins/reference/cohere)** (`@openclaw/cohere-provider`) - included in OpenClaw; npm; ClawHub: `clawhub:@openclaw/cohere-provider`. OpenClaw Cohere provider plugin.
@ -91,8 +89,6 @@ Each entry lists the package, distribution route, and description.
- **[file-transfer](/plugins/reference/file-transfer)** (`@openclaw/file-transfer`) - included in OpenClaw. 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.
- **[fireworks](/plugins/reference/fireworks)** (`@openclaw/fireworks-provider`) - included in OpenClaw. Adds Fireworks model provider support to OpenClaw.
- **[github-copilot](/plugins/reference/github-copilot)** (`@openclaw/github-copilot-provider`) - included in OpenClaw. Adds GitHub Copilot model provider support to OpenClaw.
- **[google](/plugins/reference/google)** (`@openclaw/google-plugin`) - included in OpenClaw. Adds Google, Google Gemini CLI, Google Vertex model provider support to OpenClaw.
@ -101,16 +97,12 @@ Each entry lists the package, distribution route, and description.
- **[imessage](/plugins/reference/imessage)** (`@openclaw/imessage`) - included in OpenClaw. Adds the iMessage channel surface for sending and receiving OpenClaw messages.
- **[irc](/plugins/reference/irc)** (`@openclaw/irc`) - included in OpenClaw. Adds the IRC channel surface for sending and receiving OpenClaw messages.
- **[litellm](/plugins/reference/litellm)** (`@openclaw/litellm-provider`) - included in OpenClaw. Adds LiteLLM model provider support to OpenClaw.
- **[llm-task](/plugins/reference/llm-task)** (`@openclaw/llm-task`) - included in OpenClaw. Generic JSON-only LLM tool for structured tasks callable from workflows.
- **[lmstudio](/plugins/reference/lmstudio)** (`@openclaw/lmstudio-provider`) - included in OpenClaw. Adds LM Studio model provider support to OpenClaw.
- **[mattermost](/plugins/reference/mattermost)** (`@openclaw/mattermost`) - included in OpenClaw. Adds the Mattermost channel surface for sending and receiving OpenClaw messages.
- **[memory-core](/plugins/reference/memory-core)** (`@openclaw/memory-core`) - included in OpenClaw. Adds agent-callable tools.
- **[memory-wiki](/plugins/reference/memory-wiki)** (`@openclaw/memory-wiki`) - included in OpenClaw. Persistent wiki compiler and Obsidian-friendly knowledge vault for OpenClaw.
@ -127,8 +119,6 @@ Each entry lists the package, distribution route, and description.
- **[mistral](/plugins/reference/mistral)** (`@openclaw/mistral-provider`) - included in OpenClaw. Adds Mistral model provider support to OpenClaw.
- **[moonshot](/plugins/reference/moonshot)** (`@openclaw/moonshot-provider`) - included in OpenClaw. Adds Moonshot model provider support to OpenClaw.
- **[novita](/plugins/reference/novita)** (`@openclaw/novita-provider`) - included in OpenClaw. Adds Novita, Novita AI, Novitaai model provider support to OpenClaw.
- **[nvidia](/plugins/reference/nvidia)** (`@openclaw/nvidia-provider`) - included in OpenClaw. Adds NVIDIA model provider support to OpenClaw.
@ -151,32 +141,18 @@ Each entry lists the package, distribution route, and description.
- **[runway](/plugins/reference/runway)** (`@openclaw/runway-provider`) - included in OpenClaw. Adds video generation provider support.
- **[searxng](/plugins/reference/searxng)** (`@openclaw/searxng-plugin`) - included in OpenClaw. Adds web search provider support.
- **[senseaudio](/plugins/reference/senseaudio)** (`@openclaw/senseaudio-provider`) - included in OpenClaw. Adds media understanding provider support.
- **[sglang](/plugins/reference/sglang)** (`@openclaw/sglang-provider`) - included in OpenClaw. Adds SGLang model provider support to OpenClaw.
- **[signal](/plugins/reference/signal)** (`@openclaw/signal`) - included in OpenClaw. Adds the Signal channel surface for sending and receiving OpenClaw messages.
- **[sms](/plugins/reference/sms)** (`@openclaw/sms`) - included in OpenClaw. Twilio SMS channel plugin for OpenClaw text messages.
- **[synthetic](/plugins/reference/synthetic)** (`@openclaw/synthetic-provider`) - included in OpenClaw. Adds Synthetic model provider support to OpenClaw.
- **[tavily](/plugins/reference/tavily)** (`@openclaw/tavily-plugin`) - included in OpenClaw. Adds agent-callable tools. Adds web search provider support.
- **[telegram](/plugins/reference/telegram)** (`@openclaw/telegram`) - included in OpenClaw. Adds the Telegram channel surface for sending and receiving OpenClaw messages.
- **[tencent](/plugins/reference/tencent)** (`@openclaw/tencent-provider`) - included in OpenClaw. Adds Tencent TokenHub model provider support to OpenClaw.
- **[together](/plugins/reference/together)** (`@openclaw/together-provider`) - included in OpenClaw. Adds Together model provider support to OpenClaw.
- **[tts-local-cli](/plugins/reference/tts-local-cli)** (`@openclaw/tts-local-cli`) - included in OpenClaw. Adds text-to-speech provider support.
- **[venice](/plugins/reference/venice)** (`@openclaw/venice-provider`) - included in OpenClaw. Adds Venice model provider support to OpenClaw.
- **[vercel-ai-gateway](/plugins/reference/vercel-ai-gateway)** (`@openclaw/vercel-ai-gateway-provider`) - included in OpenClaw. Adds Vercel AI Gateway model provider support to OpenClaw.
- **[vllm](/plugins/reference/vllm)** (`@openclaw/vllm-provider`) - included in OpenClaw. Adds vLLM model provider support to OpenClaw.
- **[volcengine](/plugins/reference/volcengine)** (`@openclaw/volcengine-provider`) - included in OpenClaw. Adds Volcengine, Volcengine Plan model provider support to OpenClaw.
@ -195,11 +171,9 @@ Each entry lists the package, distribution route, and description.
- **[xiaomi](/plugins/reference/xiaomi)** (`@openclaw/xiaomi-provider`) - included in OpenClaw. Adds Xiaomi, Xiaomi Token Plan model provider support to OpenClaw.
- **[zai](/plugins/reference/zai)** (`@openclaw/zai-provider`) - included in OpenClaw. Adds Z.AI model provider support to OpenClaw.
## Official external packages
55 plugins
68 plugins
- **[acpx](/plugins/reference/acpx)** (`@openclaw/acpx`) - npm; ClawHub. OpenClaw ACP runtime backend with plugin-owned session and transport management.
@ -217,6 +191,8 @@ Each entry lists the package, distribution route, and description.
- **[chutes](/plugins/reference/chutes)** (`@openclaw/chutes-provider`) - npm; ClawHub: `clawhub:@openclaw/chutes-provider`. Adds Chutes model provider support to OpenClaw.
- **[clickclack](/plugins/reference/clickclack)** (`@openclaw/clickclack`) - npm; ClawHub: `clawhub:@openclaw/clickclack`. Adds the Clickclack channel surface for sending and receiving OpenClaw messages.
- **[cloudflare-ai-gateway](/plugins/reference/cloudflare-ai-gateway)** (`@openclaw/cloudflare-ai-gateway-provider`) - npm; ClawHub: `clawhub:@openclaw/cloudflare-ai-gateway-provider`. Adds Cloudflare AI Gateway model provider support to OpenClaw.
- **[codex](/plugins/reference/codex)** (`@openclaw/codex`) - npm; ClawHub. OpenClaw Codex app-server harness and model provider plugin with a Codex-managed GPT catalog.
@ -243,6 +219,8 @@ Each entry lists the package, distribution route, and description.
- **[firecrawl](/plugins/reference/firecrawl)** (`@openclaw/firecrawl-plugin`) - npm; ClawHub: `clawhub:@openclaw/firecrawl-plugin`. Adds agent-callable tools. Adds web fetch provider support. Adds web search provider support.
- **[fireworks](/plugins/reference/fireworks)** (`@openclaw/fireworks-provider`) - npm; ClawHub: `clawhub:@openclaw/fireworks-provider`. Adds Fireworks model provider support to OpenClaw.
- **[gmi](/plugins/reference/gmi)** (`@openclaw/gmi-provider`) - npm; ClawHub: `clawhub:@openclaw/gmi-provider`. OpenClaw GMI Cloud provider plugin.
- **[google-meet](/plugins/reference/google-meet)** (`@openclaw/google-meet`) - npm; ClawHub. OpenClaw Google Meet participant plugin for joining calls through Chrome or Twilio transports.
@ -255,6 +233,8 @@ Each entry lists the package, distribution route, and description.
- **[inworld](/plugins/reference/inworld)** (`@openclaw/inworld-speech`) - npm; ClawHub: `clawhub:@openclaw/inworld-speech`. Inworld streaming text-to-speech (MP3, OGG_OPUS, PCM telephony).
- **[irc](/plugins/reference/irc)** (`@openclaw/irc`) - npm; ClawHub: `clawhub:@openclaw/irc`. Adds the IRC channel surface for sending and receiving OpenClaw messages.
- **[kilocode](/plugins/reference/kilocode)** (`@openclaw/kilocode-provider`) - npm; ClawHub: `clawhub:@openclaw/kilocode-provider`. Adds Kilocode model provider support to OpenClaw.
- **[kimi](/plugins/reference/kimi)** (`@openclaw/kimi-provider`) - npm; ClawHub: `clawhub:@openclaw/kimi-provider`. Adds Kimi, Kimi Coding model provider support to OpenClaw.
@ -267,8 +247,12 @@ Each entry lists the package, distribution route, and description.
- **[matrix](/plugins/reference/matrix)** (`@openclaw/matrix`) - ClawHub: `clawhub:@openclaw/matrix`; npm. OpenClaw Matrix channel plugin for rooms and direct messages.
- **[mattermost](/plugins/reference/mattermost)** (`@openclaw/mattermost`) - npm; ClawHub: `clawhub:@openclaw/mattermost`. Adds the Mattermost channel surface for sending and receiving OpenClaw messages.
- **[memory-lancedb](/plugins/reference/memory-lancedb)** (`@openclaw/memory-lancedb`) - npm; ClawHub. OpenClaw LanceDB-backed long-term memory plugin with auto-recall, auto-capture, and vector search.
- **[moonshot](/plugins/reference/moonshot)** (`@openclaw/moonshot-provider`) - npm; ClawHub: `clawhub:@openclaw/moonshot-provider`. Adds Moonshot model provider support to OpenClaw.
- **[msteams](/plugins/reference/msteams)** (`@openclaw/msteams`) - npm; ClawHub. OpenClaw Microsoft Teams channel plugin for bot conversations.
- **[nextcloud-talk](/plugins/reference/nextcloud-talk)** (`@openclaw/nextcloud-talk`) - npm; ClawHub. OpenClaw Nextcloud Talk channel plugin for conversations.
@ -291,22 +275,38 @@ Each entry lists the package, distribution route, and description.
- **[raft](/plugins/reference/raft)** (`@openclaw/raft`) - npm; ClawHub. OpenClaw Raft channel plugin for secure CLI wake bridges.
- **[searxng](/plugins/reference/searxng)** (`@openclaw/searxng-plugin`) - npm; ClawHub: `clawhub:@openclaw/searxng-plugin`. Adds web search provider support.
- **[signal](/plugins/reference/signal)** (`@openclaw/signal`) - npm; ClawHub: `clawhub:@openclaw/signal`. Adds the Signal channel surface for sending and receiving OpenClaw messages.
- **[slack](/plugins/reference/slack)** (`@openclaw/slack`) - npm; ClawHub. OpenClaw Slack channel plugin for channels, DMs, commands, and app events.
- **[sms](/plugins/reference/sms)** (`@openclaw/sms`) - npm; ClawHub: `clawhub:@openclaw/sms`. Twilio SMS channel plugin for OpenClaw text messages.
- **[stepfun](/plugins/reference/stepfun)** (`@openclaw/stepfun-provider`) - npm; ClawHub: `clawhub:@openclaw/stepfun-provider`. Adds StepFun, StepFun Plan model provider support to OpenClaw.
- **[synology-chat](/plugins/reference/synology-chat)** (`@openclaw/synology-chat`) - npm; ClawHub. Synology Chat channel plugin for OpenClaw channels and direct messages.
- **[tavily](/plugins/reference/tavily)** (`@openclaw/tavily-plugin`) - npm; ClawHub: `clawhub:@openclaw/tavily-plugin`. Adds agent-callable tools. Adds web search provider support.
- **[tencent](/plugins/reference/tencent)** (`@openclaw/tencent-provider`) - npm; ClawHub: `clawhub:@openclaw/tencent-provider`. Adds Tencent TokenHub model provider support to OpenClaw.
- **[tlon](/plugins/reference/tlon)** (`@openclaw/tlon`) - npm; ClawHub. OpenClaw Tlon/Urbit channel plugin for chat workflows.
- **[tokenjuice](/plugins/reference/tokenjuice)** (`@openclaw/tokenjuice`) - npm; ClawHub: `clawhub:@openclaw/tokenjuice`. Compacts exec and bash tool results with tokenjuice reducers.
- **[twitch](/plugins/reference/twitch)** (`@openclaw/twitch`) - npm; ClawHub. OpenClaw Twitch channel plugin for chat and moderation workflows.
- **[venice](/plugins/reference/venice)** (`@openclaw/venice-provider`) - npm; ClawHub: `clawhub:@openclaw/venice-provider`. Adds Venice model provider support to OpenClaw.
- **[vercel-ai-gateway](/plugins/reference/vercel-ai-gateway)** (`@openclaw/vercel-ai-gateway-provider`) - npm; ClawHub: `clawhub:@openclaw/vercel-ai-gateway-provider`. Adds Vercel AI Gateway model provider support to OpenClaw.
- **[voice-call](/plugins/reference/voice-call)** (`@openclaw/voice-call`) - npm; ClawHub. OpenClaw voice-call plugin for Twilio, Telnyx, and Plivo phone calls.
- **[whatsapp](/plugins/reference/whatsapp)** (`@openclaw/whatsapp`) - ClawHub: `clawhub:@openclaw/whatsapp`; npm. OpenClaw WhatsApp channel plugin for WhatsApp Web chats.
- **[zai](/plugins/reference/zai)** (`@openclaw/zai-provider`) - npm; ClawHub: `clawhub:@openclaw/zai-provider`. Adds Z.AI model provider support to OpenClaw.
- **[zalo](/plugins/reference/zalo)** (`@openclaw/zalo`) - npm; ClawHub. OpenClaw Zalo channel plugin for bot and webhook chats.
- **[zalouser](/plugins/reference/zalouser)** (`@openclaw/zalouser`) - npm; ClawHub. OpenClaw Zalo Personal Account plugin via native zca-js integration.

View file

@ -12,7 +12,7 @@ Adds the Clickclack channel surface for sending and receiving OpenClaw messages.
## Distribution
- Package: `@openclaw/clickclack`
- Install route: included in OpenClaw
- Install route: npm; ClawHub: `clawhub:@openclaw/clickclack`
## Surface

View file

@ -12,7 +12,7 @@ Adds Fireworks model provider support to OpenClaw.
## Distribution
- Package: `@openclaw/fireworks-provider`
- Install route: included in OpenClaw
- Install route: npm; ClawHub: `clawhub:@openclaw/fireworks-provider`
## Surface

View file

@ -12,7 +12,7 @@ Adds the IRC channel surface for sending and receiving OpenClaw messages.
## Distribution
- Package: `@openclaw/irc`
- Install route: included in OpenClaw
- Install route: npm; ClawHub: `clawhub:@openclaw/irc`
## Surface

View file

@ -12,7 +12,7 @@ Adds the Mattermost channel surface for sending and receiving OpenClaw messages.
## Distribution
- Package: `@openclaw/mattermost`
- Install route: included in OpenClaw
- Install route: npm; ClawHub: `clawhub:@openclaw/mattermost`
## Surface

View file

@ -12,7 +12,7 @@ Adds Moonshot model provider support to OpenClaw.
## Distribution
- Package: `@openclaw/moonshot-provider`
- Install route: included in OpenClaw
- Install route: npm; ClawHub: `clawhub:@openclaw/moonshot-provider`
## Surface

View file

@ -12,7 +12,7 @@ Adds web search provider support.
## Distribution
- Package: `@openclaw/searxng-plugin`
- Install route: included in OpenClaw
- Install route: npm; ClawHub: `clawhub:@openclaw/searxng-plugin`
## Surface

View file

@ -12,7 +12,7 @@ Adds the Signal channel surface for sending and receiving OpenClaw messages.
## Distribution
- Package: `@openclaw/signal`
- Install route: included in OpenClaw
- Install route: npm; ClawHub: `clawhub:@openclaw/signal`
## Surface

View file

@ -12,7 +12,7 @@ Twilio SMS channel plugin for OpenClaw text messages.
## Distribution
- Package: `@openclaw/sms`
- Install route: included in OpenClaw
- Install route: npm; ClawHub: `clawhub:@openclaw/sms`
## Surface

View file

@ -12,7 +12,7 @@ Adds agent-callable tools. Adds web search provider support.
## Distribution
- Package: `@openclaw/tavily-plugin`
- Install route: included in OpenClaw
- Install route: npm; ClawHub: `clawhub:@openclaw/tavily-plugin`
## Surface

View file

@ -12,7 +12,7 @@ Adds Tencent TokenHub model provider support to OpenClaw.
## Distribution
- Package: `@openclaw/tencent-provider`
- Install route: included in OpenClaw
- Install route: npm; ClawHub: `clawhub:@openclaw/tencent-provider`
## Surface

View file

@ -12,7 +12,7 @@ Adds Venice model provider support to OpenClaw.
## Distribution
- Package: `@openclaw/venice-provider`
- Install route: included in OpenClaw
- Install route: npm; ClawHub: `clawhub:@openclaw/venice-provider`
## Surface

View file

@ -12,7 +12,7 @@ Adds Vercel AI Gateway model provider support to OpenClaw.
## Distribution
- Package: `@openclaw/vercel-ai-gateway-provider`
- Install route: included in OpenClaw
- Install route: npm; ClawHub: `clawhub:@openclaw/vercel-ai-gateway-provider`
## Surface

View file

@ -12,7 +12,7 @@ Adds Z.AI model provider support to OpenClaw.
## Distribution
- Package: `@openclaw/zai-provider`
- Install route: included in OpenClaw
- Install route: npm; ClawHub: `clawhub:@openclaw/zai-provider`
## Surface

View file

@ -7,12 +7,12 @@ read_when:
- You are debugging Kimi thinking-off behavior on Fireworks
---
[Fireworks](https://fireworks.ai) exposes open-weight and routed models through an OpenAI-compatible API. OpenClaw includes a bundled Fireworks provider plugin that ships with two pre-cataloged Kimi models and accepts any Fireworks model or router id at runtime.
[Fireworks](https://fireworks.ai) exposes open-weight and routed models through an OpenAI-compatible API. Install the official Fireworks provider plugin to use two pre-cataloged Kimi models and any Fireworks model or router id at runtime.
| Property | Value |
| --------------- | ------------------------------------------------------ |
| Provider id | `fireworks` (alias: `fireworks-ai`) |
| Plugin | bundled, `enabledByDefault: true` |
| Package | `@openclaw/fireworks-provider` |
| Auth env var | `FIREWORKS_API_KEY` |
| Onboarding flag | `--auth-choice fireworks-api-key` |
| Direct CLI flag | `--fireworks-api-key <key>` |
@ -24,6 +24,11 @@ read_when:
## Getting started
<Steps>
<Step title="Install the plugin">
```bash
openclaw plugins install @openclaw/fireworks-provider
```
</Step>
<Step title="Set the Fireworks API key">
<CodeGroup>
@ -108,7 +113,7 @@ OpenClaw accepts any Fireworks model or router id at runtime. Use the exact id s
</Accordion>
<Accordion title="Why thinking is forced off for Kimi">
Fireworks K2.6 returns a 400 if the request carries `reasoning_*` parameters even though Kimi supports thinking through Moonshot's own API. The bundled policy (`extensions/fireworks/thinking-policy.ts`) advertises only the `off` thinking level for Kimi model ids, so manual `/think` switches and provider-policy surfaces stay aligned with the runtime contract.
Fireworks K2.6 returns a 400 if the request carries `reasoning_*` parameters even though Kimi supports thinking through Moonshot's own API. The provider policy (`extensions/fireworks/thinking-policy.ts`) advertises only the `off` thinking level for Kimi model ids, so manual `/think` switches and provider-policy surfaces stay aligned with the runtime contract.
To use Kimi reasoning end-to-end, configure the [Moonshot provider](/providers/moonshot) and route the same model through it.

View file

@ -30,7 +30,7 @@ Moonshot and Kimi Coding are **separate providers**. Keys are not interchangeabl
[//]: # "moonshot-kimi-k2-ids:end"
Bundled cost estimates for current Moonshot-hosted K2 models use Moonshot's
Catalog cost estimates for current Moonshot-hosted K2 models use Moonshot's
published pay-as-you-go rates: Kimi K2.7 Code is $0.19/MTok cache hit,
$0.95/MTok input, and $4.00/MTok output; Kimi K2.6 is $0.16/MTok cache hit,
$0.95/MTok input, and $4.00/MTok output; Kimi K2.5 is $0.10/MTok cache hit,
@ -213,6 +213,11 @@ Choose your provider and follow the setup steps.
</Note>
<Steps>
<Step title="Install the plugin">
```bash
openclaw plugins install @openclaw/kimi-provider
```
</Step>
<Step title="Run onboarding">
```bash
openclaw onboard --auth-choice kimi-code-api-key
@ -257,8 +262,7 @@ Choose your provider and follow the setup steps.
## Kimi web search
OpenClaw also ships **Kimi** as a `web_search` provider, backed by Moonshot web
search.
The Moonshot plugin also registers **Kimi** as a `web_search` provider, backed by Moonshot web search.
<Steps>
<Step title="Run interactive web search setup">
@ -405,7 +409,7 @@ Config lives under `plugins.entries.moonshot.config.webSearch`:
capabilities, so compatible custom provider ids targeting the same native
Moonshot hosts inherit the same streaming-usage behavior.
With the bundled K2.6 pricing, streamed usage that includes input, output,
With the catalog K2.6 pricing, streamed usage that includes input, output,
and cache-read tokens is also converted into local estimated USD cost for
`/status`, `/usage full`, `/usage cost`, and transcript-backed session
accounting.

View file

@ -6,12 +6,12 @@ read_when:
- You need the TokenHub API key setup
---
Tencent Cloud ships as a bundled provider plugin in OpenClaw. It gives access to Tencent Hy3 preview through the TokenHub endpoint (`tencent-tokenhub`) using an OpenAI-compatible API.
Install the official Tencent Cloud provider plugin to access Tencent Hy3 preview through the TokenHub endpoint (`tencent-tokenhub`) using an OpenAI-compatible API.
| Property | Value |
| ---------------- | ----------------------------------------------------- |
| Provider id | `tencent-tokenhub` |
| Plugin | bundled, `enabledByDefault: true` |
| Package | `@openclaw/tencent-provider` |
| Auth env var | `TOKENHUB_API_KEY` |
| Onboarding flag | `--auth-choice tokenhub-api-key` |
| Direct CLI flag | `--tokenhub-api-key <key>` |
@ -23,6 +23,11 @@ Tencent Cloud ships as a bundled provider plugin in OpenClaw. It gives access to
## Quick start
<Steps>
<Step title="Install the plugin">
```bash
openclaw plugins install @openclaw/tencent-provider
```
</Step>
<Step title="Create a TokenHub API key">
Create an API key in Tencent Cloud TokenHub. If you choose a limited access scope for the key, include **Hy3 preview** in the allowed models.
</Step>
@ -78,7 +83,7 @@ Hy3 preview is Tencent Hunyuan's large MoE language model for reasoning, long-co
## Tiered pricing
The bundled catalog ships tiered cost metadata that scales with input window length, so cost estimates are populated without manual overrides.
The provider catalog ships tiered cost metadata that scales with input window length, so cost estimates are populated without manual overrides.
| Input tokens range | Input rate | Output rate | Cache read |
| ------------------ | ---------- | ----------- | ---------- |

View file

@ -42,6 +42,11 @@ Anonymized models are **not** fully private. Venice strips metadata before forwa
## Getting started
<Steps>
<Step title="Install the plugin">
```bash
openclaw plugins install @openclaw/venice-provider
```
</Step>
<Step title="Get your API key">
1. Sign up at [venice.ai](https://venice.ai)
2. Go to **Settings > API Keys > Create new key**

View file

@ -9,12 +9,13 @@ read_when:
The [Vercel AI Gateway](https://vercel.com/ai-gateway) provides a unified API to
access hundreds of models through a single endpoint.
| Property | Value |
| ------------- | -------------------------------- |
| Provider | `vercel-ai-gateway` |
| Auth | `AI_GATEWAY_API_KEY` |
| API | Anthropic Messages compatible |
| Model catalog | Auto-discovered via `/v1/models` |
| Property | Value |
| ------------- | -------------------------------------- |
| Provider | `vercel-ai-gateway` |
| Package | `@openclaw/vercel-ai-gateway-provider` |
| Auth | `AI_GATEWAY_API_KEY` |
| API | Anthropic Messages compatible |
| Model catalog | Auto-discovered via `/v1/models` |
<Tip>
OpenClaw auto-discovers the Gateway `/v1/models` catalog, so
@ -26,6 +27,11 @@ OpenClaw auto-discovers the Gateway `/v1/models` catalog, so
## Getting started
<Steps>
<Step title="Install the plugin">
```bash
openclaw plugins install @openclaw/vercel-ai-gateway-provider
```
</Step>
<Step title="Set the API key">
Run onboarding and choose the AI Gateway auth option:

View file

@ -13,6 +13,7 @@ OpenClaw uses the `zai` provider with a Z.AI API key.
| Property | Value |
| -------- | -------------------------------------------- |
| Provider | `zai` |
| Package | `@openclaw/zai-provider` |
| Auth | `ZAI_API_KEY` (legacy alias: `Z_AI_API_KEY`) |
| API | Z.AI Chat Completions (Bearer auth) |
@ -23,6 +24,12 @@ refs such as `zai/glm-5.2`: provider `zai`, model id `glm-5.2`.
## Getting started
Install the provider plugin first:
```bash
openclaw plugins install @openclaw/zai-provider
```
<Tabs>
<Tab title="Auto-detect endpoint">
**Best for:** most users. OpenClaw probes supported Z.AI endpoints with your API key and applies the correct base URL automatically.
@ -96,7 +103,7 @@ you want to force a specific Coding Plan or general API surface.
## Built-in catalog
OpenClaw ships the bundled `zai` provider catalog in the plugin manifest, so read-only
The `zai` provider plugin ships its catalog in the plugin manifest, so read-only
listing can show known GLM rows without loading provider runtime:
```bash
@ -143,7 +150,7 @@ known to your installed version.
<AccordionGroup>
<Accordion title="Forward-resolving unknown GLM-5 models">
Unknown `glm-5*` ids still forward-resolve on the bundled provider path by
Unknown `glm-5*` ids still forward-resolve on the provider path by
synthesizing provider-owned metadata from the `glm-4.7` template when the id
matches the current GLM-5 family shape.
</Accordion>
@ -200,7 +207,7 @@ known to your installed version.
</Accordion>
<Accordion title="Image understanding">
The bundled Z.AI plugin registers image understanding.
The Z.AI plugin registers image understanding.
| Property | Value |
| ------------- | ----------- |

View file

@ -20,6 +20,11 @@ Advantages:
## Setup
<Steps>
<Step title="Install the plugin">
```bash
openclaw plugins install @openclaw/searxng-plugin
```
</Step>
<Step title="Run a SearXNG instance">
```bash
docker run -d -p 8888:8080 searxng/searxng

View file

@ -15,16 +15,22 @@ title: "Tavily"
Tavily returns structured results optimized for LLM consumption with configurable search depth, topic filtering, domain filters, AI-generated answer summaries, and content extraction from URLs (including JavaScript-rendered pages).
| Property | Value |
| ------------- | ----------------------------------- |
| Plugin id | `tavily` |
| Auth | `TAVILY_API_KEY` or config `apiKey` |
| Base URL | `https://api.tavily.com` (default) |
| Bundled tools | `tavily_search`, `tavily_extract` |
| Property | Value |
| --------- | ----------------------------------- |
| Plugin id | `tavily` |
| Package | `@openclaw/tavily-plugin` |
| Auth | `TAVILY_API_KEY` or config `apiKey` |
| Base URL | `https://api.tavily.com` (default) |
| Tools | `tavily_search`, `tavily_extract` |
## Getting started
<Steps>
<Step title="Install the plugin">
```bash
openclaw plugins install @openclaw/tavily-plugin
```
</Step>
<Step title="Get an API key">
Create a Tavily account at [tavily.com](https://tavily.com), then generate an API key in the dashboard.
</Step>
@ -60,7 +66,7 @@ Tavily returns structured results optimized for LLM consumption with configurabl
</Steps>
<Tip>
Choosing Tavily in onboarding or `openclaw configure --section web` enables the bundled Tavily plugin automatically.
Choosing Tavily in onboarding or `openclaw configure --section web` installs and enables the official Tavily plugin when needed.
</Tip>
## Tool reference

View file

@ -0,0 +1,13 @@
# ClickClack OpenClaw channel
Official OpenClaw channel plugin for ClickClack.
## Install
```sh
openclaw plugins install @openclaw/clickclack
```
## Docs
See `docs/channels/clickclack.md` in the OpenClaw repository, or the published docs at `https://docs.openclaw.ai/channels/clickclack`.

View file

@ -0,0 +1,54 @@
{
"name": "@openclaw/clickclack",
"version": "2026.6.9",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@openclaw/clickclack",
"version": "2026.6.9",
"dependencies": {
"ws": "8.21.0",
"zod": "4.4.3"
},
"peerDependencies": {
"openclaw": ">=2026.6.9"
},
"peerDependenciesMeta": {
"openclaw": {
"optional": true
}
}
},
"node_modules/ws": {
"version": "8.21.0",
"resolved": "https://registry.npmjs.org/ws/-/ws-8.21.0.tgz",
"integrity": "sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g==",
"license": "MIT",
"engines": {
"node": ">=10.0.0"
},
"peerDependencies": {
"bufferutil": "^4.0.1",
"utf-8-validate": ">=5.0.2"
},
"peerDependenciesMeta": {
"bufferutil": {
"optional": true
},
"utf-8-validate": {
"optional": true
}
}
},
"node_modules/zod": {
"version": "4.4.3",
"resolved": "https://registry.npmjs.org/zod/-/zod-4.4.3.tgz",
"integrity": "sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ==",
"license": "MIT",
"funding": {
"url": "https://github.com/sponsors/colinhacks"
}
}
}
}

View file

@ -1,13 +1,12 @@
{
"name": "@openclaw/clickclack",
"version": "2026.6.9",
"private": true,
"description": "OpenClaw ClickClack channel plugin",
"type": "module",
"exports": {
".": "./index.ts",
"./api.js": "./api.ts",
"./runtime-api.js": "./runtime-api.ts"
".": "./dist/index.js",
"./api.js": "./dist/api.js",
"./runtime-api.js": "./dist/runtime-api.js"
},
"dependencies": {
"ws": "8.21.0",
@ -45,6 +44,28 @@
"nativeCommandsAutoEnabled": false,
"nativeSkillsAutoEnabled": false
}
},
"install": {
"clawhubSpec": "clawhub:@openclaw/clickclack",
"npmSpec": "@openclaw/clickclack",
"defaultChoice": "npm",
"minHostVersion": ">=2026.6.9",
"allowInvalidConfigRecovery": true
},
"compat": {
"pluginApi": ">=2026.6.9"
},
"build": {
"openclawVersion": "2026.6.9",
"bundledDist": false
},
"release": {
"publishToClawHub": true,
"publishToNpm": true
}
},
"repository": {
"type": "git",
"url": "https://github.com/openclaw/openclaw"
}
}

View file

@ -0,0 +1,13 @@
# Fireworks OpenClaw provider
Official OpenClaw provider plugin for Fireworks.
## Install
```sh
openclaw plugins install @openclaw/fireworks-provider
```
## Docs
See `docs/providers/fireworks.md` in the OpenClaw repository, or the published docs at `https://docs.openclaw.ai/providers/fireworks`.

12
extensions/fireworks/npm-shrinkwrap.json generated Normal file
View file

@ -0,0 +1,12 @@
{
"name": "@openclaw/fireworks-provider",
"version": "2026.6.9",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@openclaw/fireworks-provider",
"version": "2026.6.9"
}
}
}

View file

@ -1,7 +1,6 @@
{
"name": "@openclaw/fireworks-provider",
"version": "2026.6.9",
"private": true,
"description": "OpenClaw Fireworks provider plugin",
"type": "module",
"devDependencies": {
@ -10,6 +9,27 @@
"openclaw": {
"extensions": [
"./index.ts"
]
],
"install": {
"clawhubSpec": "clawhub:@openclaw/fireworks-provider",
"npmSpec": "@openclaw/fireworks-provider",
"defaultChoice": "npm",
"minHostVersion": ">=2026.6.9"
},
"compat": {
"pluginApi": ">=2026.6.9"
},
"build": {
"openclawVersion": "2026.6.9",
"bundledDist": false
},
"release": {
"publishToClawHub": true,
"publishToNpm": true
}
},
"repository": {
"type": "git",
"url": "https://github.com/openclaw/openclaw"
}
}

13
extensions/irc/README.md Normal file
View file

@ -0,0 +1,13 @@
# IRC OpenClaw channel
Official OpenClaw channel plugin for IRC.
## Install
```sh
openclaw plugins install @openclaw/irc
```
## Docs
See `docs/channels/irc.md` in the OpenClaw repository, or the published docs at `https://docs.openclaw.ai/channels/irc`.

24
extensions/irc/npm-shrinkwrap.json generated Normal file
View file

@ -0,0 +1,24 @@
{
"name": "@openclaw/irc",
"version": "2026.6.9",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@openclaw/irc",
"version": "2026.6.9",
"dependencies": {
"zod": "4.4.3"
}
},
"node_modules/zod": {
"version": "4.4.3",
"resolved": "https://registry.npmjs.org/zod/-/zod-4.4.3.tgz",
"integrity": "sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ==",
"license": "MIT",
"funding": {
"url": "https://github.com/sponsors/colinhacks"
}
}
}
}

View file

@ -11,7 +11,11 @@
"./index.ts"
],
"install": {
"minHostVersion": ">=2026.4.10"
"clawhubSpec": "clawhub:@openclaw/irc",
"npmSpec": "@openclaw/irc",
"defaultChoice": "npm",
"minHostVersion": ">=2026.6.9",
"allowInvalidConfigRecovery": true
},
"setupEntry": "./setup-entry.ts",
"channel": {
@ -36,9 +40,24 @@
"specifier": "./configured-state",
"exportName": "hasIrcConfiguredState"
}
},
"compat": {
"pluginApi": ">=2026.6.9"
},
"build": {
"openclawVersion": "2026.6.9",
"bundledDist": false
},
"release": {
"publishToClawHub": true,
"publishToNpm": true
}
},
"dependencies": {
"zod": "4.4.3"
},
"repository": {
"type": "git",
"url": "https://github.com/openclaw/openclaw"
}
}

View file

@ -0,0 +1,13 @@
# Mattermost OpenClaw channel
Official OpenClaw channel plugin for Mattermost.
## Install
```sh
openclaw plugins install @openclaw/mattermost
```
## Docs
See `docs/channels/mattermost.md` in the OpenClaw repository, or the published docs at `https://docs.openclaw.ai/channels/mattermost`.

View file

@ -0,0 +1,54 @@
{
"name": "@openclaw/mattermost",
"version": "2026.6.9",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@openclaw/mattermost",
"version": "2026.6.9",
"dependencies": {
"ws": "8.21.0",
"zod": "4.4.3"
},
"peerDependencies": {
"openclaw": ">=2026.6.9"
},
"peerDependenciesMeta": {
"openclaw": {
"optional": true
}
}
},
"node_modules/ws": {
"version": "8.21.0",
"resolved": "https://registry.npmjs.org/ws/-/ws-8.21.0.tgz",
"integrity": "sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g==",
"license": "MIT",
"engines": {
"node": ">=10.0.0"
},
"peerDependencies": {
"bufferutil": "^4.0.1",
"utf-8-validate": ">=5.0.2"
},
"peerDependenciesMeta": {
"bufferutil": {
"optional": true
},
"utf-8-validate": {
"optional": true
}
}
},
"node_modules/zod": {
"version": "4.4.3",
"resolved": "https://registry.npmjs.org/zod/-/zod-4.4.3.tgz",
"integrity": "sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ==",
"license": "MIT",
"funding": {
"url": "https://github.com/sponsors/colinhacks"
}
}
}
}

View file

@ -38,7 +38,22 @@
"order": 65
},
"install": {
"minHostVersion": ">=2026.4.10"
"clawhubSpec": "clawhub:@openclaw/mattermost",
"npmSpec": "@openclaw/mattermost",
"defaultChoice": "npm",
"minHostVersion": ">=2026.6.9",
"allowInvalidConfigRecovery": true
},
"compat": {
"pluginApi": ">=2026.6.9"
},
"build": {
"openclawVersion": "2026.6.9",
"bundledDist": false
},
"release": {
"publishToClawHub": true,
"publishToNpm": true
}
}
}

View file

@ -0,0 +1,13 @@
# Moonshot OpenClaw provider
Official OpenClaw provider plugin for Moonshot.
## Install
```sh
openclaw plugins install @openclaw/moonshot-provider
```
## Docs
See `docs/providers/moonshot.md` in the OpenClaw repository, or the published docs at `https://docs.openclaw.ai/providers/moonshot`.

12
extensions/moonshot/npm-shrinkwrap.json generated Normal file
View file

@ -0,0 +1,12 @@
{
"name": "@openclaw/moonshot-provider",
"version": "2026.6.9",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@openclaw/moonshot-provider",
"version": "2026.6.9"
}
}
}

View file

@ -1,7 +1,6 @@
{
"name": "@openclaw/moonshot-provider",
"version": "2026.6.9",
"private": true,
"description": "OpenClaw Moonshot provider plugin",
"type": "module",
"devDependencies": {
@ -10,6 +9,27 @@
"openclaw": {
"extensions": [
"./index.ts"
]
],
"install": {
"clawhubSpec": "clawhub:@openclaw/moonshot-provider",
"npmSpec": "@openclaw/moonshot-provider",
"defaultChoice": "npm",
"minHostVersion": ">=2026.6.9"
},
"compat": {
"pluginApi": ">=2026.6.9"
},
"build": {
"openclawVersion": "2026.6.9",
"bundledDist": false
},
"release": {
"publishToClawHub": true,
"publishToNpm": true
}
},
"repository": {
"type": "git",
"url": "https://github.com/openclaw/openclaw"
}
}

View file

@ -0,0 +1,13 @@
# SearXNG OpenClaw plugin
Official OpenClaw plugin for SearXNG.
## Install
```sh
openclaw plugins install @openclaw/searxng-plugin
```
## Docs
See `docs/tools/searxng-search.md` in the OpenClaw repository, or the published docs at `https://docs.openclaw.ai/tools/searxng-search`.

12
extensions/searxng/npm-shrinkwrap.json generated Normal file
View file

@ -0,0 +1,12 @@
{
"name": "@openclaw/searxng-plugin",
"version": "2026.6.9",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@openclaw/searxng-plugin",
"version": "2026.6.9"
}
}
}

View file

@ -1,7 +1,6 @@
{
"name": "@openclaw/searxng-plugin",
"version": "2026.6.9",
"private": true,
"description": "OpenClaw SearXNG plugin",
"type": "module",
"devDependencies": {
@ -10,6 +9,28 @@
"openclaw": {
"extensions": [
"./index.ts"
]
],
"install": {
"clawhubSpec": "clawhub:@openclaw/searxng-plugin",
"npmSpec": "@openclaw/searxng-plugin",
"defaultChoice": "npm",
"minHostVersion": ">=2026.6.9",
"allowInvalidConfigRecovery": true
},
"compat": {
"pluginApi": ">=2026.6.9"
},
"build": {
"openclawVersion": "2026.6.9",
"bundledDist": false
},
"release": {
"publishToClawHub": true,
"publishToNpm": true
}
},
"repository": {
"type": "git",
"url": "https://github.com/openclaw/openclaw"
}
}

View file

@ -0,0 +1,13 @@
# Signal OpenClaw channel
Official OpenClaw channel plugin for Signal.
## Install
```sh
openclaw plugins install @openclaw/signal
```
## Docs
See `docs/channels/signal.md` in the OpenClaw repository, or the published docs at `https://docs.openclaw.ai/channels/signal`.

36
extensions/signal/npm-shrinkwrap.json generated Normal file
View file

@ -0,0 +1,36 @@
{
"name": "@openclaw/signal",
"version": "2026.6.9",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@openclaw/signal",
"version": "2026.6.9",
"dependencies": {
"ws": "8.21.0"
}
},
"node_modules/ws": {
"version": "8.21.0",
"resolved": "https://registry.npmjs.org/ws/-/ws-8.21.0.tgz",
"integrity": "sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g==",
"license": "MIT",
"engines": {
"node": ">=10.0.0"
},
"peerDependencies": {
"bufferutil": "^4.0.1",
"utf-8-validate": ">=5.0.2"
},
"peerDependenciesMeta": {
"bufferutil": {
"optional": true
},
"utf-8-validate": {
"optional": true
}
}
}
}
}

View file

@ -1,7 +1,6 @@
{
"name": "@openclaw/signal",
"version": "2026.6.9",
"private": true,
"description": "OpenClaw Signal channel plugin",
"type": "module",
"dependencies": {
@ -39,6 +38,28 @@
"description": "Signal HTTP daemon port"
}
]
},
"install": {
"clawhubSpec": "clawhub:@openclaw/signal",
"npmSpec": "@openclaw/signal",
"defaultChoice": "npm",
"minHostVersion": ">=2026.6.9",
"allowInvalidConfigRecovery": true
},
"compat": {
"pluginApi": ">=2026.6.9"
},
"build": {
"openclawVersion": "2026.6.9",
"bundledDist": false
},
"release": {
"publishToClawHub": true,
"publishToNpm": true
}
},
"repository": {
"type": "git",
"url": "https://github.com/openclaw/openclaw"
}
}

13
extensions/sms/README.md Normal file
View file

@ -0,0 +1,13 @@
# SMS OpenClaw channel
Official OpenClaw channel plugin for SMS.
## Install
```sh
openclaw plugins install @openclaw/sms
```
## Docs
See `docs/channels/sms.md` in the OpenClaw repository, or the published docs at `https://docs.openclaw.ai/channels/sms`.

24
extensions/sms/npm-shrinkwrap.json generated Normal file
View file

@ -0,0 +1,24 @@
{
"name": "@openclaw/sms",
"version": "2026.6.9",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@openclaw/sms",
"version": "2026.6.9",
"dependencies": {
"zod": "4.4.3"
}
},
"node_modules/zod": {
"version": "4.4.3",
"resolved": "https://registry.npmjs.org/zod/-/zod-4.4.3.tgz",
"integrity": "sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ==",
"license": "MIT",
"funding": {
"url": "https://github.com/sponsors/colinhacks"
}
}
}
}

View file

@ -6,7 +6,6 @@
"type": "git",
"url": "https://github.com/openclaw/openclaw"
},
"private": true,
"type": "module",
"dependencies": {
"zod": "4.4.3"
@ -33,7 +32,19 @@
"pluginApi": ">=2026.6.9"
},
"build": {
"openclawVersion": "2026.6.9"
"openclawVersion": "2026.6.9",
"bundledDist": false
},
"install": {
"clawhubSpec": "clawhub:@openclaw/sms",
"npmSpec": "@openclaw/sms",
"defaultChoice": "npm",
"minHostVersion": ">=2026.6.9",
"allowInvalidConfigRecovery": true
},
"release": {
"publishToClawHub": true,
"publishToNpm": true
}
}
}

View file

@ -0,0 +1,13 @@
# Tavily OpenClaw plugin
Official OpenClaw plugin for Tavily.
## Install
```sh
openclaw plugins install @openclaw/tavily-plugin
```
## Docs
See `docs/tools/tavily.md` in the OpenClaw repository, or the published docs at `https://docs.openclaw.ai/tools/tavily`.

21
extensions/tavily/npm-shrinkwrap.json generated Normal file
View file

@ -0,0 +1,21 @@
{
"name": "@openclaw/tavily-plugin",
"version": "2026.6.9",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@openclaw/tavily-plugin",
"version": "2026.6.9",
"dependencies": {
"typebox": "1.1.39"
}
},
"node_modules/typebox": {
"version": "1.1.39",
"resolved": "https://registry.npmjs.org/typebox/-/typebox-1.1.39.tgz",
"integrity": "sha512-vj0afVtOfLQvv0GR0VxVagYxsXN64btL7Z9XoaG0ZggH3mruMMkOO6hXdgMsjCY3shZgEvooAWVeznQVs5c43w==",
"license": "MIT"
}
}
}

View file

@ -1,7 +1,6 @@
{
"name": "@openclaw/tavily-plugin",
"version": "2026.6.9",
"private": true,
"description": "OpenClaw Tavily plugin",
"type": "module",
"dependencies": {
@ -13,6 +12,28 @@
"openclaw": {
"extensions": [
"./index.ts"
]
],
"install": {
"clawhubSpec": "clawhub:@openclaw/tavily-plugin",
"npmSpec": "@openclaw/tavily-plugin",
"defaultChoice": "npm",
"minHostVersion": ">=2026.6.9",
"allowInvalidConfigRecovery": true
},
"compat": {
"pluginApi": ">=2026.6.9"
},
"build": {
"openclawVersion": "2026.6.9",
"bundledDist": false
},
"release": {
"publishToClawHub": true,
"publishToNpm": true
}
},
"repository": {
"type": "git",
"url": "https://github.com/openclaw/openclaw"
}
}

View file

@ -0,0 +1,13 @@
# Tencent Cloud OpenClaw provider
Official OpenClaw provider plugin for Tencent Cloud.
## Install
```sh
openclaw plugins install @openclaw/tencent-provider
```
## Docs
See `docs/providers/tencent.md` in the OpenClaw repository, or the published docs at `https://docs.openclaw.ai/providers/tencent`.

12
extensions/tencent/npm-shrinkwrap.json generated Normal file
View file

@ -0,0 +1,12 @@
{
"name": "@openclaw/tencent-provider",
"version": "2026.6.9",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@openclaw/tencent-provider",
"version": "2026.6.9"
}
}
}

View file

@ -1,7 +1,6 @@
{
"name": "@openclaw/tencent-provider",
"version": "2026.6.9",
"private": true,
"description": "OpenClaw Tencent Cloud provider plugin (TokenHub + Token Plan)",
"type": "module",
"devDependencies": {
@ -10,6 +9,27 @@
"openclaw": {
"extensions": [
"./index.ts"
]
],
"install": {
"clawhubSpec": "clawhub:@openclaw/tencent-provider",
"npmSpec": "@openclaw/tencent-provider",
"defaultChoice": "npm",
"minHostVersion": ">=2026.6.9"
},
"compat": {
"pluginApi": ">=2026.6.9"
},
"build": {
"openclawVersion": "2026.6.9",
"bundledDist": false
},
"release": {
"publishToClawHub": true,
"publishToNpm": true
}
},
"repository": {
"type": "git",
"url": "https://github.com/openclaw/openclaw"
}
}

View file

@ -0,0 +1,13 @@
# Venice OpenClaw provider
Official OpenClaw provider plugin for Venice.
## Install
```sh
openclaw plugins install @openclaw/venice-provider
```
## Docs
See `docs/providers/venice.md` in the OpenClaw repository, or the published docs at `https://docs.openclaw.ai/providers/venice`.

12
extensions/venice/npm-shrinkwrap.json generated Normal file
View file

@ -0,0 +1,12 @@
{
"name": "@openclaw/venice-provider",
"version": "2026.6.9",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@openclaw/venice-provider",
"version": "2026.6.9"
}
}
}

View file

@ -1,7 +1,6 @@
{
"name": "@openclaw/venice-provider",
"version": "2026.6.9",
"private": true,
"description": "OpenClaw Venice provider plugin",
"type": "module",
"devDependencies": {
@ -10,6 +9,27 @@
"openclaw": {
"extensions": [
"./index.ts"
]
],
"install": {
"clawhubSpec": "clawhub:@openclaw/venice-provider",
"npmSpec": "@openclaw/venice-provider",
"defaultChoice": "npm",
"minHostVersion": ">=2026.6.9"
},
"compat": {
"pluginApi": ">=2026.6.9"
},
"build": {
"openclawVersion": "2026.6.9",
"bundledDist": false
},
"release": {
"publishToClawHub": true,
"publishToNpm": true
}
},
"repository": {
"type": "git",
"url": "https://github.com/openclaw/openclaw"
}
}

View file

@ -0,0 +1,13 @@
# Vercel AI Gateway OpenClaw provider
Official OpenClaw provider plugin for Vercel AI Gateway.
## Install
```sh
openclaw plugins install @openclaw/vercel-ai-gateway-provider
```
## Docs
See `docs/providers/vercel-ai-gateway.md` in the OpenClaw repository, or the published docs at `https://docs.openclaw.ai/providers/vercel-ai-gateway`.

View file

@ -0,0 +1,12 @@
{
"name": "@openclaw/vercel-ai-gateway-provider",
"version": "2026.6.9",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@openclaw/vercel-ai-gateway-provider",
"version": "2026.6.9"
}
}
}

View file

@ -1,7 +1,6 @@
{
"name": "@openclaw/vercel-ai-gateway-provider",
"version": "2026.6.9",
"private": true,
"description": "OpenClaw Vercel AI Gateway provider plugin",
"type": "module",
"devDependencies": {
@ -10,6 +9,27 @@
"openclaw": {
"extensions": [
"./index.ts"
]
],
"install": {
"clawhubSpec": "clawhub:@openclaw/vercel-ai-gateway-provider",
"npmSpec": "@openclaw/vercel-ai-gateway-provider",
"defaultChoice": "npm",
"minHostVersion": ">=2026.6.9"
},
"compat": {
"pluginApi": ">=2026.6.9"
},
"build": {
"openclawVersion": "2026.6.9",
"bundledDist": false
},
"release": {
"publishToClawHub": true,
"publishToNpm": true
}
},
"repository": {
"type": "git",
"url": "https://github.com/openclaw/openclaw"
}
}

13
extensions/zai/README.md Normal file
View file

@ -0,0 +1,13 @@
# Z.AI OpenClaw provider
Official OpenClaw provider plugin for Z.AI.
## Install
```sh
openclaw plugins install @openclaw/zai-provider
```
## Docs
See `docs/providers/zai.md` in the OpenClaw repository, or the published docs at `https://docs.openclaw.ai/providers/zai`.

12
extensions/zai/npm-shrinkwrap.json generated Normal file
View file

@ -0,0 +1,12 @@
{
"name": "@openclaw/zai-provider",
"version": "2026.6.9",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@openclaw/zai-provider",
"version": "2026.6.9"
}
}
}

View file

@ -1,7 +1,6 @@
{
"name": "@openclaw/zai-provider",
"version": "2026.6.9",
"private": true,
"description": "OpenClaw Z.AI provider plugin",
"type": "module",
"devDependencies": {
@ -10,6 +9,27 @@
"openclaw": {
"extensions": [
"./index.ts"
]
],
"install": {
"clawhubSpec": "clawhub:@openclaw/zai-provider",
"npmSpec": "@openclaw/zai-provider",
"defaultChoice": "npm",
"minHostVersion": ">=2026.6.9"
},
"compat": {
"pluginApi": ">=2026.6.9"
},
"build": {
"openclawVersion": "2026.6.9",
"bundledDist": false
},
"release": {
"publishToClawHub": true,
"publishToNpm": true
}
},
"repository": {
"type": "git",
"url": "https://github.com/openclaw/openclaw"
}
}

View file

@ -85,6 +85,7 @@
"!dist/extensions/brave/**",
"!dist/extensions/cerebras/**",
"!dist/extensions/chutes/**",
"!dist/extensions/clickclack/**",
"!dist/extensions/cloudflare-ai-gateway/**",
"!dist/extensions/codex/**",
"!dist/extensions/copilot/**",
@ -98,19 +99,23 @@
"!dist/extensions/exa/**",
"!dist/extensions/feishu/**",
"!dist/extensions/firecrawl/**",
"!dist/extensions/fireworks/**",
"!dist/extensions/google-meet/**",
"!dist/extensions/googlechat/**",
"!dist/extensions/gmi/**",
"!dist/extensions/gradium/**",
"!dist/extensions/groq/**",
"!dist/extensions/inworld/**",
"!dist/extensions/irc/**",
"!dist/extensions/kilocode/**",
"!dist/extensions/kimi-coding/**",
"!dist/extensions/line/**",
"!dist/extensions/llama-cpp/**",
"!dist/extensions/lobster/**",
"!dist/extensions/mattermost/**",
"!dist/extensions/memory-lancedb/**",
"!dist/extensions/matrix/**",
"!dist/extensions/moonshot/**",
"!dist/extensions/msteams/**",
"!dist/extensions/nextcloud-talk/**",
"!dist/extensions/nostr/**",
@ -125,14 +130,22 @@
"!dist/extensions/qa-matrix/**",
"!dist/extensions/openshell/**",
"!dist/extensions/qwen/**",
"!dist/extensions/searxng/**",
"!dist/extensions/signal/**",
"!dist/extensions/slack/**",
"!dist/extensions/sms/**",
"!dist/extensions/stepfun/**",
"!dist/extensions/synology-chat/**",
"!dist/extensions/tavily/**",
"!dist/extensions/tencent/**",
"!dist/extensions/tokenjuice/**",
"!dist/extensions/tlon/**",
"!dist/extensions/twitch/**",
"!dist/extensions/venice/**",
"!dist/extensions/vercel-ai-gateway/**",
"!dist/extensions/voice-call/**",
"!dist/extensions/whatsapp/**",
"!dist/extensions/zai/**",
"!dist/extensions/zalo/**",
"!dist/extensions/zalouser/**",
"!dist/plugin-sdk/extensions/qa-channel/**",

View file

@ -1,20 +1,15 @@
[
"dist/extensions/browser/runtime-api.js",
"dist/extensions/canvas/runtime-api.js",
"dist/extensions/clickclack/runtime-api.js",
"dist/extensions/copilot-proxy/runtime-api.js",
"dist/extensions/google/runtime-api.js",
"dist/extensions/imessage/runtime-api.js",
"dist/extensions/irc/runtime-api.js",
"dist/extensions/lmstudio/runtime-api.js",
"dist/extensions/mattermost/runtime-api.js",
"dist/extensions/memory-core/runtime-api.js",
"dist/extensions/ollama/runtime-api.js",
"dist/extensions/open-prose/runtime-api.js",
"dist/extensions/signal/runtime-api.js",
"dist/extensions/telegram/runtime-api.js",
"dist/extensions/telegram/runtime-setter-api.js",
"dist/extensions/webhooks/runtime-api.js",
"dist/extensions/workboard/runtime-api.js",
"dist/extensions/zai/runtime-api.js"
"dist/extensions/workboard/runtime-api.js"
]

View file

@ -160,6 +160,41 @@
}
}
},
{
"name": "@openclaw/clickclack",
"description": "OpenClaw ClickClack channel plugin",
"source": "official",
"kind": "channel",
"openclaw": {
"channel": {
"id": "clickclack",
"label": "ClickClack",
"selectionLabel": "ClickClack",
"detailLabel": "ClickClack Bot",
"docsPath": "/channels/clickclack",
"docsLabel": "clickclack",
"blurb": "self-hosted chat via first-class ClickClack bot tokens.",
"envVars": [
"CLICKCLACK_BOT_TOKEN"
],
"systemImage": "bubble.left.and.bubble.right",
"markdownCapable": true,
"preferSessionLookupForAnnounceTarget": true,
"order": 85,
"commands": {
"nativeCommandsAutoEnabled": false,
"nativeSkillsAutoEnabled": false
}
},
"install": {
"clawhubSpec": "clawhub:@openclaw/clickclack",
"npmSpec": "@openclaw/clickclack",
"defaultChoice": "npm",
"minHostVersion": ">=2026.6.9",
"allowInvalidConfigRecovery": true
}
}
},
{
"name": "@openclaw/discord",
"description": "OpenClaw Discord channel plugin",
@ -260,6 +295,46 @@
}
}
},
{
"name": "@openclaw/irc",
"description": "OpenClaw IRC channel plugin",
"source": "official",
"kind": "channel",
"openclaw": {
"channel": {
"id": "irc",
"label": "IRC",
"selectionLabel": "IRC (Server + Nick)",
"detailLabel": "IRC",
"docsPath": "/channels/irc",
"docsLabel": "irc",
"blurb": "classic IRC networks with DM/channel routing and pairing controls.",
"aliases": [
"internet-relay-chat"
],
"envVars": [
"IRC_HOST",
"IRC_PORT",
"IRC_TLS",
"IRC_NICK",
"IRC_USERNAME",
"IRC_REALNAME",
"IRC_PASSWORD",
"IRC_CHANNELS",
"IRC_NICKSERV_PASSWORD",
"IRC_NICKSERV_REGISTER_EMAIL"
],
"systemImage": "network"
},
"install": {
"clawhubSpec": "clawhub:@openclaw/irc",
"npmSpec": "@openclaw/irc",
"defaultChoice": "npm",
"minHostVersion": ">=2026.6.9",
"allowInvalidConfigRecovery": true
}
}
},
{
"name": "@openclaw/line",
"description": "OpenClaw LINE channel plugin",
@ -285,6 +360,34 @@
}
}
},
{
"name": "@openclaw/mattermost",
"description": "OpenClaw Mattermost channel plugin",
"source": "official",
"kind": "channel",
"openclaw": {
"channel": {
"id": "mattermost",
"label": "Mattermost",
"selectionLabel": "Mattermost (plugin)",
"docsPath": "/channels/mattermost",
"docsLabel": "mattermost",
"blurb": "self-hosted Slack-style chat; install the plugin to enable.",
"envVars": [
"MATTERMOST_BOT_TOKEN",
"MATTERMOST_URL"
],
"order": 65
},
"install": {
"clawhubSpec": "clawhub:@openclaw/mattermost",
"npmSpec": "@openclaw/mattermost",
"defaultChoice": "npm",
"minHostVersion": ">=2026.6.9",
"allowInvalidConfigRecovery": true
}
}
},
{
"name": "@openclaw/matrix",
"description": "OpenClaw Matrix channel plugin",
@ -432,6 +535,46 @@
}
}
},
{
"name": "@openclaw/signal",
"description": "OpenClaw Signal channel plugin",
"source": "official",
"kind": "channel",
"openclaw": {
"channel": {
"id": "signal",
"label": "Signal",
"selectionLabel": "Signal (signal-cli)",
"detailLabel": "Signal REST",
"docsPath": "/channels/signal",
"docsLabel": "signal",
"blurb": "signal-cli linked device with extra setup for the local REST bridge.",
"systemImage": "antenna.radiowaves.left.and.right",
"markdownCapable": true,
"cliAddOptions": [
{
"flags": "--signal-number <e164>",
"description": "Signal account number (E.164)"
},
{
"flags": "--http-host <host>",
"description": "Signal HTTP daemon host"
},
{
"flags": "--http-port <port>",
"description": "Signal HTTP daemon port"
}
]
},
"install": {
"clawhubSpec": "clawhub:@openclaw/signal",
"npmSpec": "@openclaw/signal",
"defaultChoice": "npm",
"minHostVersion": ">=2026.6.9",
"allowInvalidConfigRecovery": true
}
}
},
{
"name": "@openclaw/slack",
"description": "OpenClaw Slack channel plugin",
@ -467,6 +610,42 @@
}
}
},
{
"name": "@openclaw/sms",
"description": "OpenClaw SMS channel plugin for Twilio text messages.",
"source": "official",
"kind": "channel",
"openclaw": {
"channel": {
"id": "sms",
"label": "SMS",
"selectionLabel": "SMS (Twilio)",
"detailLabel": "Twilio SMS",
"docsPath": "/channels/sms",
"docsLabel": "sms",
"blurb": "Twilio-backed SMS with inbound webhooks and outbound replies.",
"envVars": [
"TWILIO_ACCOUNT_SID",
"TWILIO_AUTH_TOKEN",
"TWILIO_PHONE_NUMBER",
"TWILIO_SMS_FROM",
"TWILIO_MESSAGING_SERVICE_SID",
"SMS_PUBLIC_WEBHOOK_URL",
"SMS_WEBHOOK_PATH",
"SMS_ALLOWED_USERS"
],
"order": 88,
"quickstartAllowFrom": true
},
"install": {
"clawhubSpec": "clawhub:@openclaw/sms",
"npmSpec": "@openclaw/sms",
"defaultChoice": "npm",
"minHostVersion": ">=2026.6.9",
"allowInvalidConfigRecovery": true
}
}
},
{
"name": "@openclaw/synology-chat",
"description": "Synology Chat channel plugin for OpenClaw",

View file

@ -482,6 +482,97 @@
}
}
},
{
"name": "@openclaw/searxng-plugin",
"description": "OpenClaw SearXNG plugin",
"source": "official",
"kind": "plugin",
"openclaw": {
"plugin": {
"id": "searxng",
"label": "SearXNG"
},
"contracts": {
"webSearchProviders": [
"searxng"
]
},
"webSearchProviders": [
{
"id": "searxng",
"label": "SearXNG Search",
"hint": "Self-hosted meta-search with no API key required",
"onboardingScopes": [
"text-inference"
],
"requiresCredential": true,
"credentialLabel": "SearXNG Base URL",
"envVars": [
"SEARXNG_BASE_URL"
],
"placeholder": "http://localhost:8080",
"signupUrl": "https://docs.searxng.org/",
"docsUrl": "https://docs.openclaw.ai/tools/searxng-search",
"credentialPath": "plugins.entries.searxng.config.webSearch.baseUrl",
"autoDetectOrder": 200
}
],
"install": {
"clawhubSpec": "clawhub:@openclaw/searxng-plugin",
"npmSpec": "@openclaw/searxng-plugin",
"defaultChoice": "npm",
"minHostVersion": ">=2026.6.9",
"allowInvalidConfigRecovery": true
}
}
},
{
"name": "@openclaw/tavily-plugin",
"description": "OpenClaw Tavily plugin",
"source": "official",
"kind": "plugin",
"openclaw": {
"plugin": {
"id": "tavily",
"label": "Tavily"
},
"contracts": {
"webSearchProviders": [
"tavily"
],
"tools": [
"tavily_search",
"tavily_extract"
]
},
"webSearchProviders": [
{
"id": "tavily",
"label": "Tavily Search",
"hint": "Structured results with domain filters and AI answer summaries",
"onboardingScopes": [
"text-inference"
],
"credentialLabel": "Tavily API key",
"envVars": [
"TAVILY_API_KEY"
],
"placeholder": "tvly-...",
"signupUrl": "https://tavily.com/",
"docsUrl": "https://docs.openclaw.ai/tools/tavily",
"credentialPath": "plugins.entries.tavily.config.webSearch.apiKey",
"autoDetectOrder": 70
}
],
"install": {
"clawhubSpec": "clawhub:@openclaw/tavily-plugin",
"npmSpec": "@openclaw/tavily-plugin",
"defaultChoice": "npm",
"minHostVersion": ">=2026.6.9",
"allowInvalidConfigRecovery": true
}
}
},
{
"name": "@openclaw/tokenjuice",
"description": "OpenClaw tokenjuice exec output compaction plugin",

View file

@ -952,6 +952,431 @@
}
}
},
{
"name": "@openclaw/fireworks-provider",
"description": "OpenClaw Fireworks provider plugin",
"source": "official",
"kind": "provider",
"openclaw": {
"plugin": {
"id": "fireworks",
"label": "Fireworks"
},
"providers": [
{
"id": "fireworks",
"aliases": [
"fireworks-ai"
],
"name": "Fireworks",
"docs": "/providers/fireworks",
"categories": [
"cloud",
"llm"
],
"envVars": [
"FIREWORKS_API_KEY"
],
"authChoices": [
{
"method": "api-key",
"choiceId": "fireworks-api-key",
"choiceLabel": "Fireworks API key",
"choiceHint": "API key",
"groupId": "fireworks",
"groupLabel": "Fireworks",
"groupHint": "API key",
"optionKey": "fireworksApiKey",
"cliFlag": "--fireworks-api-key",
"cliOption": "--fireworks-api-key <key>",
"cliDescription": "Fireworks API key",
"onboardingScopes": [
"text-inference"
]
}
]
}
],
"install": {
"clawhubSpec": "clawhub:@openclaw/fireworks-provider",
"npmSpec": "@openclaw/fireworks-provider",
"defaultChoice": "npm",
"minHostVersion": ">=2026.6.9"
}
}
},
{
"name": "@openclaw/moonshot-provider",
"description": "OpenClaw Moonshot provider plugin",
"source": "official",
"kind": "provider",
"openclaw": {
"plugin": {
"id": "moonshot",
"label": "Moonshot"
},
"providers": [
{
"id": "moonshot",
"aliases": [
"moonshotai",
"moonshot-ai"
],
"name": "Moonshot",
"docs": "/providers/moonshot",
"categories": [
"cloud",
"llm"
],
"envVars": [
"MOONSHOT_API_KEY",
"KIMI_API_KEY"
],
"authChoices": [
{
"method": "api-key",
"choiceId": "moonshot-api-key",
"choiceLabel": "Moonshot API key (.ai)",
"choiceHint": "Kimi K2.6 + Kimi",
"groupId": "moonshot",
"groupLabel": "Moonshot AI (Kimi K2.6)",
"groupHint": "Kimi K2.6",
"optionKey": "moonshotApiKey",
"cliFlag": "--moonshot-api-key",
"cliOption": "--moonshot-api-key <key>",
"cliDescription": "Moonshot API key",
"onboardingScopes": [
"text-inference"
]
},
{
"method": "api-key-cn",
"choiceId": "moonshot-api-key-cn",
"choiceLabel": "Moonshot API key (.cn)",
"choiceHint": "Kimi K2.6 + Kimi",
"groupId": "moonshot",
"groupLabel": "Moonshot AI (Kimi K2.6)",
"groupHint": "Kimi K2.6",
"optionKey": "moonshotApiKey",
"cliFlag": "--moonshot-api-key",
"cliOption": "--moonshot-api-key <key>",
"cliDescription": "Moonshot API key",
"onboardingScopes": [
"text-inference"
]
}
]
}
],
"contracts": {
"mediaUnderstandingProviders": [
"moonshot"
],
"webSearchProviders": [
"kimi"
]
},
"webSearchProviders": [
{
"id": "kimi",
"label": "Kimi (Moonshot)",
"hint": "Requires Moonshot / Kimi API key · Moonshot web search",
"onboardingScopes": [
"text-inference"
],
"credentialLabel": "Moonshot / Kimi API key",
"envVars": [
"KIMI_API_KEY",
"MOONSHOT_API_KEY"
],
"placeholder": "sk-...",
"signupUrl": "https://platform.moonshot.cn/",
"docsUrl": "https://docs.openclaw.ai/tools/web",
"credentialPath": "plugins.entries.moonshot.config.webSearch.apiKey",
"autoDetectOrder": 40
}
],
"install": {
"clawhubSpec": "clawhub:@openclaw/moonshot-provider",
"npmSpec": "@openclaw/moonshot-provider",
"defaultChoice": "npm",
"minHostVersion": ">=2026.6.9"
}
}
},
{
"name": "@openclaw/tencent-provider",
"description": "OpenClaw Tencent Cloud provider plugin (TokenHub + Token Plan)",
"source": "official",
"kind": "provider",
"openclaw": {
"plugin": {
"id": "tencent",
"label": "Tencent Cloud"
},
"providers": [
{
"id": "tencent-tokenhub",
"name": "Tencent TokenHub",
"docs": "/providers/tencent",
"categories": [
"cloud",
"llm"
],
"envVars": [
"TOKENHUB_API_KEY"
],
"authChoices": [
{
"method": "api-key",
"choiceId": "tokenhub-api-key",
"choiceLabel": "Tencent TokenHub",
"choiceHint": "Hy via Tencent TokenHub Gateway",
"groupId": "tencent",
"groupLabel": "Tencent Cloud",
"groupHint": "Tencent TokenHub",
"optionKey": "tokenhubApiKey",
"cliFlag": "--tokenhub-api-key",
"cliOption": "--tokenhub-api-key <key>",
"cliDescription": "Tencent TokenHub API key",
"onboardingScopes": [
"text-inference"
]
}
]
}
],
"install": {
"clawhubSpec": "clawhub:@openclaw/tencent-provider",
"npmSpec": "@openclaw/tencent-provider",
"defaultChoice": "npm",
"minHostVersion": ">=2026.6.9"
}
}
},
{
"name": "@openclaw/venice-provider",
"description": "OpenClaw Venice provider plugin",
"source": "official",
"kind": "provider",
"openclaw": {
"plugin": {
"id": "venice",
"label": "Venice"
},
"providers": [
{
"id": "venice",
"name": "Venice",
"docs": "/providers/venice",
"categories": [
"cloud",
"llm"
],
"envVars": [
"VENICE_API_KEY"
],
"authChoices": [
{
"method": "api-key",
"choiceId": "venice-api-key",
"choiceLabel": "Venice AI API key",
"choiceHint": "Privacy-focused (uncensored models)",
"groupId": "venice",
"groupLabel": "Venice AI",
"groupHint": "Privacy-focused (uncensored models)",
"optionKey": "veniceApiKey",
"cliFlag": "--venice-api-key",
"cliOption": "--venice-api-key <key>",
"cliDescription": "Venice API key",
"onboardingScopes": [
"text-inference"
]
}
]
}
],
"install": {
"clawhubSpec": "clawhub:@openclaw/venice-provider",
"npmSpec": "@openclaw/venice-provider",
"defaultChoice": "npm",
"minHostVersion": ">=2026.6.9"
}
}
},
{
"name": "@openclaw/vercel-ai-gateway-provider",
"description": "OpenClaw Vercel AI Gateway provider plugin",
"source": "official",
"kind": "provider",
"openclaw": {
"plugin": {
"id": "vercel-ai-gateway",
"label": "Vercel AI Gateway"
},
"providers": [
{
"id": "vercel-ai-gateway",
"name": "Vercel AI Gateway",
"docs": "/providers/vercel-ai-gateway",
"categories": [
"cloud",
"llm"
],
"envVars": [
"AI_GATEWAY_API_KEY"
],
"authChoices": [
{
"method": "api-key",
"choiceId": "ai-gateway-api-key",
"choiceLabel": "Vercel AI Gateway API key",
"choiceHint": "API key",
"groupId": "ai-gateway",
"groupLabel": "Vercel AI Gateway",
"groupHint": "API key",
"optionKey": "aiGatewayApiKey",
"cliFlag": "--ai-gateway-api-key",
"cliOption": "--ai-gateway-api-key <key>",
"cliDescription": "Vercel AI Gateway API key",
"onboardingScopes": [
"text-inference"
]
}
]
}
],
"install": {
"clawhubSpec": "clawhub:@openclaw/vercel-ai-gateway-provider",
"npmSpec": "@openclaw/vercel-ai-gateway-provider",
"defaultChoice": "npm",
"minHostVersion": ">=2026.6.9"
}
}
},
{
"name": "@openclaw/zai-provider",
"description": "OpenClaw Z.AI provider plugin",
"source": "official",
"kind": "provider",
"openclaw": {
"plugin": {
"id": "zai",
"label": "Z.AI"
},
"providers": [
{
"id": "zai",
"aliases": [
"z-ai",
"z.ai"
],
"name": "Z.AI",
"docs": "/providers/zai",
"categories": [
"cloud",
"llm"
],
"envVars": [
"ZAI_API_KEY",
"Z_AI_API_KEY"
],
"authChoices": [
{
"method": "api-key",
"choiceId": "zai-api-key",
"choiceLabel": "Z.AI API key",
"groupId": "zai",
"groupLabel": "Z.AI",
"groupHint": "GLM Coding Plan / Global / CN",
"optionKey": "zaiApiKey",
"cliFlag": "--zai-api-key",
"cliOption": "--zai-api-key <key>",
"cliDescription": "Z.AI API key",
"onboardingScopes": [
"text-inference"
]
},
{
"method": "coding-global",
"choiceId": "zai-coding-global",
"choiceLabel": "Coding-Plan-Global",
"choiceHint": "GLM Coding Plan Global (api.z.ai)",
"groupId": "zai",
"groupLabel": "Z.AI",
"groupHint": "GLM Coding Plan / Global / CN",
"optionKey": "zaiApiKey",
"cliFlag": "--zai-api-key",
"cliOption": "--zai-api-key <key>",
"cliDescription": "Z.AI API key",
"onboardingScopes": [
"text-inference"
]
},
{
"method": "coding-cn",
"choiceId": "zai-coding-cn",
"choiceLabel": "Coding-Plan-CN",
"choiceHint": "GLM Coding Plan CN (open.bigmodel.cn)",
"groupId": "zai",
"groupLabel": "Z.AI",
"groupHint": "GLM Coding Plan / Global / CN",
"optionKey": "zaiApiKey",
"cliFlag": "--zai-api-key",
"cliOption": "--zai-api-key <key>",
"cliDescription": "Z.AI API key",
"onboardingScopes": [
"text-inference"
]
},
{
"method": "global",
"choiceId": "zai-global",
"choiceLabel": "Global",
"choiceHint": "Z.AI Global (api.z.ai)",
"groupId": "zai",
"groupLabel": "Z.AI",
"groupHint": "GLM Coding Plan / Global / CN",
"optionKey": "zaiApiKey",
"cliFlag": "--zai-api-key",
"cliOption": "--zai-api-key <key>",
"cliDescription": "Z.AI API key",
"onboardingScopes": [
"text-inference"
]
},
{
"method": "cn",
"choiceId": "zai-cn",
"choiceLabel": "CN",
"choiceHint": "Z.AI CN (open.bigmodel.cn)",
"groupId": "zai",
"groupLabel": "Z.AI",
"groupHint": "GLM Coding Plan / Global / CN",
"optionKey": "zaiApiKey",
"cliFlag": "--zai-api-key",
"cliOption": "--zai-api-key <key>",
"cliDescription": "Z.AI API key",
"onboardingScopes": [
"text-inference"
]
}
]
}
],
"contracts": {
"mediaUnderstandingProviders": [
"zai"
]
},
"install": {
"clawhubSpec": "clawhub:@openclaw/zai-provider",
"npmSpec": "@openclaw/zai-provider",
"defaultChoice": "npm",
"minHostVersion": ">=2026.6.9"
}
}
},
{
"name": "@openclaw/stepfun-provider",
"description": "OpenClaw StepFun provider plugin.",

View file

@ -100,6 +100,25 @@ describe("config presence", () => {
).toEqual([{ channelId: "matrix", source: "env" }]);
});
it("detects official external channel env vars", () => {
const env = {
MATTERMOST_URL: "https://mattermost.example.test",
MATTERMOST_BOT_TOKEN: "token",
} as NodeJS.ProcessEnv;
expectPotentialConfiguredChannelCase({
cfg: {},
env,
expectedIds: ["mattermost"],
options: { includePersistedAuthState: false },
});
expect(
listPotentialConfiguredChannelPresenceSignals({}, env, {
includePersistedAuthState: false,
}),
).toEqual([{ channelId: "mattermost", source: "env" }]);
});
it("detects persisted Matrix credentials without config or env", () => {
const stateDir = makeTempStateDir().replace(
"openclaw-channel-config-presence-",

View file

@ -15,6 +15,7 @@ import { resolveStateDir } from "../config/paths.js";
import type { OpenClawConfig } from "../config/types.openclaw.js";
import { hasNonEmptyString } from "../infra/outbound/channel-target.js";
import type { PluginDiscoveryResult } from "../plugins/discovery.js";
import { listOfficialExternalChannelEnvVars } from "../plugins/official-external-plugin-catalog.js";
import { isRecord } from "../utils.js";
import { listBundledChannelIds } from "./plugins/bundled-ids.js";
@ -146,6 +147,16 @@ export function listPotentialConfiguredChannelPresenceSignals(
const configuredChannelIds = new Set<string>();
const channelIds = options.channelIds ?? listBundledChannelIds(env, options.discovery);
const channelEnvPrefixes = listChannelEnvPrefixes(channelIds);
const scopedChannelIds = options.channelIds
? new Set(
options.channelIds
.map((channelId) => normalizeOptionalLowercaseString(channelId))
.filter((channelId): channelId is string => Boolean(channelId)),
)
: undefined;
const officialExternalChannelEnvVars = listOfficialExternalChannelEnvVars().filter(
({ channelId }) => !scopedChannelIds || scopedChannelIds.has(channelId),
);
const channels = isRecord(cfg.channels) ? cfg.channels : null;
if (channels) {
for (const [key, value] of Object.entries(channels)) {
@ -171,6 +182,12 @@ export function listPotentialConfiguredChannelPresenceSignals(
addSignal(channelId, "env");
}
}
for (const { channelId, envVars } of officialExternalChannelEnvVars) {
if (envVars.includes(key)) {
configuredChannelIds.add(channelId);
addSignal(channelId, "env");
}
}
}
if (options.includePersistedAuthState !== false && hasPersistedChannelState(env)) {

View file

@ -42,6 +42,21 @@ describe("official external plugin catalog", () => {
["parallel", "@openclaw/parallel-plugin"],
["perplexity", "@openclaw/perplexity-plugin"],
] as const;
const newlyExternalized = [
["clickclack", "@openclaw/clickclack"],
["fireworks", "@openclaw/fireworks-provider"],
["irc", "@openclaw/irc"],
["mattermost", "@openclaw/mattermost"],
["moonshot", "@openclaw/moonshot-provider"],
["searxng", "@openclaw/searxng-plugin"],
["signal", "@openclaw/signal"],
["sms", "@openclaw/sms"],
["tavily", "@openclaw/tavily-plugin"],
["tencent", "@openclaw/tencent-provider"],
["venice", "@openclaw/venice-provider"],
["vercel-ai-gateway", "@openclaw/vercel-ai-gateway-provider"],
["zai", "@openclaw/zai-provider"],
] as const;
for (const [id, npmSpec] of [...providers, ...plugins]) {
expect(resolveOfficialExternalPluginInstall(expectCatalogEntry(id))).toEqual({
@ -51,6 +66,14 @@ describe("official external plugin catalog", () => {
minHostVersion: ">=2026.6.8",
});
}
for (const [id, npmSpec] of newlyExternalized) {
expect(resolveOfficialExternalPluginInstall(expectCatalogEntry(id))).toMatchObject({
clawhubSpec: `clawhub:${npmSpec}`,
npmSpec,
defaultChoice: "npm",
minHostVersion: ">=2026.6.9",
});
}
});
it("advertises StepFun with its ClawHub package and plugin API floor", () => {
@ -150,9 +173,9 @@ describe("official external plugin catalog", () => {
expect(
resolveOfficialExternalProviderContractPluginIds({
contract: "mediaUnderstandingProviders",
providerIds: new Set(["groq"]),
providerIds: new Set(["groq", "moonshot", "zai"]),
}),
).toEqual(["groq"]);
).toEqual(["groq", "moonshot", "zai"]);
});
it("maps env-only web-fetch credentials to external plugin owners", () => {
@ -190,9 +213,16 @@ describe("official external plugin catalog", () => {
GROQ_API_KEY: "groq-key",
KILOCODE_API_KEY: "kilocode-key",
KIMICODE_API_KEY: "kimi-key",
KIMI_API_KEY: "moonshot-kimi-key",
MOONSHOT_API_KEY: "moonshot-key",
QIANFAN_API_KEY: "qianfan-key",
MODELSTUDIO_API_KEY: "qwen-key",
STEPFUN_API_KEY: "stepfun-key",
FIREWORKS_API_KEY: "fireworks-key",
TOKENHUB_API_KEY: "tokenhub-key",
VENICE_API_KEY: "venice-key",
AI_GATEWAY_API_KEY: "gateway-key",
ZAI_API_KEY: "zai-key",
}),
).toEqual([
"arcee",
@ -201,12 +231,18 @@ describe("official external plugin catalog", () => {
"cloudflare-ai-gateway",
"deepinfra",
"deepseek",
"fireworks",
"groq",
"kilocode",
"kimi",
"moonshot",
"qianfan",
"qwen",
"stepfun",
"tencent",
"venice",
"vercel-ai-gateway",
"zai",
]);
expect(resolveOfficialExternalProviderPluginIdsForEnv({ GROQ_API_KEY: " " })).toEqual([]);
});
@ -237,6 +273,14 @@ describe("official external plugin catalog", () => {
npmSpec: "@openclaw/discord",
allowInvalidConfigRecovery: true,
});
expect(resolveOfficialExternalPluginInstall(expectCatalogEntry("mattermost"))).toMatchObject({
npmSpec: "@openclaw/mattermost",
allowInvalidConfigRecovery: true,
});
expect(resolveOfficialExternalPluginInstall(expectCatalogEntry("tavily"))).toMatchObject({
npmSpec: "@openclaw/tavily-plugin",
allowInvalidConfigRecovery: true,
});
});
it("lists Matrix as an official external ClawHub channel after cutover", () => {
@ -249,7 +293,7 @@ describe("official external plugin catalog", () => {
}
expect(ids.has("matrix")).toBe(true);
expect(ids.has("mattermost")).toBe(false);
expect(ids.has("mattermost")).toBe(true);
expect(resolveOfficialExternalPluginInstall(expectCatalogEntry("matrix"))).toEqual({
clawhubSpec: "clawhub:@openclaw/matrix",
npmSpec: "@openclaw/matrix",

View file

@ -66,6 +66,7 @@ export type OfficialExternalPluginCatalogManifest = {
channel?: {
id?: string;
label?: string;
envVars?: readonly string[];
};
providers?: readonly OfficialExternalProviderCatalogProvider[];
webSearchProviders?: readonly OfficialExternalWebSearchProvider[];
@ -320,6 +321,22 @@ export function listOfficialExternalChannelCatalogEntries(): OfficialExternalPlu
);
}
export function listOfficialExternalChannelEnvVars(): Array<{
channelId: string;
envVars: readonly string[];
}> {
return listOfficialExternalChannelCatalogEntries().flatMap((entry) => {
const channel = getOfficialExternalPluginCatalogManifest(entry)?.channel;
const channelId = normalizeOptionalString(channel?.id)?.toLowerCase();
const envVars = uniqueStrings(
(channel?.envVars ?? [])
.map((envVar) => normalizeOptionalString(envVar))
.filter((envVar): envVar is string => Boolean(envVar)),
);
return channelId && envVars.length > 0 ? [{ channelId, envVars }] : [];
});
}
export function listOfficialExternalProviderCatalogEntries(): OfficialExternalPluginCatalogEntry[] {
return listOfficialExternalPluginCatalogEntries().filter(
(entry) => (getOfficialExternalPluginCatalogManifest(entry)?.providers?.length ?? 0) > 0,

View file

@ -38,9 +38,12 @@ describe("web-search install catalog", () => {
resolveWebSearchInstallCatalogEntriesForEnv({
EXA_API_KEY: "exa-key",
FIRECRAWL_API_KEY: "firecrawl-key",
KIMI_API_KEY: "kimi-key",
OPENROUTER_API_KEY: "openrouter-key",
PARALLEL_API_KEY: "parallel-key",
SEARXNG_BASE_URL: "http://search.local",
TAVILY_API_KEY: "tavily-key",
}).map((entry) => entry.pluginId),
).toEqual(["exa", "firecrawl", "parallel", "perplexity"]);
).toEqual(["exa", "firecrawl", "moonshot", "parallel", "perplexity", "searxng", "tavily"]);
});
});