openclaw message
Commande sortante unique pour envoyer des messages et des actions de canal
(Discord/Google Chat/iMessage/Matrix/Mattermost (plugin)/Microsoft Teams/Signal/Slack/Telegram/WhatsApp).
Utilisation
--channelest requis si plus d’un canal est configuré.- Si exactement un canal est configuré, il devient le canal par défaut.
- Valeurs :
discord|googlechat|imessage|matrix|mattermost|msteams|signal|slack|telegram|whatsapp(Mattermost nécessite le plugin)
--target) :
- WhatsApp : E.164 ou JID de groupe
- Telegram : identifiant de chat ou
@username - Discord :
channel:<id>ouuser:<id>(ou mention<@id>; les identifiants numériques bruts sont traités comme des canaux) - Google Chat :
spaces/<spaceId>ouusers/<userId> - Slack :
channel:<id>ouuser:<id>(l’identifiant brut du canal est accepté) - Mattermost (plugin) :
channel:<id>,user:<id>, ou@username(les identifiants nus sont traités comme des canaux) - Signal :
+E.164,group:<id>,signal:+E.164,signal:group:<id>, ouusername:<name>/u:<name> - iMessage : handle,
chat_id:<id>,chat_guid:<guid>, ouchat_identifier:<id> - Matrix :
@user:server,!room:server, ou#alias:server - Microsoft Teams : identifiant de conversation (
19:...@thread.tacv2) ouconversation:<id>ouuser:<aad-object-id>
- Pour les fournisseurs pris en charge (Discord/Slack/etc.), les noms de canaux comme
Helpou#helpsont résolus via le cache d’annuaire. - En cas d’absence dans le cache, OpenClaw tentera une recherche en direct dans l’annuaire lorsque le fournisseur la prend en charge.
Indicateurs communs
--channel <name>--account <id>--target <dest>(canal cible ou utilisateur pour send/poll/read/etc)--targets <name>(répétable ; diffusion uniquement)--json--dry-run--verbose
Comportement de SecretRef
openclaw messagerésout les SecretRef de canal pris en charge avant d’exécuter l’action sélectionnée.- La résolution est limitée à la cible active de l’action lorsque c’est possible :
- à portée de canal lorsque
--channelest défini (ou déduit à partir de cibles préfixées commediscord:...) - à portée de compte lorsque
--accountest défini (surfaces globales du canal + surfaces du compte sélectionné) - lorsque
--accountest omis, OpenClaw n’impose pas de portée SecretRef de comptedefault
- à portée de canal lorsque
- Les SecretRef non résolus sur des canaux non liés ne bloquent pas une action de message ciblée.
- Si le SecretRef du canal/compte sélectionné n’est pas résolu, la commande échoue de manière fermée pour cette action.
Actions
Cœur
-
send- Canaux : WhatsApp/Telegram/Discord/Google Chat/Slack/Mattermost (plugin)/Signal/iMessage/Matrix/Microsoft Teams
- Requis :
--target, plus--messageou--media - Facultatif :
--media,--interactive,--buttons,--components,--card,--reply-to,--thread-id,--gif-playback,--force-document,--silent - Charges utiles interactives partagées :
--interactiveenvoie une charge utile JSON interactive native au canal lorsqu’elle est prise en charge - Telegram uniquement :
--buttons(nécessitechannels.telegram.capabilities.inlineButtonspour l’autoriser) - Telegram uniquement :
--force-document(envoyer les images et GIF comme documents pour éviter la compression Telegram) - Telegram uniquement :
--thread-id(identifiant de sujet de forum) - Slack uniquement :
--thread-id(horodatage du fil ;--reply-toutilise le même champ) - Discord uniquement : charge utile JSON
--components - Canaux avec cartes adaptatives : charge utile JSON
--cardlorsqu’elle est prise en charge - Telegram + Discord :
--silent - WhatsApp uniquement :
--gif-playback
-
poll- Canaux : WhatsApp/Telegram/Discord/Matrix/Microsoft Teams
- Requis :
--target,--poll-question,--poll-option(répétable) - Facultatif :
--poll-multi - Discord uniquement :
--poll-duration-hours,--silent,--message - Telegram uniquement :
--poll-duration-seconds(5-600),--silent,--poll-anonymous/--poll-public,--thread-id
-
react- Canaux : Discord/Google Chat/Slack/Telegram/WhatsApp/Signal/Matrix
- Requis :
--message-id,--target - Facultatif :
--emoji,--remove,--participant,--from-me,--target-author,--target-author-uuid - Remarque :
--removenécessite--emoji(omettez--emojipour effacer vos propres réactions lorsque c’est pris en charge ; voir /tools/reactions) - WhatsApp uniquement :
--participant,--from-me - Réactions de groupe Signal :
--target-authorou--target-author-uuidrequis
-
reactions- Canaux : Discord/Google Chat/Slack/Matrix
- Requis :
--message-id,--target - Facultatif :
--limit
-
read- Canaux : Discord/Slack/Matrix
- Requis :
--target - Facultatif :
--limit,--before,--after - Discord uniquement :
--around
-
edit- Canaux : Discord/Slack/Matrix
- Requis :
--message-id,--message,--target
-
delete- Canaux : Discord/Slack/Telegram/Matrix
- Requis :
--message-id,--target
-
pin/unpin- Canaux : Discord/Slack/Matrix
- Requis :
--message-id,--target
-
pins(liste)- Canaux : Discord/Slack/Matrix
- Requis :
--target
-
permissions- Canaux : Discord/Matrix
- Requis :
--target - Matrix uniquement : disponible lorsque le chiffrement Matrix est activé et que les actions de vérification sont autorisées
-
search- Canaux : Discord
- Requis :
--guild-id,--query - Facultatif :
--channel-id,--channel-ids(répétable),--author-id,--author-ids(répétable),--limit
Fils
-
thread create- Canaux : Discord
- Requis :
--thread-name,--target(identifiant du canal) - Facultatif :
--message-id,--message,--auto-archive-min
-
thread list- Canaux : Discord
- Requis :
--guild-id - Facultatif :
--channel-id,--include-archived,--before,--limit
-
thread reply- Canaux : Discord
- Requis :
--target(identifiant du fil),--message - Facultatif :
--media,--reply-to
Emojis
-
emoji list- Discord :
--guild-id - Slack : aucun indicateur supplémentaire
- Discord :
-
emoji upload- Canaux : Discord
- Requis :
--guild-id,--emoji-name,--media - Facultatif :
--role-ids(répétable)
Autocollants
-
sticker send- Canaux : Discord
- Requis :
--target,--sticker-id(répétable) - Facultatif :
--message
-
sticker upload- Canaux : Discord
- Requis :
--guild-id,--sticker-name,--sticker-desc,--sticker-tags,--media
Rôles / Canaux / Membres / Voix
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-idpour Discord)voice status(Discord) :--guild-id,--user-id
Événements
event list(Discord) :--guild-idevent create(Discord) :--guild-id,--event-name,--start-time- Facultatif :
--end-time,--desc,--channel-id,--location,--event-type
- Facultatif :
Modération (Discord)
timeout:--guild-id,--user-id(facultatif--duration-minou--until; omettez les deux pour effacer le délai d’expiration)kick:--guild-id,--user-id(+--reason)ban:--guild-id,--user-id(+--delete-days,--reason)timeoutprend aussi en charge--reason
Diffusion
broadcast- Canaux : tout canal configuré ; utilisez
--channel allpour cibler tous les fournisseurs - Requis :
--targets <target...> - Facultatif :
--message,--media,--dry-run
- Canaux : tout canal configuré ; utilisez