CLI commands
Bericht
openclaw message
Enkele uitgaande opdracht voor het verzenden van berichten en kanaalacties (Discord/Google Chat/iMessage/Matrix/Mattermost (Plugin)/Microsoft Teams/Signal/Slack/Telegram/WhatsApp).
Gebruik
openclaw message <subcommand> [flags]Kanaalselectie:
--channelis vereist als er meer dan één kanaal is geconfigureerd.- Als er precies één kanaal is geconfigureerd, wordt dit de standaard.
- Waarden:
discord|googlechat|imessage|matrix|mattermost|msteams|signal|slack|telegram|whatsapp(Mattermost vereist Plugin) openclaw messageherleidt het geselecteerde kanaal naar de eigenaar-Plugin wanneer--channelof een doel met kanaalprefix aanwezig is; anders laadt het geconfigureerde kanaalplugins voor inferentie van het standaardkanaal.
Doelformaten (--target):
- WhatsApp: E.164, groeps-JID of WhatsApp-kanaal-/nieuwsbrief-JID (
...@newsletter) - Telegram: chat-id,
@usernameof forumtopicdoel (-1001234567890:topic:42, of--thread-id 42) - Discord:
channel:<id>ofuser:<id>(of<@id>-vermelding; ruwe numerieke id's worden als kanalen behandeld) - Google Chat:
spaces/<spaceId>ofusers/<userId> - Slack:
channel:<id>ofuser:<id>(ruwe kanaal-id wordt geaccepteerd) - Mattermost (Plugin):
channel:<id>,user:<id>of@username(kale id's worden als kanalen behandeld) - Signal:
+E.164,group:<id>,signal:+E.164,signal:group:<id>ofusername:<name>/u:<name> - iMessage: handle,
chat_id:<id>,chat_guid:<guid>ofchat_identifier:<id> - Matrix:
@user:server,!room:serverof#alias:server - Microsoft Teams: conversatie-id (
19:...@thread.tacv2) ofconversation:<id>ofuser:<aad-object-id>
Naamopzoeking:
- Voor ondersteunde providers (Discord/Slack/enzovoort) worden kanaalnamen zoals
Helpof#helpopgelost via de directorycache. - Bij een cachemisser probeert OpenClaw een live directoryopzoeking wanneer de provider dit ondersteunt.
Algemene flags
--channel <name>--account <id>--target <dest>(doelkanaal of gebruiker voor send/poll/read/enzovoort)--targets <name>(herhalen; alleen broadcast)--json--dry-run--verbose
SecretRef-gedrag
openclaw messagelost ondersteunde kanaal-SecretRefs op voordat de geselecteerde actie wordt uitgevoerd.- Resolutie is waar mogelijk beperkt tot het actieve actiedoel:
- kanaalgebonden wanneer
--channelis ingesteld (of afgeleid uit doelen met prefix zoalsdiscord:...) - accountgebonden wanneer
--accountis ingesteld (kanaalglobalen + geselecteerde accountoppervlakken) - wanneer
--accountis weggelaten, forceert OpenClaw geen SecretRef-bereik voor eendefault-account
- kanaalgebonden wanneer
- Onopgeloste SecretRefs op niet-gerelateerde kanalen blokkeren een gerichte berichtactie niet.
- Als de SecretRef van het geselecteerde kanaal/account onopgelost is, faalt de opdracht gesloten voor die actie.
Acties
Core
-
send- Kanalen: WhatsApp/Telegram/Discord/Google Chat/Slack/Mattermost (Plugin)/Signal/iMessage/Matrix/Microsoft Teams
- Vereist:
--target, plus--message,--mediaof--presentation - Optioneel:
--media,--presentation,--delivery,--pin,--reply-to,--thread-id,--gif-playback,--force-document,--silent - Gedeelde presentatiepayloads:
--presentationverzendt semantische blokken (text,context,divider,buttons,select) die core rendert via de gedeclareerde mogelijkheden van het geselecteerde kanaal. Zie Berichtpresentatie. - Algemene afleveringsvoorkeuren:
--deliveryaccepteert afleveringshints zoals{ "pin": true };--pinis een verkorte vorm voor vastgepinde aflevering wanneer het kanaal dit ondersteunt. - Telegram + WhatsApp:
--force-document(verzend afbeeldingen, GIF's en video's als documenten om kanaalcompressie te vermijden) - Alleen Telegram:
--thread-id(forumtopic-id) - Alleen Slack:
--thread-id(threadtijdstempel;--reply-togebruikt hetzelfde veld) - Telegram + Discord:
--silent - Alleen WhatsApp:
--gif-playback; WhatsApp-kanalen/nieuwsbrieven worden geadresseerd met hun native@newsletter-JID.
-
poll- Kanalen: WhatsApp/Telegram/Discord/Matrix/Microsoft Teams
- Vereist:
--target,--poll-question,--poll-option(herhalen) - Optioneel:
--poll-multi - Alleen Discord:
--poll-duration-hours,--silent,--message - Alleen Telegram:
--poll-duration-seconds(5-600),--silent,--poll-anonymous/--poll-public,--thread-id
-
react- Kanalen: Discord/Google Chat/Matrix/Nextcloud Talk/Signal/Slack/Telegram/WhatsApp
- Vereist:
--message-id,--target - Optioneel:
--emoji,--remove,--participant,--from-me,--target-author,--target-author-uuid - Opmerking:
--removevereist--emoji(laat--emojiweg om eigen reacties te wissen waar dit wordt ondersteund; zie /tools/reactions) - Alleen WhatsApp:
--participant,--from-me - Signal-groepsreacties:
--target-authorof--target-author-uuidvereist - Nextcloud Talk: alleen reacties toevoegen;
--removewordt geweigerd met een duidelijke fout (zie /tools/reactions)
-
reactions- Kanalen: Discord/Google Chat/Slack/Matrix
- Vereist:
--message-id,--target - Optioneel:
--limit
-
read- Kanalen: Discord/Slack/Matrix
- Vereist:
--target - Optioneel:
--limit,--message-id,--before,--after - Alleen Slack:
--message-idleest een specifieke Slack-berichttijdstempel; combineer met--thread-idom een exact threadantwoord te lezen. - Alleen Discord:
--around
-
edit- Kanalen: Discord/Slack/Matrix
- Vereist:
--message-id,--message,--target
-
delete- Kanalen: Discord/Slack/Telegram/Matrix
- Vereist:
--message-id,--target
-
pin/unpin- Kanalen: Discord/Slack/Matrix
- Vereist:
--message-id,--target
-
pins(lijst)- Kanalen: Discord/Slack/Matrix
- Vereist:
--target
-
permissions- Kanalen: Discord/Matrix
- Vereist:
--target - Alleen Matrix: beschikbaar wanneer Matrix-versleuteling is ingeschakeld en verificatieacties zijn toegestaan
-
search- Kanalen: Discord
- Vereist:
--guild-id,--query - Optioneel:
--channel-id,--channel-ids(herhalen),--author-id,--author-ids(herhalen),--limit
Threads
-
thread create- Kanalen: Discord
- Vereist:
--thread-name,--target(kanaal-id) - Optioneel:
--message-id,--message,--auto-archive-min
-
thread list- Kanalen: Discord
- Vereist:
--guild-id - Optioneel:
--channel-id,--include-archived,--before,--limit
-
thread reply- Kanalen: Discord
- Vereist:
--target(thread-id),--message - Optioneel:
--media,--reply-to
Emoji's
-
emoji list- Discord:
--guild-id - Slack: geen extra flags
- Discord:
-
emoji upload- Kanalen: Discord
- Vereist:
--guild-id,--emoji-name,--media - Optioneel:
--role-ids(herhalen)
Stickers
-
sticker send- Kanalen: Discord
- Vereist:
--target,--sticker-id(herhalen) - Optioneel:
--message
-
sticker upload- Kanalen: Discord
- Vereist:
--guild-id,--sticker-name,--sticker-desc,--sticker-tags,--media
Rollen / Kanalen / Leden / Spraak
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-idvoor Discord)voice status(Discord):--guild-id,--user-id
Gebeurtenissen
event list(Discord):--guild-idevent create(Discord):--guild-id,--event-name,--start-time- Optioneel:
--end-time,--desc,--channel-id,--location,--event-type
- Optioneel:
Moderatie (Discord)
timeout:--guild-id,--user-id(optioneel--duration-minof--until; laat beide weg om de timeout te wissen)kick:--guild-id,--user-id(+--reason)ban:--guild-id,--user-id(+--delete-days,--reason)timeoutondersteunt ook--reason
Broadcast
broadcast- Kanalen: elk geconfigureerd kanaal; gebruik
--channel allom alle providers te targeten - Vereist:
--targets <target...> - Optioneel:
--message,--media,--dry-run
- Kanalen: elk geconfigureerd kanaal; gebruik
Voorbeelden
Stuur een Discord-antwoord:
openclaw message send --channel discord \ --target channel:123 --message "hi" --reply-to 456Stuur een bericht met semantische knoppen:
openclaw message send --channel discord \ --target channel:123 --message "Choose:" \ --presentation '{"blocks":[{"type":"buttons","buttons":[{"label":"Approve","value":"approve","style":"success"},{"label":"Decline","value":"decline","style":"danger"}]}]}'Core rendert dezelfde presentation-payload naar Discord-componenten, Slack-blokken, Telegram-inlineknoppen, Mattermost-props of Teams/Feishu-kaarten, afhankelijk van de kanaalcapaciteit. Zie Berichtpresentatie voor het volledige contract en de fallbackregels.
Stuur een rijkere presentatiepayload:
openclaw message send --channel googlechat --target spaces/AAA... \ --message "Choose:" \ --presentation '{"title":"Deploy approval","tone":"warning","blocks":[{"type":"text","text":"Choose a path"},{"type":"buttons","buttons":[{"label":"Approve","value":"approve"},{"label":"Decline","value":"decline"}]}]}'Maak een Discord-poll:
openclaw message poll --channel discord \ --target channel:123 \ --poll-question "Snack?" \ --poll-option Pizza --poll-option Sushi \ --poll-multi --poll-duration-hours 48Maak een Telegram-poll (sluit automatisch na 2 minuten):
openclaw message poll --channel telegram \ --target @mychat \ --poll-question "Lunch?" \ --poll-option Pizza --poll-option Sushi \ --poll-duration-seconds 120 --silentStuur een proactief Teams-bericht:
openclaw message send --channel msteams \ --target conversation:19:abc@thread.tacv2 --message "hi"Maak een Teams-poll:
openclaw message poll --channel msteams \ --target conversation:19:abc@thread.tacv2 \ --poll-question "Lunch?" \ --poll-option Pizza --poll-option SushiReageer in Slack:
openclaw message react --channel slack \ --target C123 --message-id 456 --emoji "✅"Reageer in een Signal-groep:
openclaw message react --channel signal \ --target signal:group:abc123 --message-id 1737630212345 \ --emoji "✅" --target-author-uuid 123e4567-e89b-12d3-a456-426614174000Stuur Telegram-inlineknoppen via generieke presentatie:
openclaw message send --channel telegram --target @mychat --message "Choose:" \ --presentation '{"blocks":[{"type":"buttons","buttons":[{"label":"Yes","value":"cmd:yes"},{"label":"No","value":"cmd:no"}]}]}'Stuur een Telegram Mini App-knop via generieke presentatie:
openclaw message send --channel telegram --target 123456789 --message "Open app:" \ --presentation '{"blocks":[{"type":"buttons","buttons":[{"label":"Launch","webApp":{"url":"https://example.com/app"}}]}]}'Telegram-webappknoppen worden alleen ondersteund in privéchats tussen een gebruiker en
de bot. Oudere JSON-payloads die web_app gebruiken worden nog steeds geparsed, maar webApp is het
canonieke presentatieveld.
Stuur een Teams-kaart via generieke presentatie:
openclaw message send --channel msteams \ --target conversation:19:abc@thread.tacv2 \ --presentation '{"title":"Status update","blocks":[{"type":"text","text":"Build completed"}]}'Stuur een Telegram- of WhatsApp-afbeelding als document om compressie te vermijden:
openclaw message send --channel telegram --target @mychat \ --media ./diagram.png --force-document