Skip to main content

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
无关 channels 上未解析的 SecretRefs 绝不会阻止一次有针对性的操作;在所选 channel/account 上未解析的 SecretRef 会导致该操作失败并关闭。

操作

核心

发送

  • --media <path-or-url>:附加图像/音频/视频/文档(本地路径或 URL)。
  • --presentation <json>:包含 textcontextdividercharttablebuttonsselect 块的共享负载,根据各频道的功能进行渲染。参见 消息呈现
  • --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 播放处理。
Slack 会原生渲染受支持的 chart 块;其他频道会收到相同 数据的可读文本形式:
Slack 也会原生渲染显式的 table 块。其他频道会收到 标题和每一行的确定性文本:
Telegram Mini App 按钮使用 webAppweb_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 可针对所有已配置的提供方。

相关内容