Message
CLI reference for openclaw message (send + channel operations).
Single outbound command for sending messages and channel operations
(Discord/Google Chat/Slack/Mattermost (plugin)/Telegram/WhatsApp/Signal/iMessage/MS Teams).
Usage
openclaw message <subcommand> [flags]
Channel selection:
- If multiple channels are configured, ''--channel'' is required.
- If only one channel is configured, that channel becomes the default.
- Values: ''whatsapp|telegram|discord|googlechat|slack|mattermost|signal|imessage|msteams'' (Mattermost requires plugin)
Target format (''--target''):
- WhatsApp: E.164 or group JID
- Telegram: Chat ID or ''@username''
- Discord: ''channel:<id>'' or ''user:<id>'' (or ''<@id>'' mention; raw numeric ID is treated as channel)
- Google Chat: ''spaces/<spaceId>'' or ''users/<userId>''
- Slack: ''channel:<id>'' or ''user:<id>'' (accepts raw channel IDs)
- Mattermost (plugin): ''channel:<id>'', ''user:<id>'' or ''@username'' (bare ID is treated as channel)
- Signal: ''+E.164'', ''group:<id>'', ''signal:+E.164'', ''signal:group:<id>'' or ''username:<name>''/''u:<name>''
- iMessage: Handle, ''chat_id:<id>'', ''chat_guid:<guid>'' or ''chat_identifier:<id>''
- MS Teams: Conversation ID (''19:[email protected]'') or ''conversation:<id>'' or ''user:<aad-object-id>''
Name lookup:
- For supported providers (Discord/Slack/etc.), channel names (e.g., ''Help'' or ''#help'') are resolved via directory cache.
- On cache miss, OpenClaw will attempt real-time directory lookup when supported by the provider.
Common flags
- ''--channel <name>''
- ''--account <id>''
- ''--target <dest>'' (target channel or user 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
- Required: ''--target'', plus ''--message'' or ''--media''
- Optional: ''--media'', ''--reply-to'', ''--thread-id'', ''--gif-playback''
- Telegram only: ''--buttons'' (requires ''channels.telegram.capabilities.inlineButtons'' to allow)
- Telegram only: ''--thread-id'' (forum topic ID)
- Slack only: ''--thread-id'' (thread timestamp; ''--reply-to'' uses same field)
- WhatsApp only: ''--gif-playback''
- ''poll''
- Channels: WhatsApp/Discord/MS Teams
- Required: ''--target'', ''--poll-question'', ''--poll-option'' (repeat)
- Optional: ''--poll-multi''
- Discord only: ''--poll-duration-hours'', ''--message''
- ''react''
- Channels: Discord/Google Chat/Slack/Telegram/WhatsApp/Signal
- Required: ''--message-id'', ''--target''
- Optional: ''--emoji'', ''--remove'', ''--participant'', ''--from-me'', ''--target-author'', ''--target-author-uuid''
- Note: ''--remove'' requires ''--emoji'' (omit ''--emoji'' to clear your own reactions when supported; see /tools/reactions)
- WhatsApp only: ''--participant'', ''--from-me''
- Signal group reactions: requires ''--target-author'' or ''--target-author-uuid''
- ''reactions''
- Channels: Discord/Google Chat/Slack
- Required: ''--message-id'', ''--target''
- Optional: ''--limit''
- ''read''
- Channels: Discord/Slack
- Required: ''--target''
- Optional: ''--limit'', ''--before'', ''--after''
- Discord only: ''--around''
- ''edit''
- Channels: Discord/Slack
- Required: ''--message-id'', ''--message'', ''--target''
- ''delete''
- Channels: Discord/Slack/Telegram
- Required: ''--message-id'', ''--target''
- ''pin'' / ''unpin''
- Channels: Discord/Slack
- Required: ''--message-id'', ''--target''
- ''pins'' (list)
- Channels: Discord/Slack
- Required: ''--target''
- ''permissions''
- Channels: Discord
- Required: ''--target''
- ''search''
- Channels: Discord
- Required: ''--guild-id'', ''--query''
- Optional: ''--channel-id'', ''--channel-ids'' (repeat), ''--author-id'', ''--author-ids'' (repeat), ''--limit''
ReferenceCliMessagePage step 04: P49
ReferenceCliMessagePage step 04: P50
ReferenceCliMessagePage step 04: P51
ReferenceCliMessagePage step 04: P52
ReferenceCliMessagePage step 04: P53
ReferenceCliMessagePage step 04: P54
ReferenceCliMessagePage step 04: P55
ReferenceCliMessagePage step 04: P56
ReferenceCliMessagePage step 04: P57
ReferenceCliMessagePage step 04: P58
ReferenceCliMessagePage step 04: P59
ReferenceCliMessagePage step 04: P60
ReferenceCliMessagePage step 04: P61
ReferenceCliMessagePage step 04: P62
ReferenceCliMessagePage step 04: P63
ReferenceCliMessagePage step 04: P64
ReferenceCliMessagePage step 04: P65
ReferenceCliMessagePage step 04: P66
ReferenceCliMessagePage step 04: P67
ReferenceCliMessagePage step 04: P68
ReferenceCliMessagePage step 04: P69
ReferenceCliMessagePage step 04: P70
ReferenceCliMessagePage step 04: P71
ReferenceCliMessagePage step 04: P72
ReferenceCliMessagePage step 04: P73
ReferenceCliMessagePage step 04: P74
ReferenceCliMessagePage step 04: P75
ReferenceCliMessagePage step 04: P76
ReferenceCliMessagePage step 04: P77
ReferenceCliMessagePage step 04: P78
ReferenceCliMessagePage step 04: P79
ReferenceCliMessagePage step 04: P80
ReferenceCliMessagePage step 04: P81
ReferenceCliMessagePage step 04: P82
ReferenceCliMessagePage step 04: P83
ReferenceCliMessagePage step 04: P84
ReferenceCliMessagePage step 04: P85
ReferenceCliMessagePage step 04: P86
ReferenceCliMessagePage step 04: P87
ReferenceCliMessagePage step 04: P88
ReferenceCliMessagePage step 04: P89
ReferenceCliMessagePage step 04: P90
ReferenceCliMessagePage step 04: P91
ReferenceCliMessagePage step 04: P92
ReferenceCliMessagePage step 04: P93
ReferenceCliMessagePage step 04: P94
ReferenceCliMessagePage step 04: P95
ReferenceCliMessagePage step 04: P96
ReferenceCliMessagePage step 04: P97
ReferenceCliMessagePage step 04: P98
ReferenceCliMessagePage step 04: P99
ReferenceCliMessagePage step 04: P100
ReferenceCliMessagePage step 04: P101
ReferenceCliMessagePage step 04: P102
ReferenceCliMessagePage step 04: P103
ReferenceCliMessagePage step 04: P104
ReferenceCliMessagePage step 04: P105
ReferenceCliMessagePage step 04: P106
ReferenceCliMessagePage step 04: P107
ReferenceCliMessagePage step 04: P108
ReferenceCliMessagePage step 04: P109
ReferenceCliMessagePage step 04: P110
ReferenceCliMessagePage step 04: P111
ReferenceCliMessagePage step 04: P112
ReferenceCliMessagePage step 04: P113
#
Threads
- ''thread create''
- Channels: Discord
- Required: ''--thread-name'', ''--target'' (channel ID)
- Optional: ''--message-id'', ''--auto-archive-min''
- ''thread list''
- Channels: Discord
- Required: ''--guild-id''
- Optional: ''--channel-id'', ''--include-archived'', ''--before'', ''--limit''
- ''thread reply''
- Channels: Discord
- Required: ''--target'' (thread ID), ''--message''
- Optional: ''--media'', ''--reply-to''
- ''thread update''
- Channels: Discord
#
Emoji
- ''emoji list''
- Discord: ''--guild-id''
- Slack: No extra flags
- ''emoji upload''
- Channels: Discord
- Required: ''--guild-id'', ''--emoji-name'', ''--media''
- Optional: ''--role-ids'' (repeat)
#
Stickers
- ''sticker send''
- Channels: Discord
- Required: ''--target'', ''--sticker-id'' (repeat)
- Optional: ''--message''
- ''sticker upload''
#
Roles/Channels/Members/Voice
- ''role info'' (Discord): ''--guild-id''
- ''role add'' / ''role remove'' (Discord): ''--guild-id'', ''--user-id'', ''--role-id''
- ''channel info'' (Discord): ''--target''
- ''channel list'' (Discord): ''--guild-id''