{ "entries": [ { "name": "@openclaw/buzz", "version": "2026.8.1", "description": "Connect OpenClaw agents to Buzz rooms", "source": "official", "kind": "channel", "openclaw": { "channelConfigs": { "buzz": { "label": "Buzz", "description": "Connect OpenClaw agents to Buzz team rooms.", "schema": { "$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": { "name": { "type": "string" }, "enabled": { "type": "boolean" }, "markdown": { "type": "object", "properties": { "tables": { "type": "string", "enum": [ "off", "bullets", "code", "block" ] } }, "additionalProperties": false }, "relayUrl": { "allOf": [ { "type": "string", "format": "uri" }, { "type": "string", "pattern": "^[wW][sS][sS]?:\\/\\/" } ] }, "privateKey": { "anyOf": [ { "type": "string" }, { "oneOf": [ { "type": "object", "properties": { "source": { "type": "string", "const": "env" }, "provider": { "type": "string", "pattern": "^[a-z][a-z0-9_-]{0,63}$" }, "id": { "type": "string", "pattern": "^[A-Z][A-Z0-9_]{0,127}$" } }, "required": [ "source", "provider", "id" ], "additionalProperties": false }, { "type": "object", "properties": { "source": { "type": "string", "const": "file" }, "provider": { "type": "string", "pattern": "^[a-z][a-z0-9_-]{0,63}$" }, "id": { "type": "string" } }, "required": [ "source", "provider", "id" ], "additionalProperties": false }, { "type": "object", "properties": { "source": { "type": "string", "const": "exec" }, "provider": { "type": "string", "pattern": "^[a-z][a-z0-9_-]{0,63}$" }, "id": { "type": "string" } }, "required": [ "source", "provider", "id" ], "additionalProperties": false } ] } ] }, "authTag": { "anyOf": [ { "type": "string" }, { "oneOf": [ { "type": "object", "properties": { "source": { "type": "string", "const": "env" }, "provider": { "type": "string", "pattern": "^[a-z][a-z0-9_-]{0,63}$" }, "id": { "type": "string", "pattern": "^[A-Z][A-Z0-9_]{0,127}$" } }, "required": [ "source", "provider", "id" ], "additionalProperties": false }, { "type": "object", "properties": { "source": { "type": "string", "const": "file" }, "provider": { "type": "string", "pattern": "^[a-z][a-z0-9_-]{0,63}$" }, "id": { "type": "string" } }, "required": [ "source", "provider", "id" ], "additionalProperties": false }, { "type": "object", "properties": { "source": { "type": "string", "const": "exec" }, "provider": { "type": "string", "pattern": "^[a-z][a-z0-9_-]{0,63}$" }, "id": { "type": "string" } }, "required": [ "source", "provider", "id" ], "additionalProperties": false } ] } ] }, "groupPolicy": { "default": "allowlist", "type": "string", "enum": [ "open", "disabled", "allowlist" ] }, "groupAllowFrom": { "type": "array", "items": { "anyOf": [ { "type": "string" }, { "type": "number" } ] } }, "groups": { "type": "object", "propertyNames": { "type": "string", "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89aAbB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$" }, "additionalProperties": { "type": "object", "properties": { "enabled": { "type": "boolean" }, "requireMention": { "type": "boolean" } }, "additionalProperties": false } }, "defaultTo": { "type": "string" } }, "required": [ "groupPolicy" ], "additionalProperties": false } } }, "channel": { "id": "buzz", "configuredState": { "env": { "allOf": [ "BUZZ_RELAY_URL", "BUZZ_PRIVATE_KEY" ] } }, "label": "Buzz", "selectionLabel": "Buzz", "docsPath": "/channels/buzz", "docsLabel": "buzz", "blurb": "Connect OpenClaw agents to Buzz team rooms.", "markdownCapable": true, "order": 56, "setup": { "fields": [ { "key": "relayUrl", "kind": "string", "cli": { "flags": "--relay-url ", "description": "Buzz relay WebSocket URL" } }, { "key": "privateKey", "kind": "string", "sensitive": true, "cli": { "flags": "--private-key ", "description": "Buzz bot Nostr private key" } }, { "key": "useEnv", "kind": "boolean", "cli": { "flags": "--use-env", "description": "Use BUZZ_PRIVATE_KEY with the supplied relay URL" } } ] } }, "install": { "clawhubSpec": "clawhub:@openclaw/buzz", "npmSpec": "@openclaw/buzz", "defaultChoice": "npm", "minHostVersion": ">=2026.7.2" } } }, { "name": "@openclaw/clickclack", "version": "2026.8.1", "description": "OpenClaw ClickClack channel plugin", "source": "official", "kind": "channel", "openclaw": { "contracts": { "tools": [ "discussion" ] }, "channelConfigs": { "clickclack": { "label": "ClickClack", "description": "ClickClack channel accounts and group activation policy.", "schema": { "type": "object", "additionalProperties": true, "properties": { "requireMention": { "type": "boolean" }, "allowBots": { "anyOf": [ { "type": "boolean" }, { "type": "string", "const": "mentions" } ] }, "botLoopProtection": { "type": "object", "additionalProperties": false, "properties": { "enabled": { "type": "boolean" }, "maxEventsPerWindow": { "type": "integer", "exclusiveMinimum": 0 }, "windowSeconds": { "type": "integer", "exclusiveMinimum": 0 }, "cooldownSeconds": { "type": "integer", "exclusiveMinimum": 0 } } }, "mentionPatterns": { "type": "array", "items": { "type": "string" } }, "groups": { "type": "object", "additionalProperties": { "type": "object", "additionalProperties": true, "properties": { "requireMention": { "type": "boolean" }, "allowBots": { "anyOf": [ { "type": "boolean" }, { "type": "string", "const": "mentions" } ] }, "botLoopProtection": { "type": "object", "additionalProperties": false, "properties": { "enabled": { "type": "boolean" }, "maxEventsPerWindow": { "type": "integer", "exclusiveMinimum": 0 }, "windowSeconds": { "type": "integer", "exclusiveMinimum": 0 }, "cooldownSeconds": { "type": "integer", "exclusiveMinimum": 0 } } }, "mentionPatterns": { "type": "array", "items": { "type": "string" } } } } }, "accounts": { "type": "object", "additionalProperties": { "type": "object", "additionalProperties": true, "properties": { "requireMention": { "type": "boolean" }, "allowBots": { "anyOf": [ { "type": "boolean" }, { "type": "string", "const": "mentions" } ] }, "botLoopProtection": { "type": "object", "additionalProperties": false, "properties": { "enabled": { "type": "boolean" }, "maxEventsPerWindow": { "type": "integer", "exclusiveMinimum": 0 }, "windowSeconds": { "type": "integer", "exclusiveMinimum": 0 }, "cooldownSeconds": { "type": "integer", "exclusiveMinimum": 0 } } }, "mentionPatterns": { "type": "array", "items": { "type": "string" } }, "groups": { "type": "object", "additionalProperties": { "type": "object", "additionalProperties": true, "properties": { "requireMention": { "type": "boolean" }, "allowBots": { "anyOf": [ { "type": "boolean" }, { "type": "string", "const": "mentions" } ] }, "botLoopProtection": { "type": "object", "additionalProperties": false, "properties": { "enabled": { "type": "boolean" }, "maxEventsPerWindow": { "type": "integer", "exclusiveMinimum": 0 }, "windowSeconds": { "type": "integer", "exclusiveMinimum": 0 }, "cooldownSeconds": { "type": "integer", "exclusiveMinimum": 0 } } }, "mentionPatterns": { "type": "array", "items": { "type": "string" } } } } } } } } } } } }, "channel": { "id": "clickclack", "configuredState": { "env": { "anyOf": [ "CLICKCLACK_BOT_TOKEN" ] } }, "label": "ClickClack", "selectionLabel": "ClickClack", "detailLabel": "ClickClack Bot", "docsPath": "/channels/clickclack", "docsLabel": "clickclack", "blurb": "self-hosted chat via first-class ClickClack bot tokens.", "systemImage": "bubble.left.and.bubble.right", "markdownCapable": true, "preferSessionLookupForAnnounceTarget": true, "order": 85, "commands": { "nativeCommandsAutoEnabled": false, "nativeSkillsAutoEnabled": false }, "setup": { "fields": [ { "key": "code", "kind": "string", "sensitive": true, "cli": { "flags": "--code ", "description": "ClickClack one-time setup code or setup URL" } }, { "key": "token", "kind": "string", "sensitive": true, "cli": { "flags": "--token ", "description": "ClickClack bot token" } }, { "key": "tokenFile", "kind": "string", "sensitive": true, "cli": { "flags": "--token-file ", "description": "ClickClack bot token file" } }, { "key": "baseUrl", "kind": "string", "cli": { "flags": "--base-url ", "description": "ClickClack API base URL" } }, { "key": "workspace", "kind": "string", "cli": { "flags": "--workspace ", "description": "ClickClack workspace id, slug, or name" } }, { "key": "defaultTo", "kind": "string", "cli": { "flags": "--default-to ", "description": "Default ClickClack target" } }, { "key": "allowFrom", "kind": "string-list", "cli": { "flags": "--allow-from ", "description": "Allowed ClickClack senders" } }, { "key": "agentActivity", "kind": "boolean", "cli": { "flags": "--agent-activity", "description": "Enable ClickClack agent activity" } }, { "key": "useEnv", "kind": "boolean", "cli": { "flags": "--use-env", "description": "Use CLICKCLACK_BOT_TOKEN" } } ] } }, "install": { "clawhubSpec": "clawhub:@openclaw/clickclack", "npmSpec": "@openclaw/clickclack", "defaultChoice": "npm", "minHostVersion": ">=2026.6.9", "allowInvalidConfigRecovery": true } } }, { "name": "@openclaw/discord", "version": "2026.8.1", "description": "OpenClaw Discord channel plugin for channels, DMs, commands, and app events.", "source": "official", "kind": "channel", "openclaw": { "contracts": { "tools": [ "show_widget", "discord_widget" ], "transcriptSourceProviders": [ "discord-voice" ] }, "channel": { "id": "discord", "configuredState": { "env": { "anyOf": [ "DISCORD_BOT_TOKEN" ] } }, "approvalFlags": [ "native" ], "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, "setup": { "fields": [ { "key": "token", "kind": "string", "sensitive": true, "cli": { "flags": "--token ", "description": "Discord bot token" } }, { "key": "useEnv", "kind": "boolean", "cli": { "flags": "--use-env", "description": "Use DISCORD_BOT_TOKEN" } } ] }, "commands": { "nativeCommandsAutoEnabled": true, "nativeSkillsAutoEnabled": true }, "doctorCapabilities": { "dmAllowFromMode": "topOnly", "groupModel": "route", "groupAllowFromFallbackToAllowFrom": false, "warnOnEmptyGroupSenderAllowlist": false } }, "install": { "npmSpec": "@openclaw/discord", "defaultChoice": "npm", "minHostVersion": ">=2026.5.26", "allowInvalidConfigRecovery": true } } }, { "name": "@openclaw/feishu", "version": "2026.8.1", "description": "OpenClaw Feishu/Lark channel plugin for chats and workplace tools (community maintained by @m1heng).", "source": "official", "kind": "channel", "openclaw": { "contracts": { "tools": [ "feishu_app_scopes", "feishu_bitable_create_app", "feishu_bitable_create_field", "feishu_bitable_create_record", "feishu_bitable_get_meta", "feishu_bitable_get_record", "feishu_bitable_list_fields", "feishu_bitable_list_records", "feishu_bitable_update_record", "feishu_chat", "feishu_doc", "feishu_drive", "feishu_perm", "feishu_wiki" ] }, "channel": { "id": "feishu", "configuredState": { "env": { "anyOf": [ "FEISHU_APP_ID", "FEISHU_APP_SECRET", "FEISHU_VERIFICATION_TOKEN", "FEISHU_ENCRYPT_KEY" ] } }, "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, "setup": { "fields": [] } }, "install": { "npmSpec": "@openclaw/feishu", "defaultChoice": "npm", "minHostVersion": ">=2026.5.29" } } }, { "name": "@openclaw/googlechat", "version": "2026.8.1", "description": "OpenClaw Google Chat channel plugin for spaces and direct messages.", "source": "official", "kind": "channel", "openclaw": { "channel": { "id": "googlechat", "configuredState": { "env": { "anyOf": [ "GOOGLE_CHAT_SERVICE_ACCOUNT", "GOOGLE_CHAT_SERVICE_ACCOUNT_FILE" ] } }, "approvalFlags": [ "native" ], "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": "topOnly", "groupModel": "route", "groupAllowFromFallbackToAllowFrom": false, "warnOnEmptyGroupSenderAllowlist": false }, "setup": { "fields": [ { "key": "token", "kind": "string", "sensitive": true, "cli": { "flags": "--token ", "description": "Google Chat service account JSON" } }, { "key": "tokenFile", "kind": "string", "sensitive": true, "cli": { "flags": "--token-file ", "description": "Google Chat service account file" } }, { "key": "audienceType", "kind": "choice", "choices": [ "app-url", "project-number" ], "cli": { "flags": "--audience-type ", "description": "Google Chat audience type" } }, { "key": "audience", "kind": "string", "cli": { "flags": "--audience ", "description": "Google Chat audience value" } }, { "key": "webhookPath", "kind": "string", "cli": { "flags": "--webhook-path ", "description": "Google Chat webhook path" } }, { "key": "webhookUrl", "kind": "string", "cli": { "flags": "--webhook-url ", "description": "Google Chat webhook URL" } }, { "key": "useEnv", "kind": "boolean", "cli": { "flags": "--use-env", "description": "Use Google Chat environment credentials" } } ] } }, "install": { "npmSpec": "@openclaw/googlechat", "defaultChoice": "npm", "minHostVersion": ">=2026.4.10" } } }, { "name": "@openclaw/imessage", "version": "2026.8.1", "description": "OpenClaw iMessage channel plugin using imsg on a signed-in Mac", "source": "official", "kind": "channel", "openclaw": { "channel": { "id": "imessage", "approvalFlags": [ "native" ], "label": "iMessage", "selectionLabel": "iMessage (imsg)", "detailLabel": "iMessage", "docsPath": "/channels/imessage", "docsLabel": "imessage", "blurb": "Local iMessage/SMS through the imsg bridge, including private API message actions when enabled.", "aliases": [ "imsg" ], "systemImage": "message.fill", "setup": { "fields": [ { "key": "cliPath", "kind": "string", "cli": { "flags": "--cli-path ", "description": "iMessage CLI path" } }, { "key": "dbPath", "kind": "string", "cli": { "flags": "--db-path ", "description": "iMessage database path" } }, { "key": "service", "kind": "choice", "choices": [ "imessage", "sms", "auto" ], "cli": { "flags": "--service ", "description": "iMessage service" } }, { "key": "region", "kind": "string", "cli": { "flags": "--region ", "description": "SMS region" } } ] } }, "install": { "clawhubSpec": "clawhub:@openclaw/imessage", "npmSpec": "@openclaw/imessage", "defaultChoice": "npm", "minHostVersion": ">=2026.7.2", "allowInvalidConfigRecovery": true } } }, { "name": "@openclaw/irc", "version": "2026.8.1", "description": "OpenClaw IRC channel plugin", "source": "official", "kind": "channel", "openclaw": { "channel": { "id": "irc", "configuredState": { "env": { "allOf": [ "IRC_HOST", "IRC_NICK" ] } }, "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" ], "systemImage": "network", "setup": { "fields": [ { "key": "host", "kind": "string", "cli": { "flags": "--host ", "description": "IRC server host" } }, { "key": "port", "kind": "string", "cli": { "flags": "--port ", "description": "IRC server port" } }, { "key": "tls", "kind": "boolean", "cli": { "flags": "--tls", "description": "Use TLS for IRC" } }, { "key": "nick", "kind": "string", "cli": { "flags": "--nick ", "description": "IRC nickname" } }, { "key": "username", "kind": "string", "cli": { "flags": "--username ", "description": "IRC username" } }, { "key": "realname", "kind": "string", "cli": { "flags": "--realname ", "description": "IRC real name" } }, { "key": "channels", "kind": "string-list", "cli": { "flags": "--channels ", "description": "IRC channels" } }, { "key": "password", "kind": "string", "sensitive": true, "cli": { "flags": "--password ", "description": "IRC server password" } }, { "key": "useEnv", "kind": "boolean", "cli": { "flags": "--use-env", "description": "Use IRC environment configuration" } } ] } }, "install": { "clawhubSpec": "clawhub:@openclaw/irc", "npmSpec": "@openclaw/irc", "defaultChoice": "npm", "minHostVersion": ">=2026.6.9", "allowInvalidConfigRecovery": true } } }, { "name": "@openclaw/line", "version": "2026.8.1", "description": "OpenClaw LINE channel plugin for LINE Bot API chats.", "source": "official", "kind": "channel", "openclaw": { "channel": { "id": "line", "configuredState": { "env": { "anyOf": [ "LINE_CHANNEL_ACCESS_TOKEN", "LINE_CHANNEL_SECRET" ] } }, "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, "setup": { "fields": [ { "key": "channelAccessToken", "kind": "string", "sensitive": true, "cli": { "flags": "--channel-access-token ", "description": "LINE channel access token" } }, { "key": "token", "kind": "string", "sensitive": true, "cli": { "flags": "--token ", "description": "LINE channel access token (alias)" } }, { "key": "channelSecret", "kind": "string", "sensitive": true, "cli": { "flags": "--channel-secret ", "description": "LINE channel secret" } }, { "key": "tokenFile", "kind": "string", "sensitive": true, "cli": { "flags": "--token-file ", "description": "LINE access token file" } }, { "key": "secretFile", "kind": "string", "sensitive": true, "cli": { "flags": "--secret-file ", "description": "LINE channel secret file" } }, { "key": "useEnv", "kind": "boolean", "cli": { "flags": "--use-env", "description": "Use LINE environment credentials" } } ] } }, "install": { "npmSpec": "@openclaw/line", "defaultChoice": "npm", "minHostVersion": ">=2026.4.10" } } }, { "name": "@openclaw/matrix", "version": "2026.8.1", "description": "OpenClaw Matrix channel plugin for rooms and direct messages.", "source": "official", "kind": "channel", "openclaw": { "channel": { "id": "matrix", "configuredState": { "env": { "anyOf": [ "MATRIX_HOMESERVER", "MATRIX_USER_ID", "MATRIX_ACCESS_TOKEN", "MATRIX_PASSWORD", "MATRIX_DEVICE_ID", "MATRIX_DEVICE_NAME", "MATRIX_OPS_HOMESERVER", "MATRIX_OPS_ACCESS_TOKEN", "MATRIX_OPS_DEVICE_ID", "MATRIX_OPS_DEVICE_NAME" ] } }, "approvalFlags": [ "native" ], "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 }, "setup": { "fields": [ { "key": "homeserver", "kind": "string", "cli": { "flags": "--homeserver ", "description": "Matrix homeserver URL" } }, { "key": "userId", "kind": "string", "cli": { "flags": "--user-id ", "description": "Matrix user id" } }, { "key": "accessToken", "kind": "string", "sensitive": true, "cli": { "flags": "--access-token ", "description": "Matrix access token" } }, { "key": "password", "kind": "string", "sensitive": true, "cli": { "flags": "--password ", "description": "Matrix password" } }, { "key": "deviceName", "kind": "string", "cli": { "flags": "--device-name ", "description": "Matrix device name" } }, { "key": "avatarUrl", "kind": "string", "cli": { "flags": "--avatar-url ", "description": "Matrix avatar URL" } }, { "key": "initialSyncLimit", "kind": "integer", "cli": { "flags": "--initial-sync-limit ", "description": "Matrix initial sync room limit" } }, { "key": "proxy", "kind": "string", "cli": { "flags": "--proxy ", "description": "Matrix proxy URL" } }, { "key": "dangerouslyAllowPrivateNetwork", "kind": "boolean", "cli": { "flags": "--dangerously-allow-private-network", "description": "Allow private-network Matrix homeservers" } }, { "key": "useEnv", "kind": "boolean", "cli": { "flags": "--use-env", "description": "Use Matrix environment credentials" } } ] }, "persistedAuthState": { "specifier": "./auth-presence", "exportName": "hasAnyMatrixAuth" } }, "install": { "clawhubSpec": "clawhub:@openclaw/matrix", "npmSpec": "@openclaw/matrix", "defaultChoice": "clawhub", "minHostVersion": ">=2026.4.10", "allowInvalidConfigRecovery": true } } }, { "name": "@openclaw/mattermost", "version": "2026.8.1", "description": "OpenClaw Mattermost channel plugin", "source": "official", "kind": "channel", "openclaw": { "channel": { "id": "mattermost", "configuredState": { "env": { "allOf": [ "MATTERMOST_BOT_TOKEN", "MATTERMOST_URL" ] } }, "label": "Mattermost", "selectionLabel": "Mattermost (plugin)", "docsPath": "/channels/mattermost", "docsLabel": "mattermost", "blurb": "self-hosted Slack-style chat; install the plugin to enable.", "order": 65, "setup": { "fields": [ { "key": "token", "kind": "string", "sensitive": true, "cli": { "flags": "--token ", "description": "Mattermost bot token" } }, { "key": "botToken", "kind": "string", "sensitive": true, "cli": { "flags": "--bot-token ", "description": "Mattermost bot token" } }, { "key": "httpUrl", "kind": "string", "cli": { "flags": "--http-url ", "description": "Mattermost server URL" } }, { "key": "useEnv", "kind": "boolean", "cli": { "flags": "--use-env", "description": "Use Mattermost environment credentials" } } ] } }, "install": { "clawhubSpec": "clawhub:@openclaw/mattermost", "npmSpec": "@openclaw/mattermost", "defaultChoice": "npm", "minHostVersion": ">=2026.6.9", "allowInvalidConfigRecovery": true } } }, { "name": "@openclaw/msteams", "version": "2026.8.1", "description": "OpenClaw Microsoft Teams channel plugin for bot conversations.", "source": "official", "kind": "channel", "openclaw": { "channel": { "id": "msteams", "configuredState": { "env": { "anyOf": [ "MSTEAMS_APP_ID", "MSTEAMS_APP_PASSWORD", "MSTEAMS_TENANT_ID" ] } }, "label": "Microsoft Teams", "selectionLabel": "Microsoft Teams (Teams SDK)", "docsPath": "/channels/msteams", "docsLabel": "msteams", "blurb": "Teams SDK; enterprise support.", "aliases": [ "teams" ], "order": 60, "doctorCapabilities": { "dmAllowFromMode": "topOnly", "groupModel": "hybrid", "groupAllowFromFallbackToAllowFrom": true, "warnOnEmptyGroupSenderAllowlist": true }, "setup": { "fields": [] } }, "install": { "npmSpec": "@openclaw/msteams", "defaultChoice": "npm", "minHostVersion": ">=2026.4.10" } } }, { "name": "@openclaw/nextcloud-talk", "version": "2026.8.1", "description": "OpenClaw Nextcloud Talk channel plugin for conversations.", "source": "official", "kind": "channel", "openclaw": { "channel": { "id": "nextcloud-talk", "configuredState": { "env": { "anyOf": [ "NEXTCLOUD_TALK_BOT_SECRET", "NEXTCLOUD_TALK_API_PASSWORD" ] } }, "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, "setup": { "fields": [ { "key": "baseUrl", "kind": "string", "cli": { "flags": "--base-url ", "description": "Nextcloud base URL" } }, { "key": "url", "kind": "string", "cli": { "flags": "--url ", "description": "Legacy Nextcloud base URL alias" } }, { "key": "secret", "kind": "string", "sensitive": true, "cli": { "flags": "--secret ", "description": "Nextcloud Talk bot secret" } }, { "key": "token", "kind": "string", "sensitive": true, "cli": { "flags": "--token ", "description": "Legacy Nextcloud bot secret alias" } }, { "key": "password", "kind": "string", "sensitive": true, "cli": { "flags": "--password ", "description": "Legacy Nextcloud bot secret alias" } }, { "key": "secretFile", "kind": "string", "sensitive": true, "cli": { "flags": "--secret-file ", "description": "Nextcloud Talk bot secret file" } }, { "key": "tokenFile", "kind": "string", "sensitive": true, "cli": { "flags": "--token-file ", "description": "Legacy Nextcloud bot secret file alias" } }, { "key": "useEnv", "kind": "boolean", "cli": { "flags": "--use-env", "description": "Use Nextcloud Talk environment credentials" } } ] } }, "install": { "npmSpec": "@openclaw/nextcloud-talk", "defaultChoice": "npm", "minHostVersion": ">=2026.4.10" } } }, { "name": "@openclaw/nostr", "version": "2026.8.1", "description": "OpenClaw Nostr channel plugin for NIP-04 encrypted direct messages.", "source": "official", "kind": "channel", "openclaw": { "channel": { "id": "nostr", "configuredState": { "env": { "anyOf": [ "NOSTR_PRIVATE_KEY" ] } }, "label": "Nostr", "selectionLabel": "Nostr (NIP-04 DMs)", "docsPath": "/channels/nostr", "docsLabel": "nostr", "blurb": "Decentralized protocol; encrypted DMs via NIP-04.", "order": 55, "quickstartAllowFrom": true, "setup": { "fields": [ { "key": "privateKey", "kind": "string", "sensitive": true, "cli": { "flags": "--private-key ", "description": "Nostr private key" } }, { "key": "relayUrls", "kind": "string", "cli": { "flags": "--relay-urls ", "description": "Nostr relay URLs" } }, { "key": "useEnv", "kind": "boolean", "cli": { "flags": "--use-env", "description": "Use NOSTR_PRIVATE_KEY" } } ] } }, "install": { "npmSpec": "@openclaw/nostr", "defaultChoice": "npm", "minHostVersion": ">=2026.4.10" } } }, { "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": "@tencent-connect/openclaw-qqbot", "description": "OpenClaw QQ Bot channel plugin by the Tencent Connect team.", "source": "external", "kind": "channel", "openclaw": { "plugin": { "id": "openclaw-qqbot", "label": "QQ Bot" }, "contracts": { "tools": [ "qqbot_platform_api", "qqbot_remind" ] }, "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.", "envVars": [ "QQBOT_APP_ID", "QQBOT_CLIENT_SECRET" ], "approvalFlags": [ "native" ], "doctorCapabilities": { "openDmRequiresAllowFromWildcard": false }, "systemImage": "bubble.left.and.bubble.right" }, "channelSecrets": { "fields": [ { "field": "clientSecret", "activationField": "appId", "activationEnv": "QQBOT_APP_ID" } ] }, "channelHostConfig": { "docsSource": "official", "compatibilityMigration": "qqbot.tencent-2.0-compatibility", "schemaAllOf": [ { "not": { "required": [ "defaultAccount" ] }, "properties": { "allowFrom": { "type": "array", "minItems": 1, "items": { "allOf": [ { "not": { "const": "*" } }, { "anyOf": [ { "const": "openclaw:approval-disabled" }, { "type": "string", "pattern": "^[^a-z]*$" } ] } ] } }, "accounts": { "type": "object", "not": { "required": [ "default" ] }, "additionalProperties": { "type": "object", "properties": { "allowFrom": { "type": "array", "minItems": 1, "items": { "allOf": [ { "not": { "const": "*" } }, { "anyOf": [ { "const": "openclaw:approval-disabled" }, { "type": "string", "pattern": "^[^a-z]*$" } ] } ] } } }, "required": [ "allowFrom" ] } } }, "required": [ "allowFrom" ] } ] }, "channelConfigs": { "qqbot": { "label": "QQ Bot", "description": "QQ Bot API conversation channel.", "preferOver": [ "qqbot" ], "schema": { "type": "object", "additionalProperties": true, "properties": { "appId": { "type": "string" }, "clientSecret": { "type": "string" } } } } }, "install": { "npmSpec": "@tencent-connect/openclaw-qqbot@2.0.1", "defaultChoice": "npm", "expectedIntegrity": "sha512-2010PaCummeQaxerLtaGfQ/5HChiXaW/KpTERid7V/1zyTs46S2ACi0hgZQ1SB7tH0t1InWr8tzVBJV/pLss3Q==" } } }, { "name": "@openclaw/raft", "version": "2026.8.1", "description": "OpenClaw Raft channel plugin for Raft CLI wake bridges.", "source": "official", "kind": "channel", "openclaw": { "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 } } } } } } } }, "channel": { "id": "raft", "configuredState": { "env": { "anyOf": [ "RAFT_PROFILE" ] } }, "label": "Raft", "selectionLabel": "Raft (CLI wake bridge)", "docsPath": "/channels/raft", "docsLabel": "raft", "blurb": "Raft CLI wake bridge for human and agent collaboration.", "order": 72, "setup": { "fields": [ { "key": "profile", "kind": "string", "cli": { "flags": "--profile ", "description": "Raft CLI profile" } } ] } }, "install": { "npmSpec": "@openclaw/raft", "defaultChoice": "npm", "minHostVersion": ">=2026.6.8" } } }, { "name": "@openclaw/signal", "version": "2026.8.1", "description": "OpenClaw Signal channel plugin", "source": "official", "kind": "channel", "openclaw": { "channel": { "id": "signal", "approvalFlags": [ "native" ], "label": "Signal", "selectionLabel": "Signal (signal-cli)", "detailLabel": "Signal REST", "docsPath": "/channels/signal", "docsLabel": "signal", "blurb": "signal-cli linked device with additional setup for the local REST bridge.", "systemImage": "antenna.radiowaves.left.and.right", "markdownCapable": true, "setup": { "fields": [ { "key": "signalNumber", "kind": "string", "cli": { "flags": "--signal-number ", "description": "Signal account number (E.164)" } }, { "key": "signalTransport", "kind": "choice", "choices": [ "external-native", "container" ], "cli": { "flags": "--signal-transport ", "description": "Signal HTTP transport (external-native or container)" } }, { "key": "cliPath", "kind": "string", "cli": { "flags": "--cli-path ", "description": "signal-cli executable path" } }, { "key": "httpUrl", "kind": "string", "cli": { "flags": "--http-url ", "description": "Signal HTTP service URL" } }, { "key": "httpHost", "kind": "string", "cli": { "flags": "--http-host ", "description": "Signal HTTP daemon host" } }, { "key": "httpPort", "kind": "string", "cli": { "flags": "--http-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", "version": "2026.8.1", "description": "OpenClaw Slack channel plugin for channels, DMs, commands, and app events.", "source": "official", "kind": "channel", "openclaw": { "channelConfigs": { "slack": { "label": "Slack", "description": "Slack channel, DM, command, and app event integration.", "schema": { "type": "object", "additionalProperties": true } } }, "channel": { "id": "slack", "configuredState": { "env": { "anyOf": [ "SLACK_BOT_TOKEN", "SLACK_APP_TOKEN", "SLACK_USER_TOKEN" ] } }, "approvalFlags": [ "native" ], "label": "Slack", "selectionLabel": "Slack (Socket Mode)", "detailLabel": "Slack Bot", "docsPath": "/channels/slack", "docsLabel": "slack", "blurb": "supported (Socket Mode).", "systemImage": "number", "markdownCapable": true, "doctorCapabilities": { "dmAllowFromMode": "topOnly", "groupModel": "route", "groupAllowFromFallbackToAllowFrom": false, "warnOnEmptyGroupSenderAllowlist": false }, "commands": { "nativeCommandsAutoEnabled": false, "nativeSkillsAutoEnabled": false }, "setup": { "fields": [ { "key": "botToken", "kind": "string", "sensitive": true, "cli": { "flags": "--bot-token ", "description": "Slack bot token" } }, { "key": "appToken", "kind": "string", "sensitive": true, "cli": { "flags": "--app-token ", "description": "Slack app token" } }, { "key": "userToken", "kind": "string", "sensitive": true, "cli": { "flags": "--user-token ", "description": "Slack user token" } }, { "key": "signingSecret", "kind": "string", "sensitive": true, "cli": { "flags": "--signing-secret ", "description": "Slack signing secret" } }, { "key": "identity", "kind": "choice", "choices": [ "bot", "user" ], "cli": { "flags": "--identity ", "description": "Slack identity" } }, { "key": "mode", "kind": "choice", "choices": [ "socket", "http" ], "cli": { "flags": "--mode ", "description": "Slack connection mode" } }, { "key": "useEnv", "kind": "boolean", "cli": { "flags": "--use-env", "description": "Use Slack environment credentials" } } ] } }, "install": { "npmSpec": "@openclaw/slack", "defaultChoice": "npm", "minHostVersion": ">=2026.5.28", "allowInvalidConfigRecovery": true } } }, { "name": "@openclaw/sms", "version": "2026.8.1", "description": "OpenClaw SMS/MMS channel plugin for Twilio messages.", "source": "official", "kind": "channel", "openclaw": { "channel": { "id": "sms", "configuredState": { "env": { "anyOf": [ "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" ] } }, "label": "SMS", "selectionLabel": "SMS (Twilio)", "detailLabel": "Twilio SMS/MMS", "docsPath": "/channels/sms", "docsLabel": "sms", "blurb": "Twilio-backed SMS/MMS with inbound webhooks and outbound replies.", "order": 88, "quickstartAllowFrom": true, "setup": { "fields": [ { "key": "accountSid", "kind": "string", "sensitive": true, "cli": { "flags": "--account-sid ", "description": "Twilio account SID" } }, { "key": "authToken", "kind": "string", "sensitive": true, "cli": { "flags": "--auth-token ", "description": "Twilio auth token" } }, { "key": "fromNumber", "kind": "string", "cli": { "flags": "--from-number ", "description": "Twilio sender phone number" } }, { "key": "messagingServiceSid", "kind": "string", "cli": { "flags": "--messaging-service-sid ", "description": "Twilio Messaging Service SID" } }, { "key": "defaultTo", "kind": "string", "cli": { "flags": "--default-to ", "description": "Default SMS recipient" } }, { "key": "webhookPath", "kind": "string", "cli": { "flags": "--webhook-path ", "description": "SMS webhook path" } }, { "key": "publicWebhookUrl", "kind": "string", "cli": { "flags": "--public-webhook-url ", "description": "Public SMS webhook URL" } }, { "key": "dmPolicy", "kind": "choice", "choices": [ "pairing", "allowlist", "open", "disabled" ], "cli": { "flags": "--dm-policy ", "description": "SMS DM policy" } }, { "key": "allowFrom", "kind": "string-list", "cli": { "flags": "--allow-from ", "description": "Allowed SMS senders" } } ] } }, "install": { "clawhubSpec": "clawhub:@openclaw/sms", "npmSpec": "@openclaw/sms", "defaultChoice": "npm", "minHostVersion": ">=2026.6.9", "allowInvalidConfigRecovery": true } } }, { "name": "@openclaw/synology-chat", "version": "2026.8.1", "description": "Synology Chat channel plugin for OpenClaw channels and direct messages.", "source": "official", "kind": "channel", "openclaw": { "channel": { "id": "synology-chat", "configuredState": { "env": { "anyOf": [ "SYNOLOGY_CHAT_TOKEN", "SYNOLOGY_CHAT_INCOMING_URL", "SYNOLOGY_NAS_HOST", "SYNOLOGY_ALLOWED_USER_IDS", "SYNOLOGY_RATE_LIMIT", "OPENCLAW_BOT_NAME" ] } }, "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, "setup": { "fields": [ { "key": "token", "kind": "string", "sensitive": true, "cli": { "flags": "--token ", "description": "Synology Chat token" } }, { "key": "url", "kind": "string", "cli": { "flags": "--url ", "description": "Synology Chat webhook URL" } }, { "key": "webhookPath", "kind": "string", "cli": { "flags": "--webhook-path ", "description": "Synology Chat webhook path" } }, { "key": "useEnv", "kind": "boolean", "cli": { "flags": "--use-env", "description": "Use Synology Chat environment credentials" } } ] } }, "install": { "npmSpec": "@openclaw/synology-chat", "defaultChoice": "npm", "minHostVersion": ">=2026.4.10" } } }, { "name": "@openclaw/tlon", "version": "2026.8.1", "description": "OpenClaw Tlon/Urbit channel plugin for chat workflows.", "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, "setup": { "fields": [ { "key": "ship", "kind": "string", "cli": { "flags": "--ship ", "description": "Tlon ship" } }, { "key": "url", "kind": "string", "cli": { "flags": "--url ", "description": "Tlon URL" } }, { "key": "code", "kind": "string", "sensitive": true, "cli": { "flags": "--code ", "description": "Tlon login code" } }, { "key": "dangerouslyAllowPrivateNetwork", "kind": "boolean", "cli": { "flags": "--dangerously-allow-private-network", "description": "Allow private-network Tlon URLs" } }, { "key": "groupChannels", "kind": "string-list", "cli": { "flags": "--group-channels ", "description": "Tlon group channels" } }, { "key": "dmAllowlist", "kind": "string-list", "cli": { "flags": "--dm-allowlist ", "description": "Tlon DM allowlist" } }, { "key": "autoDiscoverChannels", "kind": "boolean", "cli": { "flags": "--auto-discover-channels", "negatedFlags": "--no-auto-discover-channels", "description": "Auto-discover Tlon group channels" } }, { "key": "ownerShip", "kind": "string", "cli": { "flags": "--owner-ship ", "description": "Tlon owner ship" } } ] } }, "install": { "npmSpec": "@openclaw/tlon", "defaultChoice": "npm", "minHostVersion": ">=2026.4.10" } } }, { "name": "@openclaw/twitch", "version": "2026.8.1", "description": "OpenClaw Twitch channel plugin for chat and moderation workflows.", "source": "official", "kind": "channel", "openclaw": { "channel": { "id": "twitch", "configuredState": { "env": { "anyOf": [ "OPENCLAW_TWITCH_ACCESS_TOKEN" ] } }, "label": "Twitch", "selectionLabel": "Twitch (Chat)", "docsPath": "/channels/twitch", "blurb": "Twitch chat integration", "aliases": [ "twitch-chat" ], "setup": { "fields": [] } }, "install": { "npmSpec": "@openclaw/twitch", "defaultChoice": "npm", "minHostVersion": ">=2026.4.10" } } }, { "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": "/channels/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/whatsapp", "version": "2026.8.1", "description": "OpenClaw WhatsApp channel plugin for WhatsApp Web chats.", "source": "official", "kind": "channel", "openclaw": { "contracts": { "tools": [ "whatsapp_call" ] }, "channel": { "id": "whatsapp", "approvalFlags": [ "native" ], "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", "persistedAuthState": { "specifier": "./auth-presence", "exportName": "hasAnyWhatsAppAuth" }, "setup": { "fields": [ { "key": "authDir", "kind": "string", "cli": { "flags": "--auth-dir ", "description": "WhatsApp auth directory override" } } ] } }, "install": { "clawhubSpec": "clawhub:@openclaw/whatsapp", "npmSpec": "@openclaw/whatsapp", "defaultChoice": "clawhub", "minHostVersion": ">=2026.4.25" } } }, { "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": "/channels/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": "@openclaw/zalo", "version": "2026.8.1", "description": "OpenClaw Zalo channel plugin for bot and webhook chats.", "source": "official", "kind": "channel", "openclaw": { "channel": { "id": "zalo", "configuredState": { "env": { "anyOf": [ "ZALO_BOT_TOKEN", "ZALO_WEBHOOK_SECRET" ] } }, "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, "setup": { "fields": [ { "key": "token", "kind": "string", "sensitive": true, "cli": { "flags": "--token ", "description": "Zalo bot token" } }, { "key": "tokenFile", "kind": "string", "sensitive": true, "cli": { "flags": "--token-file ", "description": "Zalo bot token file" } }, { "key": "useEnv", "kind": "boolean", "cli": { "flags": "--use-env", "description": "Use ZALO_BOT_TOKEN" } } ] } }, "install": { "npmSpec": "@openclaw/zalo", "defaultChoice": "npm", "minHostVersion": ">=2026.4.10" } } }, { "name": "@openclaw/zalouser", "version": "2026.8.1", "description": "OpenClaw Zalo Personal Account plugin via native zca-js integration.", "source": "official", "kind": "channel", "openclaw": { "contracts": { "tools": [ "zalouser" ] }, "channel": { "id": "zalouser", "configuredState": { "env": { "anyOf": [ "ZALOUSER_PROFILE", "ZCA_PROFILE" ] } }, "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, "doctorCapabilities": { "dmAllowFromMode": "topOnly", "groupModel": "hybrid", "groupAllowFromFallbackToAllowFrom": false, "warnOnEmptyGroupSenderAllowlist": false }, "setup": { "fields": [] } }, "install": { "npmSpec": "@openclaw/zalouser", "defaultChoice": "npm", "minHostVersion": ">=2026.4.10" } } } ] }