Gif Search — Search/download GIFs from Tenor via curl + jq
Gif Search
Section titled “Gif Search”Search/download GIFs from Tenor via curl + jq.
Skill metadata
Section titled “Skill metadata”| Source | Bundled (installed by default) |
| Path | skills/media/gif-search |
| Version | 1.1.0 |
| Author | Hermes Agent |
| License | MIT |
| Tags | GIF, Media, Search, Tenor, API |
Reference: full SKILL.md
Section titled “Reference: full SKILL.md”The following is the complete skill definition that Hermes loads when this skill is triggered. This is what the agent sees as instructions when the skill is active.
GIF Search (Tenor API)
Section titled “GIF Search (Tenor API)”Search and download GIFs directly via the Tenor API using curl. No extra tools needed.
When to use
Section titled “When to use”Useful for finding reaction GIFs, creating visual content, and sending GIFs in chat.
Set your Tenor API key in your environment (add to ~/.hermes/.env):
TENOR_API_KEY=your_key_hereGet 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
Section titled “Prerequisites”curlandjq(both standard on macOS/Linux)TENOR_API_KEYenvironment variable
Search for GIFs
Section titled “Search for GIFs”# Search and get GIF URLscurl -s "https://tenor.googleapis.com/v2/search?q=thumbs+up&limit=5&key=${TENOR_API_KEY}" | jq -r '.results[].media_formats.gif.url'
# Get smaller/preview versionscurl -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
Section titled “Download a GIF”# Search and download the top resultURL=$(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.gifGet Full Metadata
Section titled “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
Section titled “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
Section titled “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 |
- URL-encode the query: spaces as
+, special chars as%XX - For sending in chat,
tinygifURLs are lighter weight - GIF URLs can be used directly in markdown:
