GIF Sender
Send GIFs naturally in WhatsApp conversations.
CRITICAL: WhatsApp GIF Workflow
WhatsApp doesn't support direct Tenor/Giphy URLs. You MUST:
- Download the GIF
- Convert to MP4
- Send with
gifPlayback: true
Complete Workflow
Step 1: Search for GIF
gifgrep "SEARCH QUERY" --max 5 --format url
Search in English for best results.
Always get 5 results and pick the best one based on the filename/description - don't just take the first result.
Step 2: Download the GIF
curl -sL "GIF_URL" -o /tmp/gif.gif
Step 3: Convert to MP4
ffmpeg -i /tmp/gif.gif -movflags faststart -pix_fmt yuv420p -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" /tmp/gif.mp4 -y
Step 4: Send via message tool
message action=send to=NUMBER message="" filePath=/tmp/gif.mp4 gifPlayback=true
Note: Use invisible character (left-to-right mark, U+200E) as message to send GIF without visible caption.
One-liner Example
# Search
gifgrep "thumbs up" --max 3 --format url
# Pick best URL, then:
curl -sL "https://media.tenor.com/xxx.gif" -o /tmp/g.gif && \
ffmpeg -i /tmp/g.gif -movflags faststart -pix_fmt yuv420p -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" /tmp/g.mp4 -y 2>/dev/null
# Then send with message tool, gifPlayback=true
When to Send GIFs
✅ Good times:
- User asks for a GIF
- Celebrating good news
- Funny reactions
- Expressing emotions (excitement, facepalm, etc.)
❌ Don't overuse:
- One GIF per context is enough
- Not every message needs a GIF
Popular Search Terms
| Emotion |
Search Terms |
| Happy |
celebration, party, dancing, excited |
| Approval |
thumbs up, nice, good job, applause |
| Funny |
laugh, lol, haha, funny |
| Shocked |
mind blown, shocked, surprised, wow |
| Sad |
crying, sad, disappointed |
| Frustrated |
facepalm, ugh, annoyed |
| Love |
heart, love, hug |
| Cool |
sunglasses, cool, awesome |
Security & Safety Notes
- Source domains: gifgrep only searches trusted GIF providers (Tenor, Giphy)
- File handling: All downloads go to
/tmp and are overwritten each time (-y flag)
- Empty caption: The
character (U+200E, Left-to-Right Mark) is used as an invisible caption so WhatsApp sends the GIF without visible text. This is a standard Unicode control character, not an injection technique
- WhatsApp integration: Uses the platform's built-in
message tool — no separate WhatsApp credentials needed
- ffmpeg safety: Processes only GIF files from trusted providers; no arbitrary file execution
Why This Works
- WhatsApp converts all GIFs to MP4 internally
- Direct Tenor/Giphy URLs often fail
- MP4 with
gifPlayback=true displays as looping GIF
- Small file size = fast delivery
1---2name: gif-whatsapp3description: Search and send GIFs on WhatsApp. Handles the Tenor→MP4 conversion required for WhatsApp.4---56# GIF Sender78Send GIFs naturally in WhatsApp conversations.910## CRITICAL: WhatsApp GIF Workflow1112WhatsApp doesn't support direct Tenor/Giphy URLs. You MUST:131. Download the GIF142. Convert to MP4153. Send with `gifPlayback: true`1617## Complete Workflow1819### Step 1: Search for GIF20```bash21gifgrep "SEARCH QUERY" --max 5 --format url22```23Search in English for best results.2425**Always get 5 results and pick the best one** based on the filename/description - don't just take the first result.2627### Step 2: Download the GIF28```bash29curl -sL "GIF_URL" -o /tmp/gif.gif30```3132### Step 3: Convert to MP433```bash34ffmpeg -i /tmp/gif.gif -movflags faststart -pix_fmt yuv420p -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" /tmp/gif.mp4 -y35```3637### Step 4: Send via message tool38```39message action=send to=NUMBER message="" filePath=/tmp/gif.mp4 gifPlayback=true40```4142Note: Use invisible character `` (left-to-right mark, U+200E) as message to send GIF without visible caption.4344## One-liner Example4546```bash47# Search48gifgrep "thumbs up" --max 3 --format url4950# Pick best URL, then:51curl -sL "https://media.tenor.com/xxx.gif" -o /tmp/g.gif && \52ffmpeg -i /tmp/g.gif -movflags faststart -pix_fmt yuv420p -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" /tmp/g.mp4 -y 2>/dev/null5354# Then send with message tool, gifPlayback=true55```5657## When to Send GIFs5859✅ Good times:60- User asks for a GIF61- Celebrating good news62- Funny reactions63- Expressing emotions (excitement, facepalm, etc.)6465❌ Don't overuse:66- One GIF per context is enough67- Not every message needs a GIF6869## Popular Search Terms7071| Emotion | Search Terms |72|---------|--------------|73| Happy | celebration, party, dancing, excited |74| Approval | thumbs up, nice, good job, applause |75| Funny | laugh, lol, haha, funny |76| Shocked | mind blown, shocked, surprised, wow |77| Sad | crying, sad, disappointed |78| Frustrated | facepalm, ugh, annoyed |79| Love | heart, love, hug |80| Cool | sunglasses, cool, awesome |8182## Security & Safety Notes8384- **Source domains**: gifgrep only searches trusted GIF providers (Tenor, Giphy)85- **File handling**: All downloads go to `/tmp` and are overwritten each time (`-y` flag)86- **Empty caption**: The `` character (U+200E, Left-to-Right Mark) is used as an invisible caption so WhatsApp sends the GIF without visible text. This is a standard Unicode control character, not an injection technique87- **WhatsApp integration**: Uses the platform's built-in `message` tool — no separate WhatsApp credentials needed88- **ffmpeg safety**: Processes only GIF files from trusted providers; no arbitrary file execution8990## Why This Works9192- WhatsApp converts all GIFs to MP4 internally93- Direct Tenor/Giphy URLs often fail94- MP4 with `gifPlayback=true` displays as looping GIF95- Small file size = fast delivery