GIF Search (Tenor API)

SkillSearch

Lets your agent find and download gifs by searching Tenor.

Available today. Use it from your connected AI after setup.

Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.

Then ask your AI: use the GIF Search (Tenor API) skill

About this skill

Search and download GIFs from Tenor using curl. No dependencies beyond curl and jq. Useful for finding reaction GIFs, creating visual content, and sending GIFs in chat.

What this skill tells your AI

The instructions your AI receives, as published by tommy-yw/runbookhermes in skills/media/gif-search/SKILL.md and read by ahel’s review.

Search and download GIFs directly via the Tenor API using curl. No extra tools needed.

Setup

Set your Tenor API key in your environment (add to ~/.hermes/.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

# Search and get GIF URLs
curl -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 versions
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

# Search and download the top result
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

ParameterDescription
qSearch query (URL-encode spaces as +)
limitMax results (1-50, default 20)
keyAPI key (from $TENOR_API_KEY env var)
media_filterFilter formats: gif, tinygif, mp4, tinymp4, webm
contentfilterSafety: off, low, medium, high
localeLanguage: en_US, es, fr, etc.

Available Media Formats

Each result has multiple formats under .media_formats:

FormatUse case
gifFull quality GIF
tinygifSmall preview GIF
mp4Video version (smaller file size)
tinymp4Small preview video
webmWebM video
nanogifTiny 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: ![alt](url)

Signals

GitHub stars
547
Forks
41
Last commit
May 2026

ahel review

  • K2info
    exfiltration

Automated review, not a security audit. Ruleset v1+k2.

Advanced
Item type
skill
Key
gif-search-tommy-yw
Source
github.com/tommy-yw/runbookhermes