Install
openclaw skills install openclaw-whatsapp-gifSource and send relevant reaction GIFs in WhatsApp chats using safe filters and deterministic ranking. Use when the user asks for a GIF/meme/reaction, or when a short visual reaction is better than plain text for celebration, humor, acknowledgment, empathy, or agreement.
openclaw skills install openclaw-whatsapp-gifSource safe, context-matching GIFs and send exactly one high-quality result to WhatsApp.
scripts/find_gif.py to fetch and rank candidates.message tool to WhatsApp (prefer local-file payload mode).Prefer GIF when:
Avoid GIF when:
Use these deterministic helpers:
python3 skills/openclaw-whatsapp-gif/scripts/find_gif.py "congrats celebration" --limit 5 --json
python3 skills/openclaw-whatsapp-gif/scripts/find_gif.py "great job" --limit 3 --json --target "+1234567890"
python3 skills/openclaw-whatsapp-gif/scripts/send_gif.py "+1234567890" "great job celebration" --json
python3 skills/openclaw-whatsapp-gif/scripts/send_gif.py "+1234567890" "great job celebration" --delivery-mode local --json
python3 skills/openclaw-whatsapp-gif/scripts/send_gif.py "+1234567890" "great job celebration" --payload-only
Behavior:
TENOR_API_KEY and/or GIPHY_API_KEY.contentfilter=low / rating=g + blocklist).allowWebScrapeFallback is enabled in references/policy.json.--json).--target, prints a ready-to-send WhatsApp message payload in JSON.send_gif.py --payload-only, prints only the final message payload for direct tool handoff.send_gif.py validates media size/type, retries next candidates when a URL is bad, and writes to OS temp cache.references/policy.json.Use message with:
action: "send"channel: "whatsapp"target: <chat id/recipient>media: <gif/mp4 url>caption: <optional short line>gifPlayback: trueIf provider rejects .gif, retry using next candidate URL (prefer MP4).
If no suitable GIF or delivery fails twice:
references/providers.md