openclaw message
Comando saliente único para enviar mensajes y acciones de canal
(Discord/Google Chat/iMessage/Matrix/Mattermost (plugin)/Microsoft Teams/Signal/Slack/Telegram/WhatsApp).
Uso
--channeles obligatorio si hay más de un canal configurado.- Si exactamente un canal está configurado, se convierte en el valor predeterminado.
- Valores:
discord|googlechat|imessage|matrix|mattermost|msteams|signal|slack|telegram|whatsapp(Mattermost requiere plugin)
--target):
- WhatsApp: E.164 o JID de grupo
- Telegram: chat id o
@username - Discord:
channel:<id>ouser:<id>(o mención<@id>; los id numéricos sin formato se tratan como canales) - Google Chat:
spaces/<spaceId>ousers/<userId> - Slack:
channel:<id>ouser:<id>(se acepta el id de canal sin formato) - Mattermost (plugin):
channel:<id>,user:<id>o@username(los id sin formato se tratan como canales) - Signal:
+E.164,group:<id>,signal:+E.164,signal:group:<id>ousername:<name>/u:<name> - iMessage: handle,
chat_id:<id>,chat_guid:<guid>ochat_identifier:<id> - Matrix:
@user:server,!room:servero#alias:server - Microsoft Teams: id de conversación (
19:...@thread.tacv2) oconversation:<id>ouser:<aad-object-id>
- Para proveedores compatibles (Discord/Slack/etc.), los nombres de canal como
Helpo#helpse resuelven mediante la caché de directorio. - Si hay un fallo de caché, OpenClaw intentará una búsqueda de directorio en vivo cuando el proveedor lo admita.
Flags comunes
--channel <name>--account <id>--target <dest>(canal o usuario de destino para send/poll/read/etc.)--targets <name>(repetible; solo broadcast)--json--dry-run--verbose
Comportamiento de SecretRef
openclaw messageresuelve los SecretRef de canal compatibles antes de ejecutar la acción seleccionada.- La resolución se limita al destino de la acción activa cuando es posible:
- limitada al canal cuando se establece
--channel(o se deduce a partir de destinos con prefijo comodiscord:...) - limitada a la cuenta cuando se establece
--account(superficies globales del canal + superficies de la cuenta seleccionada) - cuando se omite
--account, OpenClaw no fuerza un alcance de SecretRef de cuentadefault
- limitada al canal cuando se establece
- Los SecretRef no resueltos en canales no relacionados no bloquean una acción de mensaje dirigida.
- Si el SecretRef del canal/cuenta seleccionado no está resuelto, el comando falla de forma cerrada para esa acción.
Acciones
Núcleo
-
send- Canales: WhatsApp/Telegram/Discord/Google Chat/Slack/Mattermost (plugin)/Signal/iMessage/Matrix/Microsoft Teams
- Obligatorio:
--target, además de--messageo--media - Opcional:
--media,--interactive,--buttons,--components,--card,--reply-to,--thread-id,--gif-playback,--force-document,--silent - Cargas útiles interactivas compartidas:
--interactiveenvía una carga útil JSON interactiva nativa del canal cuando es compatible - Solo Telegram:
--buttons(requierechannels.telegram.capabilities.inlineButtonspara permitirlo) - Solo Telegram:
--force-document(envía imágenes y GIF como documentos para evitar la compresión de Telegram) - Solo Telegram:
--thread-id(id de tema del foro) - Solo Slack:
--thread-id(marca de tiempo del hilo;--reply-tousa el mismo campo) - Solo Discord: carga útil JSON
--components - Canales con Adaptive Card: carga útil JSON
--cardcuando es compatible - Telegram + Discord:
--silent - Solo WhatsApp:
--gif-playback
-
poll- Canales: WhatsApp/Telegram/Discord/Matrix/Microsoft Teams
- Obligatorio:
--target,--poll-question,--poll-option(repetible) - Opcional:
--poll-multi - Solo Discord:
--poll-duration-hours,--silent,--message - Solo Telegram:
--poll-duration-seconds(5-600),--silent,--poll-anonymous/--poll-public,--thread-id
-
react- Canales: Discord/Google Chat/Slack/Telegram/WhatsApp/Signal/Matrix
- Obligatorio:
--message-id,--target - Opcional:
--emoji,--remove,--participant,--from-me,--target-author,--target-author-uuid - Nota:
--removerequiere--emoji(omite--emojipara borrar las propias reacciones cuando sea compatible; consulta /tools/reactions) - Solo WhatsApp:
--participant,--from-me - Reacciones de grupos de Signal: se requiere
--target-authoro--target-author-uuid
-
reactions- Canales: Discord/Google Chat/Slack/Matrix
- Obligatorio:
--message-id,--target - Opcional:
--limit
-
read- Canales: Discord/Slack/Matrix
- Obligatorio:
--target - Opcional:
--limit,--before,--after - Solo Discord:
--around
-
edit- Canales: Discord/Slack/Matrix
- Obligatorio:
--message-id,--message,--target
-
delete- Canales: Discord/Slack/Telegram/Matrix
- Obligatorio:
--message-id,--target
-
pin/unpin- Canales: Discord/Slack/Matrix
- Obligatorio:
--message-id,--target
-
pins(list)- Canales: Discord/Slack/Matrix
- Obligatorio:
--target
-
permissions- Canales: Discord/Matrix
- Obligatorio:
--target - Solo Matrix: disponible cuando el cifrado de Matrix está habilitado y se permiten acciones de verificación
-
search- Canales: Discord
- Obligatorio:
--guild-id,--query - Opcional:
--channel-id,--channel-ids(repetible),--author-id,--author-ids(repetible),--limit
Hilos
-
thread create- Canales: Discord
- Obligatorio:
--thread-name,--target(id de canal) - Opcional:
--message-id,--message,--auto-archive-min
-
thread list- Canales: Discord
- Obligatorio:
--guild-id - Opcional:
--channel-id,--include-archived,--before,--limit
-
thread reply- Canales: Discord
- Obligatorio:
--target(id de hilo),--message - Opcional:
--media,--reply-to
Emojis
-
emoji list- Discord:
--guild-id - Slack: sin flags adicionales
- Discord:
-
emoji upload- Canales: Discord
- Obligatorio:
--guild-id,--emoji-name,--media - Opcional:
--role-ids(repetible)
Stickers
-
sticker send- Canales: Discord
- Obligatorio:
--target,--sticker-id(repetible) - Opcional:
--message
-
sticker upload- Canales: Discord
- Obligatorio:
--guild-id,--sticker-name,--sticker-desc,--sticker-tags,--media
Roles / Canales / Miembros / Voz
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-idpara Discord)voice status(Discord):--guild-id,--user-id
Eventos
event list(Discord):--guild-idevent create(Discord):--guild-id,--event-name,--start-time- Opcional:
--end-time,--desc,--channel-id,--location,--event-type
- Opcional:
Moderación (Discord)
timeout:--guild-id,--user-id(opcional--duration-mino--until; omite ambos para borrar el timeout)kick:--guild-id,--user-id(+--reason)ban:--guild-id,--user-id(+--delete-days,--reason)timeouttambién admite--reason
Broadcast
broadcast- Canales: cualquier canal configurado; usa
--channel allpara apuntar a todos los proveedores - Obligatorio:
--targets <target...> - Opcional:
--message,--media,--dry-run
- Canales: cualquier canal configurado; usa