Files
openclaw/scripts/lib/official-external-channel-catalog.json
Peter SteinbergerandGitHub d725632ee7 refactor(channels): move channel-flavored setup flags into plugin manifests (#112239)
* refactor(channels): move channel-flavored setup flags into plugin manifests

* refactor(channels): normalize manifest cliAddOptions formatting, drop changelog entry

* fix(channels): dedupe channels add options by commander switch identity

* fix(channels): let the selected channel's cliAddOptions win switch dedupe
2026-07-21 02:50:19 -07:00

974 lines
30 KiB
JSON

{
"entries": [
{
"name": "@wecom/wecom-openclaw-plugin",
"description": "OpenClaw WeCom channel plugin by the Tencent WeCom team.",
"source": "external",
"kind": "channel",
"openclaw": {
"plugin": {
"id": "wecom-openclaw-plugin",
"label": "WeCom"
},
"contracts": {
"tools": ["wecom_mcp"]
},
"channel": {
"id": "wecom",
"label": "WeCom",
"selectionLabel": "WeCom(企业微信)",
"detailLabel": "WeCom",
"docsPath": "/plugins/community#wecom",
"docsLabel": "wecom",
"blurb": "Enterprise messaging and documents, scheduling, task tools.",
"aliases": ["qywx", "wework", "enterprise-wechat"],
"order": 45
},
"channelConfigs": {
"wecom": {
"label": "WeCom",
"description": "Enterprise WeChat conversation channel.",
"schema": {
"type": "object",
"additionalProperties": true
}
}
},
"install": {
"npmSpec": "@wecom/wecom-openclaw-plugin@2026.5.7",
"defaultChoice": "npm",
"expectedIntegrity": "sha512-TCkP9as00WfEhgFWG8YL/rcmaWGIshAki2HQh83nTRccGfVBCoGjrEboTTqq3yDmK9koWTV11zi8u8A4dNtvug=="
}
}
},
{
"name": "openclaw-plugin-yuanbao",
"description": "OpenClaw Yuanbao channel plugin by the Tencent Yuanbao team.",
"source": "external",
"kind": "channel",
"openclaw": {
"plugin": {
"id": "openclaw-plugin-yuanbao",
"label": "Yuanbao"
},
"contracts": {
"tools": ["query_group_info", "query_session_members", "yuanbao_remind"]
},
"channel": {
"id": "yuanbao",
"label": "Yuanbao",
"selectionLabel": "Yuanbao (元宝)",
"detailLabel": "Yuanbao",
"docsPath": "/plugins/community#yuanbao",
"docsLabel": "yuanbao",
"blurb": "Tencent Yuanbao AI assistant conversation channel.",
"aliases": ["yuanbao", "yb", "tencent-yuanbao", "元宝"],
"order": 85
},
"channelConfigs": {
"yuanbao": {
"label": "Yuanbao",
"description": "Tencent Yuanbao AI assistant channel.",
"schema": {
"type": "object",
"additionalProperties": true
}
}
},
"install": {
"npmSpec": "openclaw-plugin-yuanbao@2.15.0",
"defaultChoice": "npm",
"expectedIntegrity": "sha512-3GD+mf3EjTSUTOAREjTHAyp/deXdpgqB+q+xE0b19Qtat4ADhUV1mHDwFkVCRqTCBY5ATFKtKcipoDejqFj/+w=="
}
}
},
{
"name": "@tencent-weixin/openclaw-weixin",
"description": "OpenClaw Weixin channel plugin by the Tencent Weixin team.",
"source": "external",
"kind": "channel",
"openclaw": {
"plugin": {
"id": "openclaw-weixin",
"label": "Weixin"
},
"channel": {
"id": "openclaw-weixin",
"label": "Weixin",
"selectionLabel": "Weixin(微信)",
"detailLabel": "Weixin",
"docsPath": "/channels/wechat",
"docsLabel": "weixin",
"blurb": "Personal WeChat messaging via QR-code login.",
"aliases": ["weixin", "wechat", "微信"],
"order": 75
},
"channelConfigs": {
"openclaw-weixin": {
"label": "Weixin",
"description": "Personal WeChat conversation channel.",
"schema": {
"type": "object",
"additionalProperties": true
}
}
},
"install": {
"npmSpec": "@tencent-weixin/openclaw-weixin@2.4.6",
"defaultChoice": "npm",
"expectedIntegrity": "sha512-qw9k3PLTiMWGNjjsknHgcTManH1w4j+Ji1ArWIaYLKCq3aFRsVwcqnPi127bvOoVMJGW4dbyJ8NECEMgoO+iRw==",
"minHostVersion": ">=2026.5.12"
}
}
},
{
"name": "@zalo-platforms/openclaw-zaloclawbot",
"description": "OpenClaw Zalo ClawBot channel plugin by the Zalo Platforms team.",
"source": "external",
"kind": "channel",
"openclaw": {
"plugin": {
"id": "openclaw-zaloclawbot",
"label": "Zalo ClawBot"
},
"channel": {
"id": "openclaw-zaloclawbot",
"label": "Zalo ClawBot",
"selectionLabel": "Zalo ClawBot (QR)",
"detailLabel": "Zalo ClawBot",
"docsPath": "/channels/zaloclawbot",
"docsLabel": "zaloclawbot",
"blurb": "Personal Zalo assistant bot via QR-code login — owner-bound, no setup.",
"aliases": ["zaloclawbot", "zalo-clawbot"],
"order": 82
},
"channelConfigs": {
"openclaw-zaloclawbot": {
"label": "Zalo ClawBot",
"description": "Personal Zalo assistant — QR-onboarded, owner-bound.",
"schema": {
"type": "object",
"additionalProperties": true
}
}
},
"install": {
"npmSpec": "@zalo-platforms/openclaw-zaloclawbot@0.1.4",
"defaultChoice": "npm",
"expectedIntegrity": "sha512-5IxZriHJYACLLGqkCPPsTP9tas62kXEOFqTFAFMdunAM3SPhIJwVFRp0WvoP/m7L2PX85weD0g8LOtxM93VDYg==",
"minHostVersion": ">=2026.4.10"
}
}
},
{
"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
},
"cliAddOptions": [
{
"flags": "--base-url <url>",
"description": "Channel base URL"
},
{
"flags": "--code <code>",
"description": "ClickClack one-time setup code or setup URL"
},
{
"flags": "--workspace <workspace>",
"description": "ClickClack workspace id, slug, or name"
}
]
},
"install": {
"clawhubSpec": "clawhub:@openclaw/clickclack",
"npmSpec": "@openclaw/clickclack",
"defaultChoice": "npm",
"minHostVersion": ">=2026.6.9",
"allowInvalidConfigRecovery": true
}
}
},
{
"name": "@openclaw/discord",
"description": "OpenClaw Discord channel plugin",
"source": "official",
"kind": "channel",
"openclaw": {
"channel": {
"id": "discord",
"label": "Discord",
"selectionLabel": "Discord (Bot API)",
"detailLabel": "Discord Bot",
"docsPath": "/channels/discord",
"docsLabel": "discord",
"blurb": "very well supported right now.",
"systemImage": "bubble.left.and.bubble.right",
"markdownCapable": true,
"preferSessionLookupForAnnounceTarget": true
},
"install": {
"npmSpec": "@openclaw/discord",
"defaultChoice": "npm",
"minHostVersion": ">=2026.4.10",
"allowInvalidConfigRecovery": true
}
}
},
{
"name": "@openclaw/feishu",
"description": "OpenClaw Feishu/Lark channel plugin",
"source": "official",
"kind": "channel",
"openclaw": {
"channel": {
"id": "feishu",
"label": "Feishu",
"selectionLabel": "Feishu/Lark (飞书)",
"docsPath": "/channels/feishu",
"docsLabel": "feishu",
"blurb": "飞书/Lark enterprise messaging with doc/wiki/drive tools.",
"aliases": ["lark"],
"order": 35,
"quickstartAllowFrom": true
},
"install": {
"npmSpec": "@openclaw/feishu",
"defaultChoice": "npm",
"minHostVersion": ">=2026.5.29"
}
}
},
{
"name": "@openclaw/googlechat",
"description": "OpenClaw Google Chat channel plugin",
"source": "official",
"kind": "channel",
"openclaw": {
"channel": {
"id": "googlechat",
"label": "Google Chat",
"selectionLabel": "Google Chat (Chat API)",
"detailLabel": "Google Chat",
"docsPath": "/channels/googlechat",
"docsLabel": "googlechat",
"blurb": "Google Workspace Chat app with HTTP webhook.",
"aliases": ["gchat", "google-chat"],
"order": 55,
"systemImage": "message.badge",
"markdownCapable": true,
"doctorCapabilities": {
"dmAllowFromMode": "nestedOnly",
"groupModel": "route",
"groupAllowFromFallbackToAllowFrom": false,
"warnOnEmptyGroupSenderAllowlist": false
},
"cliAddOptions": [
{
"flags": "--webhook-path <path>",
"description": "Google Chat webhook path"
},
{
"flags": "--webhook-url <url>",
"description": "Google Chat webhook URL"
},
{
"flags": "--audience-type <type>",
"description": "Google Chat audience type (app-url|project-number)"
},
{
"flags": "--audience <value>",
"description": "Google Chat audience value (app URL or project number)"
}
]
},
"install": {
"npmSpec": "@openclaw/googlechat",
"defaultChoice": "npm",
"minHostVersion": ">=2026.4.10"
}
}
},
{
"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",
"cliAddOptions": [
{
"flags": "--password <password>",
"description": "Channel password or login secret"
}
]
},
"install": {
"clawhubSpec": "clawhub:@openclaw/irc",
"npmSpec": "@openclaw/irc",
"defaultChoice": "npm",
"minHostVersion": ">=2026.6.9",
"allowInvalidConfigRecovery": true
}
}
},
{
"name": "@openclaw/line",
"description": "OpenClaw LINE channel plugin",
"source": "official",
"kind": "channel",
"openclaw": {
"channel": {
"id": "line",
"label": "LINE",
"selectionLabel": "LINE (Messaging API)",
"detailLabel": "LINE Bot",
"docsPath": "/channels/line",
"docsLabel": "line",
"blurb": "LINE Messaging API webhook bot.",
"systemImage": "message",
"order": 75,
"quickstartAllowFrom": true,
"cliAddOptions": [
{
"flags": "--secret-file <path>",
"description": "Read channel shared secret from file"
}
]
},
"install": {
"npmSpec": "@openclaw/line",
"defaultChoice": "npm",
"minHostVersion": ">=2026.4.10"
}
}
},
{
"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,
"cliAddOptions": [
{
"flags": "--bot-token <token>",
"description": "Bot token"
},
{
"flags": "--http-url <url>",
"description": "Channel HTTP service URL"
}
]
},
"install": {
"clawhubSpec": "clawhub:@openclaw/mattermost",
"npmSpec": "@openclaw/mattermost",
"defaultChoice": "npm",
"minHostVersion": ">=2026.6.9",
"allowInvalidConfigRecovery": true
}
}
},
{
"name": "@openclaw/matrix",
"description": "OpenClaw Matrix channel plugin",
"source": "official",
"kind": "channel",
"openclaw": {
"channel": {
"id": "matrix",
"label": "Matrix",
"selectionLabel": "Matrix (plugin)",
"docsPath": "/channels/matrix",
"docsLabel": "matrix",
"blurb": "open protocol; install the plugin to enable.",
"order": 70,
"markdownCapable": true,
"quickstartAllowFrom": true,
"doctorCapabilities": {
"dmAllowFromMode": "nestedOnly",
"groupModel": "sender",
"groupAllowFromFallbackToAllowFrom": false,
"warnOnEmptyGroupSenderAllowlist": true
},
"cliAddOptions": [
{
"flags": "--homeserver <url>",
"description": "Matrix homeserver URL"
},
{
"flags": "--user-id <id>",
"description": "Matrix user ID"
},
{
"flags": "--access-token <token>",
"description": "Matrix access token"
},
{
"flags": "--password <password>",
"description": "Channel password or login secret"
},
{
"flags": "--device-name <name>",
"description": "Matrix device name"
},
{
"flags": "--initial-sync-limit <n>",
"description": "Matrix initial sync limit",
"valueType": "int"
}
]
},
"install": {
"clawhubSpec": "clawhub:@openclaw/matrix",
"npmSpec": "@openclaw/matrix",
"defaultChoice": "clawhub",
"minHostVersion": ">=2026.4.10",
"allowInvalidConfigRecovery": true
}
}
},
{
"name": "@openclaw/msteams",
"description": "OpenClaw Microsoft Teams channel plugin",
"source": "official",
"kind": "channel",
"openclaw": {
"channel": {
"id": "msteams",
"label": "Microsoft Teams",
"selectionLabel": "Microsoft Teams (Teams SDK)",
"docsPath": "/channels/msteams",
"docsLabel": "msteams",
"blurb": "Teams SDK; enterprise support.",
"aliases": ["teams"],
"order": 60
},
"install": {
"npmSpec": "@openclaw/msteams",
"defaultChoice": "npm",
"minHostVersion": ">=2026.4.10"
}
}
},
{
"name": "@openclaw/nextcloud-talk",
"description": "OpenClaw Nextcloud Talk channel plugin",
"source": "official",
"kind": "channel",
"openclaw": {
"channel": {
"id": "nextcloud-talk",
"label": "Nextcloud Talk",
"selectionLabel": "Nextcloud Talk (self-hosted)",
"docsPath": "/channels/nextcloud-talk",
"docsLabel": "nextcloud-talk",
"blurb": "Self-hosted chat via Nextcloud Talk webhook bots.",
"aliases": ["nc-talk", "nc"],
"order": 65,
"quickstartAllowFrom": true,
"cliAddOptions": [
{
"flags": "--base-url <url>",
"description": "Channel base URL"
},
{
"flags": "--secret <secret>",
"description": "Channel shared secret"
},
{
"flags": "--secret-file <path>",
"description": "Read channel shared secret from file"
},
{
"flags": "--password <password>",
"description": "Channel password or login secret"
},
{
"flags": "--url <url>",
"description": "Channel setup URL"
}
]
},
"install": {
"npmSpec": "@openclaw/nextcloud-talk",
"defaultChoice": "npm",
"minHostVersion": ">=2026.4.10"
}
}
},
{
"name": "@openclaw/nostr",
"description": "OpenClaw Nostr channel plugin for NIP-04 encrypted DMs",
"source": "official",
"kind": "channel",
"openclaw": {
"channel": {
"id": "nostr",
"label": "Nostr",
"selectionLabel": "Nostr (NIP-04 DMs)",
"docsPath": "/channels/nostr",
"docsLabel": "nostr",
"blurb": "Decentralized protocol; encrypted DMs via NIP-04.",
"order": 55,
"quickstartAllowFrom": true,
"cliAddOptions": [
{
"flags": "--private-key <key>",
"description": "Nostr private key (nsec... or hex)"
},
{
"flags": "--relay-urls <list>",
"description": "Nostr relay URLs (comma-separated)"
}
]
},
"install": {
"npmSpec": "@openclaw/nostr",
"defaultChoice": "npm",
"minHostVersion": ">=2026.4.10"
}
}
},
{
"name": "@openclaw/qqbot",
"description": "OpenClaw QQ Bot channel plugin",
"source": "official",
"kind": "channel",
"openclaw": {
"channel": {
"id": "qqbot",
"label": "QQ Bot",
"selectionLabel": "QQ Bot (Official API)",
"detailLabel": "QQ Bot",
"docsPath": "/channels/qqbot",
"docsLabel": "qqbot",
"blurb": "connect to QQ via official QQ Bot API with group chat and direct message support.",
"systemImage": "bubble.left.and.bubble.right"
},
"install": {
"npmSpec": "@openclaw/qqbot",
"defaultChoice": "npm",
"minHostVersion": ">=2026.4.10"
}
}
},
{
"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": "--cli-path <path>",
"description": "Channel CLI path"
},
{
"flags": "--http-url <url>",
"description": "Channel HTTP service URL"
},
{
"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",
"source": "official",
"kind": "channel",
"openclaw": {
"channel": {
"id": "slack",
"label": "Slack",
"selectionLabel": "Slack (Socket Mode)",
"detailLabel": "Slack Bot",
"docsPath": "/channels/slack",
"docsLabel": "slack",
"blurb": "supported (Socket Mode).",
"systemImage": "number",
"markdownCapable": true,
"cliAddOptions": [
{
"flags": "--bot-token <token>",
"description": "Bot token"
},
{
"flags": "--app-token <token>",
"description": "App token"
}
]
},
"channelConfigs": {
"slack": {
"label": "Slack",
"description": "Slack channel, DM, command, and app event integration.",
"schema": {
"type": "object",
"additionalProperties": true
}
}
},
"install": {
"npmSpec": "@openclaw/slack",
"defaultChoice": "npm",
"minHostVersion": ">=2026.5.12-beta.1",
"allowInvalidConfigRecovery": true
}
}
},
{
"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",
"source": "official",
"kind": "channel",
"openclaw": {
"channel": {
"id": "synology-chat",
"label": "Synology Chat",
"selectionLabel": "Synology Chat (Webhook)",
"docsPath": "/channels/synology-chat",
"docsLabel": "synology-chat",
"blurb": "Connect your Synology NAS Chat to OpenClaw with full agent capabilities.",
"order": 90,
"cliAddOptions": [
{
"flags": "--url <url>",
"description": "Channel setup URL"
}
]
},
"install": {
"npmSpec": "@openclaw/synology-chat",
"defaultChoice": "npm",
"minHostVersion": ">=2026.4.10"
}
}
},
{
"name": "@openclaw/raft",
"description": "OpenClaw Raft channel plugin",
"source": "official",
"kind": "channel",
"openclaw": {
"channel": {
"id": "raft",
"label": "Raft",
"selectionLabel": "Raft (CLI wake bridge)",
"docsPath": "/channels/raft",
"docsLabel": "raft",
"blurb": "Raft CLI wake bridge for human and agent collaboration.",
"order": 72
},
"channelConfigs": {
"raft": {
"label": "Raft",
"description": "Raft External Agent CLI wake bridge.",
"schema": {
"type": "object",
"additionalProperties": false,
"properties": {
"name": { "type": "string" },
"enabled": { "type": "boolean" },
"profile": { "type": "string", "minLength": 1 },
"defaultAccount": { "type": "string" },
"accounts": {
"type": "object",
"additionalProperties": {
"type": "object",
"additionalProperties": false,
"properties": {
"name": { "type": "string" },
"enabled": { "type": "boolean" },
"profile": { "type": "string", "minLength": 1 }
}
}
}
}
}
}
},
"install": {
"npmSpec": "@openclaw/raft",
"defaultChoice": "npm",
"minHostVersion": ">=2026.6.8"
}
}
},
{
"name": "@openclaw/tlon",
"description": "OpenClaw Tlon/Urbit channel plugin",
"source": "official",
"kind": "channel",
"openclaw": {
"channel": {
"id": "tlon",
"label": "Tlon",
"selectionLabel": "Tlon (Urbit)",
"docsPath": "/channels/tlon",
"docsLabel": "tlon",
"blurb": "decentralized messaging on Urbit; install the plugin to enable.",
"order": 90,
"quickstartAllowFrom": true,
"cliAddOptions": [
{
"flags": "--url <url>",
"description": "Channel setup URL"
},
{
"flags": "--ship <ship>",
"description": "Tlon ship name (~sampel-palnet)"
},
{
"flags": "--code <code>",
"description": "Tlon login code"
},
{
"flags": "--group-channels <list>",
"description": "Tlon group channels (comma-separated)",
"valueType": "list"
},
{
"flags": "--dm-allowlist <list>",
"description": "Tlon DM allowlist (comma-separated ships)",
"valueType": "list"
},
{
"flags": "--auto-discover-channels",
"description": "Tlon auto-discover group channels"
},
{
"flags": "--no-auto-discover-channels",
"description": "Disable Tlon auto-discovery"
}
]
},
"install": {
"npmSpec": "@openclaw/tlon",
"defaultChoice": "npm",
"minHostVersion": ">=2026.4.10"
}
}
},
{
"name": "@openclaw/twitch",
"description": "OpenClaw Twitch channel plugin",
"source": "official",
"kind": "channel",
"openclaw": {
"channel": {
"id": "twitch",
"label": "Twitch",
"selectionLabel": "Twitch (Chat)",
"docsPath": "/channels/twitch",
"blurb": "Twitch chat integration",
"aliases": ["twitch-chat"]
},
"install": {
"npmSpec": "@openclaw/twitch",
"defaultChoice": "npm",
"minHostVersion": ">=2026.4.10"
}
}
},
{
"name": "@openclaw/whatsapp",
"description": "OpenClaw WhatsApp channel plugin",
"source": "official",
"kind": "channel",
"openclaw": {
"channel": {
"id": "whatsapp",
"label": "WhatsApp",
"selectionLabel": "WhatsApp (QR link)",
"detailLabel": "WhatsApp Web",
"docsPath": "/channels/whatsapp",
"docsLabel": "whatsapp",
"blurb": "works with your own number; recommend a separate phone + eSIM.",
"systemImage": "message",
"cliAddOptions": [
{
"flags": "--auth-dir <path>",
"description": "WhatsApp auth directory override"
}
]
},
"install": {
"clawhubSpec": "clawhub:@openclaw/whatsapp",
"npmSpec": "@openclaw/whatsapp",
"defaultChoice": "clawhub",
"minHostVersion": ">=2026.4.25"
}
}
},
{
"name": "@openclaw/zalo",
"description": "OpenClaw Zalo channel plugin",
"source": "official",
"kind": "channel",
"openclaw": {
"channel": {
"id": "zalo",
"label": "Zalo",
"selectionLabel": "Zalo (Bot API)",
"docsPath": "/channels/zalo",
"docsLabel": "zalo",
"blurb": "Vietnam-focused messaging platform with Bot API.",
"aliases": ["zl"],
"order": 80,
"quickstartAllowFrom": true
},
"install": {
"npmSpec": "@openclaw/zalo",
"defaultChoice": "npm",
"minHostVersion": ">=2026.4.10"
}
}
},
{
"name": "@openclaw/zalouser",
"description": "OpenClaw Zalo Personal Account plugin via native zca-js integration",
"source": "official",
"kind": "channel",
"openclaw": {
"channel": {
"id": "zalouser",
"label": "Zalo Personal",
"selectionLabel": "Zalo (Personal Account)",
"docsPath": "/channels/zalouser",
"docsLabel": "zalouser",
"blurb": "Zalo personal account via QR code login.",
"aliases": ["zlu"],
"order": 85,
"quickstartAllowFrom": false
},
"install": {
"npmSpec": "@openclaw/zalouser",
"defaultChoice": "npm",
"minHostVersion": ">=2026.4.10"
}
}
}
]
}