mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-12 21:53:00 -06:00
2504 lines
76 KiB
JSON
2504 lines
76 KiB
JSON
{
|
|
"entries": [
|
|
{
|
|
"name": "@openclaw/buzz",
|
|
"version": "2026.7.2",
|
|
"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 <url>",
|
|
"description": "Buzz relay WebSocket URL"
|
|
}
|
|
},
|
|
{
|
|
"key": "privateKey",
|
|
"kind": "string",
|
|
"sensitive": true,
|
|
"cli": {
|
|
"flags": "--private-key <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.7.2",
|
|
"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"
|
|
},
|
|
"mentionPatterns": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"groups": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "object",
|
|
"additionalProperties": true,
|
|
"properties": {
|
|
"requireMention": {
|
|
"type": "boolean"
|
|
},
|
|
"mentionPatterns": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"accounts": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "object",
|
|
"additionalProperties": true,
|
|
"properties": {
|
|
"requireMention": {
|
|
"type": "boolean"
|
|
},
|
|
"mentionPatterns": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"groups": {
|
|
"type": "object",
|
|
"additionalProperties": {
|
|
"type": "object",
|
|
"additionalProperties": true,
|
|
"properties": {
|
|
"requireMention": {
|
|
"type": "boolean"
|
|
},
|
|
"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 <code>",
|
|
"description": "ClickClack one-time setup code or setup URL"
|
|
}
|
|
},
|
|
{
|
|
"key": "token",
|
|
"kind": "string",
|
|
"sensitive": true,
|
|
"cli": {
|
|
"flags": "--token <token>",
|
|
"description": "ClickClack bot token"
|
|
}
|
|
},
|
|
{
|
|
"key": "tokenFile",
|
|
"kind": "string",
|
|
"sensitive": true,
|
|
"cli": {
|
|
"flags": "--token-file <path>",
|
|
"description": "ClickClack bot token file"
|
|
}
|
|
},
|
|
{
|
|
"key": "baseUrl",
|
|
"kind": "string",
|
|
"cli": {
|
|
"flags": "--base-url <url>",
|
|
"description": "ClickClack API base URL"
|
|
}
|
|
},
|
|
{
|
|
"key": "workspace",
|
|
"kind": "string",
|
|
"cli": {
|
|
"flags": "--workspace <workspace>",
|
|
"description": "ClickClack workspace id, slug, or name"
|
|
}
|
|
},
|
|
{
|
|
"key": "defaultTo",
|
|
"kind": "string",
|
|
"cli": {
|
|
"flags": "--default-to <target>",
|
|
"description": "Default ClickClack target"
|
|
}
|
|
},
|
|
{
|
|
"key": "allowFrom",
|
|
"kind": "string-list",
|
|
"cli": {
|
|
"flags": "--allow-from <ids>",
|
|
"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.7.2",
|
|
"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 <token>",
|
|
"description": "Discord bot token"
|
|
}
|
|
},
|
|
{
|
|
"key": "useEnv",
|
|
"kind": "boolean",
|
|
"cli": {
|
|
"flags": "--use-env",
|
|
"description": "Use DISCORD_BOT_TOKEN"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"commands": {
|
|
"nativeCommandsAutoEnabled": true,
|
|
"nativeSkillsAutoEnabled": true
|
|
}
|
|
},
|
|
"install": {
|
|
"npmSpec": "@openclaw/discord",
|
|
"defaultChoice": "npm",
|
|
"minHostVersion": ">=2026.5.26",
|
|
"allowInvalidConfigRecovery": true
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "@openclaw/feishu",
|
|
"version": "2026.7.2",
|
|
"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.7.2",
|
|
"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": "nestedOnly",
|
|
"groupModel": "route",
|
|
"groupAllowFromFallbackToAllowFrom": false,
|
|
"warnOnEmptyGroupSenderAllowlist": false
|
|
},
|
|
"setup": {
|
|
"fields": [
|
|
{
|
|
"key": "token",
|
|
"kind": "string",
|
|
"sensitive": true,
|
|
"cli": {
|
|
"flags": "--token <json>",
|
|
"description": "Google Chat service account JSON"
|
|
}
|
|
},
|
|
{
|
|
"key": "tokenFile",
|
|
"kind": "string",
|
|
"sensitive": true,
|
|
"cli": {
|
|
"flags": "--token-file <path>",
|
|
"description": "Google Chat service account file"
|
|
}
|
|
},
|
|
{
|
|
"key": "audienceType",
|
|
"kind": "choice",
|
|
"choices": [
|
|
"app-url",
|
|
"project-number"
|
|
],
|
|
"cli": {
|
|
"flags": "--audience-type <type>",
|
|
"description": "Google Chat audience type"
|
|
}
|
|
},
|
|
{
|
|
"key": "audience",
|
|
"kind": "string",
|
|
"cli": {
|
|
"flags": "--audience <value>",
|
|
"description": "Google Chat audience value"
|
|
}
|
|
},
|
|
{
|
|
"key": "webhookPath",
|
|
"kind": "string",
|
|
"cli": {
|
|
"flags": "--webhook-path <path>",
|
|
"description": "Google Chat webhook path"
|
|
}
|
|
},
|
|
{
|
|
"key": "webhookUrl",
|
|
"kind": "string",
|
|
"cli": {
|
|
"flags": "--webhook-url <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.7.2",
|
|
"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 <path>",
|
|
"description": "iMessage CLI path"
|
|
}
|
|
},
|
|
{
|
|
"key": "dbPath",
|
|
"kind": "string",
|
|
"cli": {
|
|
"flags": "--db-path <path>",
|
|
"description": "iMessage database path"
|
|
}
|
|
},
|
|
{
|
|
"key": "service",
|
|
"kind": "choice",
|
|
"choices": [
|
|
"imessage",
|
|
"sms",
|
|
"auto"
|
|
],
|
|
"cli": {
|
|
"flags": "--service <service>",
|
|
"description": "iMessage service"
|
|
}
|
|
},
|
|
{
|
|
"key": "region",
|
|
"kind": "string",
|
|
"cli": {
|
|
"flags": "--region <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.7.2",
|
|
"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 <host>",
|
|
"description": "IRC server host"
|
|
}
|
|
},
|
|
{
|
|
"key": "port",
|
|
"kind": "string",
|
|
"cli": {
|
|
"flags": "--port <port>",
|
|
"description": "IRC server port"
|
|
}
|
|
},
|
|
{
|
|
"key": "tls",
|
|
"kind": "boolean",
|
|
"cli": {
|
|
"flags": "--tls",
|
|
"description": "Use TLS for IRC"
|
|
}
|
|
},
|
|
{
|
|
"key": "nick",
|
|
"kind": "string",
|
|
"cli": {
|
|
"flags": "--nick <nick>",
|
|
"description": "IRC nickname"
|
|
}
|
|
},
|
|
{
|
|
"key": "username",
|
|
"kind": "string",
|
|
"cli": {
|
|
"flags": "--username <name>",
|
|
"description": "IRC username"
|
|
}
|
|
},
|
|
{
|
|
"key": "realname",
|
|
"kind": "string",
|
|
"cli": {
|
|
"flags": "--realname <name>",
|
|
"description": "IRC real name"
|
|
}
|
|
},
|
|
{
|
|
"key": "channels",
|
|
"kind": "string-list",
|
|
"cli": {
|
|
"flags": "--channels <names>",
|
|
"description": "IRC channels"
|
|
}
|
|
},
|
|
{
|
|
"key": "password",
|
|
"kind": "string",
|
|
"sensitive": true,
|
|
"cli": {
|
|
"flags": "--password <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.7.2",
|
|
"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 <token>",
|
|
"description": "LINE channel access token"
|
|
}
|
|
},
|
|
{
|
|
"key": "token",
|
|
"kind": "string",
|
|
"sensitive": true,
|
|
"cli": {
|
|
"flags": "--token <token>",
|
|
"description": "LINE channel access token (alias)"
|
|
}
|
|
},
|
|
{
|
|
"key": "channelSecret",
|
|
"kind": "string",
|
|
"sensitive": true,
|
|
"cli": {
|
|
"flags": "--channel-secret <secret>",
|
|
"description": "LINE channel secret"
|
|
}
|
|
},
|
|
{
|
|
"key": "tokenFile",
|
|
"kind": "string",
|
|
"sensitive": true,
|
|
"cli": {
|
|
"flags": "--token-file <path>",
|
|
"description": "LINE access token file"
|
|
}
|
|
},
|
|
{
|
|
"key": "secretFile",
|
|
"kind": "string",
|
|
"sensitive": true,
|
|
"cli": {
|
|
"flags": "--secret-file <path>",
|
|
"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.7.2",
|
|
"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 <url>",
|
|
"description": "Matrix homeserver URL"
|
|
}
|
|
},
|
|
{
|
|
"key": "userId",
|
|
"kind": "string",
|
|
"cli": {
|
|
"flags": "--user-id <id>",
|
|
"description": "Matrix user id"
|
|
}
|
|
},
|
|
{
|
|
"key": "accessToken",
|
|
"kind": "string",
|
|
"sensitive": true,
|
|
"cli": {
|
|
"flags": "--access-token <token>",
|
|
"description": "Matrix access token"
|
|
}
|
|
},
|
|
{
|
|
"key": "password",
|
|
"kind": "string",
|
|
"sensitive": true,
|
|
"cli": {
|
|
"flags": "--password <password>",
|
|
"description": "Matrix password"
|
|
}
|
|
},
|
|
{
|
|
"key": "deviceName",
|
|
"kind": "string",
|
|
"cli": {
|
|
"flags": "--device-name <name>",
|
|
"description": "Matrix device name"
|
|
}
|
|
},
|
|
{
|
|
"key": "avatarUrl",
|
|
"kind": "string",
|
|
"cli": {
|
|
"flags": "--avatar-url <url>",
|
|
"description": "Matrix avatar URL"
|
|
}
|
|
},
|
|
{
|
|
"key": "initialSyncLimit",
|
|
"kind": "integer",
|
|
"cli": {
|
|
"flags": "--initial-sync-limit <n>",
|
|
"description": "Matrix initial sync room limit"
|
|
}
|
|
},
|
|
{
|
|
"key": "proxy",
|
|
"kind": "string",
|
|
"cli": {
|
|
"flags": "--proxy <url>",
|
|
"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.7.2",
|
|
"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 <token>",
|
|
"description": "Mattermost bot token"
|
|
}
|
|
},
|
|
{
|
|
"key": "botToken",
|
|
"kind": "string",
|
|
"sensitive": true,
|
|
"cli": {
|
|
"flags": "--bot-token <token>",
|
|
"description": "Mattermost bot token"
|
|
}
|
|
},
|
|
{
|
|
"key": "httpUrl",
|
|
"kind": "string",
|
|
"cli": {
|
|
"flags": "--http-url <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.7.2",
|
|
"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.7.2",
|
|
"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 <url>",
|
|
"description": "Nextcloud base URL"
|
|
}
|
|
},
|
|
{
|
|
"key": "url",
|
|
"kind": "string",
|
|
"cli": {
|
|
"flags": "--url <url>",
|
|
"description": "Legacy Nextcloud base URL alias"
|
|
}
|
|
},
|
|
{
|
|
"key": "secret",
|
|
"kind": "string",
|
|
"sensitive": true,
|
|
"cli": {
|
|
"flags": "--secret <secret>",
|
|
"description": "Nextcloud Talk bot secret"
|
|
}
|
|
},
|
|
{
|
|
"key": "token",
|
|
"kind": "string",
|
|
"sensitive": true,
|
|
"cli": {
|
|
"flags": "--token <secret>",
|
|
"description": "Legacy Nextcloud bot secret alias"
|
|
}
|
|
},
|
|
{
|
|
"key": "password",
|
|
"kind": "string",
|
|
"sensitive": true,
|
|
"cli": {
|
|
"flags": "--password <secret>",
|
|
"description": "Legacy Nextcloud bot secret alias"
|
|
}
|
|
},
|
|
{
|
|
"key": "secretFile",
|
|
"kind": "string",
|
|
"sensitive": true,
|
|
"cli": {
|
|
"flags": "--secret-file <path>",
|
|
"description": "Nextcloud Talk bot secret file"
|
|
}
|
|
},
|
|
{
|
|
"key": "tokenFile",
|
|
"kind": "string",
|
|
"sensitive": true,
|
|
"cli": {
|
|
"flags": "--token-file <path>",
|
|
"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.7.2",
|
|
"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 <key>",
|
|
"description": "Nostr private key"
|
|
}
|
|
},
|
|
{
|
|
"key": "relayUrls",
|
|
"kind": "string",
|
|
"cli": {
|
|
"flags": "--relay-urls <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": "@openclaw/qqbot",
|
|
"version": "2026.7.2",
|
|
"description": "OpenClaw QQ Bot channel plugin for group and direct-message workflows.",
|
|
"source": "official",
|
|
"kind": "channel",
|
|
"openclaw": {
|
|
"contracts": {
|
|
"tools": [
|
|
"qqbot_channel_api",
|
|
"qqbot_remind"
|
|
]
|
|
},
|
|
"channel": {
|
|
"id": "qqbot",
|
|
"configuredState": {
|
|
"env": {
|
|
"anyOf": [
|
|
"QQBOT_APP_ID",
|
|
"QQBOT_CLIENT_SECRET"
|
|
]
|
|
}
|
|
},
|
|
"approvalFlags": [
|
|
"native"
|
|
],
|
|
"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",
|
|
"setup": {
|
|
"fields": [
|
|
{
|
|
"key": "token",
|
|
"kind": "string",
|
|
"sensitive": true,
|
|
"cli": {
|
|
"flags": "--token <appId:secret>",
|
|
"description": "QQBot app id and client secret"
|
|
}
|
|
},
|
|
{
|
|
"key": "tokenFile",
|
|
"kind": "string",
|
|
"sensitive": true,
|
|
"cli": {
|
|
"flags": "--token-file <path>",
|
|
"description": "QQBot client secret file"
|
|
}
|
|
},
|
|
{
|
|
"key": "useEnv",
|
|
"kind": "boolean",
|
|
"cli": {
|
|
"flags": "--use-env",
|
|
"description": "Use QQBOT environment credentials"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"install": {
|
|
"npmSpec": "@openclaw/qqbot",
|
|
"defaultChoice": "npm",
|
|
"minHostVersion": ">=2026.4.10"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "@openclaw/raft",
|
|
"version": "2026.7.2",
|
|
"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 <profile>",
|
|
"description": "Raft CLI profile"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"install": {
|
|
"npmSpec": "@openclaw/raft",
|
|
"defaultChoice": "npm",
|
|
"minHostVersion": ">=2026.6.8"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "@openclaw/signal",
|
|
"version": "2026.7.2",
|
|
"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 <e164>",
|
|
"description": "Signal account number (E.164)"
|
|
}
|
|
},
|
|
{
|
|
"key": "signalTransport",
|
|
"kind": "choice",
|
|
"choices": [
|
|
"external-native",
|
|
"container"
|
|
],
|
|
"cli": {
|
|
"flags": "--signal-transport <kind>",
|
|
"description": "Signal HTTP transport (external-native or container)"
|
|
}
|
|
},
|
|
{
|
|
"key": "cliPath",
|
|
"kind": "string",
|
|
"cli": {
|
|
"flags": "--cli-path <path>",
|
|
"description": "signal-cli executable path"
|
|
}
|
|
},
|
|
{
|
|
"key": "httpUrl",
|
|
"kind": "string",
|
|
"cli": {
|
|
"flags": "--http-url <url>",
|
|
"description": "Signal HTTP service URL"
|
|
}
|
|
},
|
|
{
|
|
"key": "httpHost",
|
|
"kind": "string",
|
|
"cli": {
|
|
"flags": "--http-host <host>",
|
|
"description": "Signal HTTP daemon host"
|
|
}
|
|
},
|
|
{
|
|
"key": "httpPort",
|
|
"kind": "string",
|
|
"cli": {
|
|
"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",
|
|
"version": "2026.7.2",
|
|
"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 <token>",
|
|
"description": "Slack bot token"
|
|
}
|
|
},
|
|
{
|
|
"key": "appToken",
|
|
"kind": "string",
|
|
"sensitive": true,
|
|
"cli": {
|
|
"flags": "--app-token <token>",
|
|
"description": "Slack app token"
|
|
}
|
|
},
|
|
{
|
|
"key": "userToken",
|
|
"kind": "string",
|
|
"sensitive": true,
|
|
"cli": {
|
|
"flags": "--user-token <token>",
|
|
"description": "Slack user token"
|
|
}
|
|
},
|
|
{
|
|
"key": "signingSecret",
|
|
"kind": "string",
|
|
"sensitive": true,
|
|
"cli": {
|
|
"flags": "--signing-secret <secret>",
|
|
"description": "Slack signing secret"
|
|
}
|
|
},
|
|
{
|
|
"key": "identity",
|
|
"kind": "choice",
|
|
"choices": [
|
|
"bot",
|
|
"user"
|
|
],
|
|
"cli": {
|
|
"flags": "--identity <kind>",
|
|
"description": "Slack identity"
|
|
}
|
|
},
|
|
{
|
|
"key": "mode",
|
|
"kind": "choice",
|
|
"choices": [
|
|
"socket",
|
|
"http"
|
|
],
|
|
"cli": {
|
|
"flags": "--mode <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.7.2",
|
|
"description": "OpenClaw SMS channel plugin for Twilio text 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",
|
|
"docsPath": "/channels/sms",
|
|
"docsLabel": "sms",
|
|
"blurb": "Twilio-backed SMS with inbound webhooks and outbound replies.",
|
|
"order": 88,
|
|
"quickstartAllowFrom": true,
|
|
"setup": {
|
|
"fields": [
|
|
{
|
|
"key": "accountSid",
|
|
"kind": "string",
|
|
"sensitive": true,
|
|
"cli": {
|
|
"flags": "--account-sid <sid>",
|
|
"description": "Twilio account SID"
|
|
}
|
|
},
|
|
{
|
|
"key": "authToken",
|
|
"kind": "string",
|
|
"sensitive": true,
|
|
"cli": {
|
|
"flags": "--auth-token <token>",
|
|
"description": "Twilio auth token"
|
|
}
|
|
},
|
|
{
|
|
"key": "fromNumber",
|
|
"kind": "string",
|
|
"cli": {
|
|
"flags": "--from-number <e164>",
|
|
"description": "Twilio sender phone number"
|
|
}
|
|
},
|
|
{
|
|
"key": "messagingServiceSid",
|
|
"kind": "string",
|
|
"cli": {
|
|
"flags": "--messaging-service-sid <sid>",
|
|
"description": "Twilio Messaging Service SID"
|
|
}
|
|
},
|
|
{
|
|
"key": "defaultTo",
|
|
"kind": "string",
|
|
"cli": {
|
|
"flags": "--default-to <e164>",
|
|
"description": "Default SMS recipient"
|
|
}
|
|
},
|
|
{
|
|
"key": "webhookPath",
|
|
"kind": "string",
|
|
"cli": {
|
|
"flags": "--webhook-path <path>",
|
|
"description": "SMS webhook path"
|
|
}
|
|
},
|
|
{
|
|
"key": "publicWebhookUrl",
|
|
"kind": "string",
|
|
"cli": {
|
|
"flags": "--public-webhook-url <url>",
|
|
"description": "Public SMS webhook URL"
|
|
}
|
|
},
|
|
{
|
|
"key": "dmPolicy",
|
|
"kind": "choice",
|
|
"choices": [
|
|
"pairing",
|
|
"allowlist",
|
|
"open",
|
|
"disabled"
|
|
],
|
|
"cli": {
|
|
"flags": "--dm-policy <policy>",
|
|
"description": "SMS DM policy"
|
|
}
|
|
},
|
|
{
|
|
"key": "allowFrom",
|
|
"kind": "string-list",
|
|
"cli": {
|
|
"flags": "--allow-from <numbers>",
|
|
"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.7.2",
|
|
"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 <token>",
|
|
"description": "Synology Chat token"
|
|
}
|
|
},
|
|
{
|
|
"key": "url",
|
|
"kind": "string",
|
|
"cli": {
|
|
"flags": "--url <url>",
|
|
"description": "Synology Chat webhook URL"
|
|
}
|
|
},
|
|
{
|
|
"key": "webhookPath",
|
|
"kind": "string",
|
|
"cli": {
|
|
"flags": "--webhook-path <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.7.2",
|
|
"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 <ship>",
|
|
"description": "Tlon ship"
|
|
}
|
|
},
|
|
{
|
|
"key": "url",
|
|
"kind": "string",
|
|
"cli": {
|
|
"flags": "--url <url>",
|
|
"description": "Tlon URL"
|
|
}
|
|
},
|
|
{
|
|
"key": "code",
|
|
"kind": "string",
|
|
"sensitive": true,
|
|
"cli": {
|
|
"flags": "--code <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 <list>",
|
|
"description": "Tlon group channels"
|
|
}
|
|
},
|
|
{
|
|
"key": "dmAllowlist",
|
|
"kind": "string-list",
|
|
"cli": {
|
|
"flags": "--dm-allowlist <list>",
|
|
"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 <ship>",
|
|
"description": "Tlon owner ship"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"install": {
|
|
"npmSpec": "@openclaw/tlon",
|
|
"defaultChoice": "npm",
|
|
"minHostVersion": ">=2026.4.10"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "@openclaw/twitch",
|
|
"version": "2026.7.2",
|
|
"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.7.2",
|
|
"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 <path>",
|
|
"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.7.2",
|
|
"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 <token>",
|
|
"description": "Zalo bot token"
|
|
}
|
|
},
|
|
{
|
|
"key": "tokenFile",
|
|
"kind": "string",
|
|
"sensitive": true,
|
|
"cli": {
|
|
"flags": "--token-file <path>",
|
|
"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.7.2",
|
|
"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"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|