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---5
6# GIF Sender
7
8Send GIFs naturally in WhatsApp conversations.
9
10## CRITICAL: WhatsApp GIF Workflow
11
12WhatsApp doesn't support direct Tenor/Giphy URLs. You MUST:
131. Download the GIF
142. Convert to MP4
153. Send with `gifPlayback: true`
16
17## Complete Workflow
18
19### Step 1: Search for GIF
20```bash
21gifgrep "SEARCH QUERY" --max 5 --format url
22```
23Search in English for best results.
24
25**Always get 5 results and pick the best one** based on the filename/description - don't just take the first result.
26
27### Step 2: Download the GIF
28```bash
29curl -sL "GIF_URL" -o /tmp/gif.gif
30```
31
32### Step 3: Convert to MP4
33```bash
34ffmpeg -i /tmp/gif.gif -movflags faststart -pix_fmt yuv420p -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" /tmp/gif.mp4 -y
35```
36
37### Step 4: Send via message tool
38```
39message action=send to=NUMBER message="" filePath=/tmp/gif.mp4 gifPlayback=true
40```
41
42Note: Use invisible character `` (left-to-right mark, U+200E) as message to send GIF without visible caption.
43
44## One-liner Example
45
46```bash
47# Search
48gifgrep "thumbs up" --max 3 --format url
49
50# 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/null
53
54# Then send with message tool, gifPlayback=true
55```
56
57## When to Send GIFs
58
59✅ Good times:
60- User asks for a GIF
61- Celebrating good news
62- Funny reactions
63- Expressing emotions (excitement, facepalm, etc.)
64
65❌ Don't overuse:
66- One GIF per context is enough
67- Not every message needs a GIF
68
69## Popular Search Terms
70
71| 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 |
81
82## Security & Safety Notes
83
84- **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 technique
87- **WhatsApp integration**: Uses the platform's built-in `message` tool — no separate WhatsApp credentials needed
88- **ffmpeg safety**: Processes only GIF files from trusted providers; no arbitrary file execution
89
90## Why This Works
91
92- WhatsApp converts all GIFs to MP4 internally
93- Direct Tenor/Giphy URLs often fail
94- MP4 with `gifPlayback=true` displays as looping GIF
95- Small file size = fast delivery