openclaw message
Commande sortante unique permettant d’envoyer des messages et d’effectuer des actions sur les canaux
Discord, Google Chat, iMessage, Matrix, Mattermost (plugin), Microsoft Teams,
Signal, Slack, Telegram et WhatsApp.
Sélection du canal
--channel <name>est requis si plusieurs canaux sont configurés ; si un seul canal est configuré, celui-ci est utilisé par défaut.- Valeurs :
discord|googlechat|imessage|matrix|mattermost|msteams|signal|slack|telegram|whatsapp(Mattermost nécessite le plugin). - Les cibles préfixées par un canal (par exemple
discord:channel:123) permettent d’identifier le plugin propriétaire sans spécifier explicitement--channel.
Formats de cible (-t, --target)
Recherche par nom de canal : pour les fournisseurs disposant d’un annuaire (Discord/Slack/etc.), les noms
tels que
Help ou #help sont résolus via le cache de l’annuaire, avec recours à une recherche en direct
dans l’annuaire en cas d’absence dans le cache lorsque le fournisseur la prend en charge.
Options communes
Chaque action accepte :--channel <name>, --account <id>, --json,
--dry-run, --verbose. Les actions nécessitant une destination acceptent également
-t, --target <dest>.
Résolution des SecretRefs
openclaw message résout les SecretRefs des canaux avant d’exécuter l’action,
avec la portée la plus restreinte possible :
- limitée au canal lorsque
--channelest défini (ou déduit d’une cible préfixée) - limitée au compte lorsque
--accountest également défini - tous les canaux configurés lorsque ni l’un ni l’autre n’est défini
Actions
Principales
Envoi
--media <path-or-url>: joint une image, un fichier audio, une vidéo ou un document (chemin local ou URL).--presentation <json>: charge utile partagée comprenant des blocstext,context,divider,chart,table,buttonsetselect, dont le rendu est adapté aux capacités de chaque canal. Voir Présentation des messages.--delivery <json>: préférences générales de distribution, par exemple{"pin": true}.--pinest un raccourci permettant d’épingler le message lors de sa distribution lorsque le canal le prend en charge.--reply-to <id>,--thread-id <id>(sujet de forum Telegram ; horodatage du fil Slack, même champ que--reply-to).--force-document(Telegram, WhatsApp) : envoie les images/GIF/vidéos sous forme de documents afin d’éviter la compression du canal.--silent(Telegram, Discord) : envoie sans notification.--gif-playback(WhatsApp uniquement) : traite le média vidéo comme une animation GIF.
webApp (web_app reste analysé pour les anciens
documents JSON) et ne s’affichent que dans les discussions privées entre un utilisateur et le bot :
Sondage
--poll-option <choice>: à répéter de 2 à 12 fois.--poll-multi: autorise plusieurs sélections.- Discord :
--poll-duration-hours,--silent,--message. - Telegram :
--poll-duration-seconds <n>(5-600),--silent,--poll-anonymous/--poll-public,--thread-id.
Fils de discussion
thread create: canaux Discord. Obligatoires :--thread-name,--target(identifiant du canal). Facultatifs :--message-id,--message,--auto-archive-min.thread list: canaux Discord. Obligatoire :--guild-id. Facultatifs :--channel-id,--include-archived,--before,--limit.thread reply: canaux Discord. Obligatoires :--target(identifiant du fil),--message. Facultatifs :--media,--reply-to.
Émojis
emoji list: Discord (--guild-id), Slack (aucune option supplémentaire).emoji upload: Discord. Obligatoires :--guild-id,--emoji-name,--media. Facultatif :--role-ids(répétable).
Autocollants
sticker send: Discord. Obligatoires :--target,--sticker-id(répétable). Facultatif :--message.sticker upload: Discord. Obligatoires :--guild-id,--sticker-name,--sticker-desc,--sticker-tags,--media.
Rôles, canaux, voix et événements (Discord)
role info:--guild-id.role add/role remove:--guild-id,--user-id,--role-id.channel info:--target.channel list:--guild-id.voice status:--guild-id,--user-id.event list:--guild-id.event create: obligatoires :--guild-id,--event-name,--start-time; facultatifs :--end-time,--desc,--channel-id,--location,--event-type,--image <url-or-path>.
Modération (Discord)
timeout:--guild-id,--user-id; facultatifs :--duration-minou--until(omettez les deux pour supprimer l’exclusion temporaire),--reason.kick:--guild-id,--user-id,--reason.ban:--guild-id,--user-id,--delete-days,--reason.
Diffusion
--targets accepte une liste
séparée par des espaces. Utilisez --channel all pour cibler tous les fournisseurs configurés.