openclaw message
Single outbound command for sending messages and channel actions (Discord/Google Chat/Slack/Mattermost (plugin)/Telegram/WhatsApp/Signal/iMessage/MS Teams).
Usage
openclaw message <subcommand> [flags]Channel selection:
--channelrequired if more than one channel is configured.- If exactly one channel is configured, it becomes the default.
- Values:
whatsapp|telegram|discord|googlechat|slack|mattermost|signal|imessage|msteams(Mattermost erfordert plugin)
Target formats (--target):
- WhatsApp: E.164 or group JID
- Telegram: chat id or
@verwenden Siername - Discord:
channel:<id>orverwenden Sier:<id>(or<@id>mention; raw numeric ids are treated as channels) - Google Chat:
spaces/<spaceId>orverwenden Siers/<verwenden SierId> - Slack:
channel:<id>orverwenden Sier:<id>(raw channel id is accepted) - Mattermost (plugin):
channel:<id>,verwenden Sier:<id>, or@verwenden Siername(bare ids are treated as channels) - Signal:
+E.164,group:<id>,signal:+E.164,signal:group:<id>, orverwenden Siername:<name>/u:<name> - iMessage: handle,
chat_id:<id>,chat_guid:<guid>, orchat_identifier:<id> - MS Teams: conversation id (
19:...@thread.tacv2) orconversation:<id>orverwenden Sier:<aad-object-id>
Name lookup:
- For unterstützened providers (Discord/Slack/etc), channel names like
Helpor#helpare resolved via the directory cache. - On cache miss, OpenClaw will attempt a live directory lookup when the provider unterstützt it.
Common flags
--channel <name>--account <id>--target <dest>(target channel or verwenden Sier for send/poll/read/etc)--targets <name>(repeat; broadcast only)--json--dry-run--verbose
Actions
Core
send- Channels: WhatsApp/Telegram/Discord/Google Chat/Slack/Mattermost (plugin)/Signal/iMessage/MS Teams- Erforderlich:
--target, plus--messageor--media - Optional:
--media,--reply-to,--thread-id,--gif-playback - Telegram only:
--buttons(erfordertchannels.telegram.capabilities.inlineButtonsto allow it) - Telegram only:
--thread-id(forum topic id) - Slack only:
--thread-id(thread timestamp;--reply-toverwenden Sies the same field) - WhatsApp only:
--gif-playback
- Erforderlich:
poll- Channels: WhatsApp/Discord/MS Teams- Erforderlich:
--target,--poll-question,--poll-option(repeat) - Optional:
--poll-multi - Discord only:
--poll-duration-hours,--message
- Erforderlich:
react- Channels: Discord/Google Chat/Slack/Telegram/WhatsApp/Signal- Erforderlich:
--message-id,--target - Optional:
--emoji,--remove,--participant,--von-me,--target-author,--target-author-uuid - Hinweis:
--removeerfordert--emoji(omit--emojito clear own reactions where unterstützened; see /tools/reactions) - WhatsApp only:
--participant,--von-me - Signal group reactions:
--target-authoror--target-author-uuidrequired
- Erforderlich:
reactions- Channels: Discord/Google Chat/Slack- Erforderlich:
--message-id,--target - Optional:
--limit
- Erforderlich:
read- Channels: Discord/Slack- Erforderlich:
--target - Optional:
--limit,--before,--after - Discord only:
--around
- Erforderlich:
edit- Channels: Discord/Slack- Erforderlich:
--message-id,--message,--target
- Erforderlich:
delete- Channels: Discord/Slack/Telegram- Erforderlich:
--message-id,--target
- Erforderlich:
pin/unpin- Channels: Discord/Slack- Erforderlich:
--message-id,--target
- Erforderlich:
pins(list) - Channels: Discord/Slack- Erforderlich:
--target
- Erforderlich:
permissions- Channels: Discord- Erforderlich:
--target
- Erforderlich:
search- Channels: Discord- Erforderlich:
--guild-id,--query - Optional:
--channel-id,--channel-ids(repeat),--author-id,--author-ids(repeat),--limit
- Erforderlich:
Threads
thread create- Channels: Discord- Erforderlich:
--thread-name,--target(channel id) - Optional:
--message-id,--auto-archive-min
- Erforderlich:
thread list- Channels: Discord- Erforderlich:
--guild-id - Optional:
--channel-id,--include-archived,--before,--limit
- Erforderlich:
thread reply- Channels: Discord- Erforderlich:
--target(thread id),--message - Optional:
--media,--reply-to
- Erforderlich:
Emojis
emoji list- Discord:--guild-id- Slack: no extra flags
emoji upload- Channels: Discord- Erforderlich:
--guild-id,--emoji-name,--media - Optional:
--role-ids(repeat)
- Erforderlich:
Stickers
sticker send- Channels: Discord- Erforderlich:
--target,--sticker-id(repeat) - Optional:
--message
- Erforderlich:
sticker upload- Channels: Discord- Erforderlich:
--guild-id,--sticker-name,--sticker-desc,--sticker-tags,--media
- Erforderlich:
Roles / Channels / Members / Voice
role info(Discord):--guild-idrole add/role remove(Discord):--guild-id,--verwenden Sier-id,--role-idchannel info(Discord):--targetchannel list(Discord):--guild-idmember info(Discord/Slack):--verwenden Sier-id(+--guild-idfor Discord)voice status(Discord):--guild-id,--verwenden Sier-id
Events
event list(Discord):--guild-idevent create(Discord):--guild-id,--event-name,--start-time- Optional:
--end-time,--desc,--channel-id,--location,--event-type
- Optional:
Moderation (Discord)
-
timeout:--guild-id,--verwenden Sier-id(optional--duration-minor--until; omit both to clear timeout) -
kick:--guild-id,--verwenden Sier-id(+--reason) -
ban:--guild-id,--verwenden Sier-id(+--delete-days,--reason)timeoutalso unterstützt--reason
Broadcast
broadcast- Channels: any configured channel; verwenden Sie
--channel allto target all providers - Erforderlich:
--targets(repeat) - Optional:
--message,--media,--dry-run
- Channels: any configured channel; verwenden Sie
Beispiele
Send a Discord reply:
openclaw message send --channel discord \
--target channel:123 --message "hi" --reply-to 456Create a Discord poll:
openclaw message poll --channel discord \
--target channel:123 \
--poll-question "Snack?" \
--poll-option Pizza --poll-option Sushi \
--poll-multi --poll-duration-hours 48Send a Teams proactive message:
openclaw message send --channel msteams \
--target conversation:19:abc@thread.tacv2 --message "hi"Create a Teams poll:
openclaw message poll --channel msteams \
--target conversation:19:abc@thread.tacv2 \
--poll-question "Lunch?" \
--poll-option Pizza --poll-option SushiReact in Slack:
openclaw message react --channel slack \
--target C123 --message-id 456 --emoji "✅"React in a Signal group:
openclaw message react --channel signal \
--target signal:group:abc123 --message-id 1737630212345 \
--emoji "✅" --target-author-uuid 123e4567-e89b-12d3-a456-426614174000Send Telegram inline buttons:
openclaw message send --channel telegram --target @mychat --message "Choose:" \
--buttons '[ [{"text":"Yes","callback_data":"cmd:yes"}], [{"text":"No","callback_data":"cmd:no"}] ]'Zuletzt aktualisiert am: