OpenClawSkills
GitHub
CLI Reference • TutorialHeader.readTime

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).

Tutorial.step

Usage

Terminal
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.

Tutorial.step

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''

Tutorial.step

Actions

#

Tutorial.step

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

#

Tutorial.step

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

#

Tutorial.step

Emoji

- ''emoji list''

- Discord: ''--guild-id''

- Slack: No extra flags

- ''emoji upload''

- Channels: Discord

- Required: ''--guild-id'', ''--emoji-name'', ''--media''

- Optional: ''--role-ids'' (repeat)

#

Tutorial.step

Stickers

- ''sticker send''

- Channels: Discord

- Required: ''--target'', ''--sticker-id'' (repeat)

- Optional: ''--message''

- ''sticker upload''

#

Tutorial.step

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''