clawdia message
Single outbound command for sending messages and channel actions
(Discord/Google Chat/Slack/Mattermost (plugin)/Telegram/WhatsApp/Signal/iMessage/MS Teams).
Usage
--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 requires plugin)
--target):
- WhatsApp: E.164 or group JID
- Telegram: chat id or
@username - Discord:
channel:<id>oruser:<id>(or<@id>mention; raw numeric ids are treated as channels) - Google Chat:
spaces/<spaceId>orusers/<userId> - Slack:
channel:<id>oruser:<id>(raw channel id is accepted) - Mattermost (plugin):
channel:<id>,user:<id>, or@username(bare ids are treated as channels) - Signal:
+E.164,group:<id>,signal:+E.164,signal:group:<id>, orusername:<name>/u:<name> - iMessage: handle,
chat_id:<id>,chat_guid:<guid>, orchat_identifier:<id> - MS Teams: conversation id (
19:[email protected]) orconversation:<id>oruser:<aad-object-id>
- For supported providers (Discord/Slack/etc), channel names like
Helpor#helpare resolved via the directory cache. - On cache miss, Clawdia will attempt a live directory lookup when the provider supports it.
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--messageor--media - Optional:
--media,--reply-to,--thread-id,--gif-playback - Telegram only:
--buttons(requireschannels.telegram.capabilities.inlineButtonsto allow it) - Telegram only:
--thread-id(forum topic id) - Slack only:
--thread-id(thread timestamp;--reply-touses the 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:
--removerequires--emoji(omit--emojito clear own reactions where supported; see /tools/reactions) - WhatsApp only:
--participant,--from-me - Signal group reactions:
--target-authoror--target-author-uuidrequired
-
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
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
Emojis
-
emoji list- Discord:
--guild-id - Slack: no extra flags
- Discord:
-
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- Channels: Discord
- Required:
--guild-id,--sticker-name,--sticker-desc,--sticker-tags,--media
Roles / Channels / Members / Voice
role info(Discord):--guild-idrole add/role remove(Discord):--guild-id,--user-id,--role-idchannel info(Discord):--targetchannel list(Discord):--guild-idmember info(Discord/Slack):--user-id(+--guild-idfor Discord)voice status(Discord):--guild-id,--user-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,--user-id(optional--duration-minor--until; omit both to clear timeout)kick:--guild-id,--user-id(+--reason)ban:--guild-id,--user-id(+--delete-days,--reason)timeoutalso supports--reason
Broadcast
broadcast- Channels: any configured channel; use
--channel allto target all providers - Required:
--targets(repeat) - Optional:
--message,--media,--dry-run
- Channels: any configured channel; use
