docs/nodes/images.md
The WhatsApp channel runs via Baileys Web. This document captures the current media handling rules for send, gateway, and agent replies.
openclaw message send --media.openclaw message send --media <path-or-url> [--message <caption>]
--media optional; caption can be empty for media-only sends.--dry-run prints the resolved payload; --json emits { channel, to, messageId, mediaUrl, caption }.channels.whatsapp.mediaMaxMb (default: 50 MB).ptt: true).gifPlayback: true (CLI: --gif-playback) so mobile clients loop inline.--message or reply.text; empty caption is allowed.↩️/✅; verbose includes size and source path/URL.getReplyFromConfig returns { text?, mediaUrl?, mediaUrls? }.openclaw message send.{{MediaUrl}} pseudo-URL for the inbound media.{{MediaPath}} local temp path written before running the command.MediaPath/MediaUrl are rewritten to a relative path like media/inbound/<filename>.tools.media.* or shared tools.media.models) runs before templating and can insert [Image], [Audio], and [Video] blocks into Body.
{{Transcript}} and uses the transcript for command parsing so slash commands still work.[Image] summary block and passes the original image to the model instead.tools.media.<cap>.attachments to process multiple attachments.Outbound send caps (WhatsApp web send)
channels.whatsapp.mediaMaxMb (default: 50 MB) after recompression.Media understanding caps (transcription/description)
tools.media.image.maxBytes).tools.media.audio.maxBytes).tools.media.video.maxBytes).