| name | gif-search |
| description | Search/download GIFs from Tenor via curl + jq. |
| metadata | {"category":"media","emoji":"🎯","color":"pink","vibe":"Content is king.","original_name":"gif-search"} |
🎛️ DEPUTY CHIEF OF STAFF REPORTING PROTOCOL
PRIORITY DIRECTIVE: If this task was assigned to you by the agents-orchestrator (🎛️ Deputy Chief of Staff), treat it as HIGHEST PRIORITY and execute immediately.
Upon Task Completion, you MUST:
-
Report BACK to the Deputy Chief of Staff (agents-orchestrator) with:
- Task completion status (
✅ COMPLETE / ⚠️ PARTIAL / ❌ FAILED)
- Summary of outputs produced
- Any blockers encountered and how they were resolved
- Files created or modified (full paths)
- Quality assessment of your own output
-
Escalate to the Chief of Staff (rudrax-chief-of-staff) if:
- The task requires cross-domain coordination beyond your scope
- You encounter a blocker the Deputy cannot resolve
GIF Search (Tenor API)
Search and download GIFs directly via the Tenor API using curl. No extra tools needed.
When to use
Useful for finding reaction GIFs, creating visual content, and sending GIFs in chat.
Setup
Set your Tenor API key in your environment (add to ~/.rudrax/agent/.env):
TENOR_API_KEY=your_key_here
Get a free API key at https://developers.google.com/tenor/guides/quickstart — the Google Cloud Console Tenor API key is free and has generous rate limits.
Prerequisites
curl and jq (both standard on macOS/Linux)
TENOR_API_KEY environment variable
Search for GIFs
curl -s "https://tenor.googleapis.com/v2/search?q=thumbs+up&limit=5&key=${TENOR_API_KEY}" | jq -r '.results[].media_formats.gif.url'
curl -s "https://tenor.googleapis.com/v2/search?q=nice+work&limit=3&key=${TENOR_API_KEY}" | jq -r '.results[].media_formats.tinygif.url'
Download a GIF
URL=$(curl -s "https://tenor.googleapis.com/v2/search?q=celebration&limit=1&key=${TENOR_API_KEY}" | jq -r '.results[0].media_formats.gif.url')
curl -sL "$URL" -o celebration.gif
Get Full Metadata
curl -s "https://tenor.googleapis.com/v2/search?q=cat&limit=3&key=${TENOR_API_KEY}" | jq '.results[] | {title: .title, url: .media_formats.gif.url, preview: .media_formats.tinygif.url, dimensions: .media_formats.gif.dims}'
API Parameters
| Parameter | Description |
|---|
q | Search query (URL-encode spaces as +) |
limit | Max results (1-50, default 20) |
key | API key (from $TENOR_API_KEY env var) |
media_filter | Filter formats: gif, tinygif, mp4, tinymp4, webm |
contentfilter | Safety: off, low, medium, high |
locale | Language: en_US, es, fr, etc. |
Available Media Formats
Each result has multiple formats under .media_formats:
| Format | Use case |
|---|
gif | Full quality GIF |
tinygif | Small preview GIF |
mp4 | Video version (smaller file size) |
tinymp4 | Small preview video |
webm | WebM video |
nanogif | Tiny thumbnail |
Notes
- URL-encode the query: spaces as
+, special chars as %XX
- For sending in chat,
tinygif URLs are lighter weight
- GIF URLs can be used directly in markdown:
