openclaw message
用于在 Discord、Google Chat、iMessage、Matrix、Mattermost(插件)、Microsoft Teams、
Signal、Slack、Telegram 和 WhatsApp 之间发送消息和执行频道操作的单一出站命令。
频道选择
- 如果配置了多个频道,则必须使用
--channel <name>;如果只配置了一个频道,则该频道为默认值。 - 可选值:
discord|googlechat|imessage|matrix|mattermost|msteams|signal|slack|telegram|whatsapp(Mattermost 需要插件)。 - 带频道前缀的目标(例如
discord:channel:123)会在不显式指定--channel的情况下解析出 所属插件。
目标格式(-t, --target)
频道名称查找:对于带有目录的提供方(Discord/Slack 等),像
Help 或 #help 这样的名称会通过目录缓存进行解析;如果缓存未命中,并且该提供方支持,则会回退到实时目录查找。
常用标志
每个操作都接受:--channel <name>、--account <id>、--json、
--dry-run、--verbose。需要指定目标的操作还接受
-t, --target <dest>。
SecretRef 解析
openclaw message 会在运行操作之前解析 channel SecretRefs,
并尽可能将作用域限定得最小:
- 当设置了
--channel时,作用域为 channel 级别(或从带前缀的目标中推断得出) - 当同时设置了
--account时,作用域为 account 级别 - 当两者都未设置时,作用域为所有已配置的 channels
操作
核心
发送
--media <path-or-url>:附加图像/音频/视频/文档(本地路径或 URL)。--presentation <json>:包含text、context、divider、chart、table、buttons和select块的共享负载,根据各频道的功能进行渲染。参见 消息呈现。--delivery <json>:通用传递偏好设置,例如{"pin": true}。当频道支持置顶传递时,--pin是其简写形式。--reply-to <id>、--thread-id <id>(Telegram 论坛主题;Slack 线程 时间戳,与--reply-to使用相同字段)。--force-document:在 Slack 上保留原始图像字节,或在 Telegram 和 WhatsApp 上将 图像/GIF/视频作为文档发送,以避免频道压缩。--silent(Telegram、Discord):发送时不发出通知。--gif-playback(仅限 WhatsApp):将视频媒体作为 GIF 播放处理。
webApp(web_app 仍会为旧版
JSON 解析),且仅在用户与机器人之间的私聊中渲染:
投票
--poll-option <choice>:重复 2-12 次。--poll-multi:允许多选。- Discord:
--poll-duration-hours、--silent、--message。 - Telegram:
--poll-duration-seconds <n>(5-600)、--silent、--poll-anonymous/--poll-public、--thread-id。
线程
thread create:渠道 Discord。必需:--thread-name、--target(频道 id)。可选:--message-id、--message、--auto-archive-min。thread list:渠道 Discord。必需:--guild-id。可选:--channel-id、--include-archived、--before、--limit。thread reply:渠道 Discord。必需:--target(线程 id)、--message。可选:--media、--reply-to。
表情
emoji list:Discord(--guild-id)、Slack(无需额外标志)。emoji upload:Discord。必需:--guild-id、--emoji-name、--media。 可选:--role-ids(可重复)。
贴纸
sticker send:Discord。必需:--target、--sticker-id(可重复)。 可选:--message。sticker upload:Discord。必需:--guild-id、--sticker-name、--sticker-desc、--sticker-tags、--media。
角色、频道、语音、事件(Discord)
role info:--guild-id。role add/role remove:--guild-id、--user-id、--role-id。channel info:--target。channel list:--guild-id。voice status:--guild-id、--user-id。event list:--guild-id。event create:必需--guild-id、--event-name、--start-time; 可选--end-time、--desc、--channel-id、--location、--event-type、--image <url-or-path>。
审核管理(Discord)
timeout:--guild-id、--user-id;可选--duration-min或--until(两者都省略则清除 timeout)、--reason。kick:--guild-id、--user-id、--reason。ban:--guild-id、--user-id、--delete-days、--reason。
广播
--targets 接受以空格分隔的列表。使用 --channel all 可针对所有已配置的提供方。