{“content”:”---\nname: gif-search\ndescription: 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.\nversion: 1.1.0\nauthor: Hermes Agent\nlicense: MIT\nprerequisites:\n env_vars: [TENOR_API_KEY]\n commands: [curl, jq]\nmetadata:\n hermes:\n tags: [GIF, Media, Search, Tenor, API]\n---\n\n# GIF Search (Tenor API)\n\nSearch and download GIFs directly via the Tenor API using curl. No extra tools needed.\n\n## Setup\n\nSet your Tenor API key in your environment (add to ~/.hermes/.env):\n\nbash\nTENOR_API_KEY=your_key_here\n\n\nGet 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.\n\n## Prerequisites\n\n- curl and jq (both standard on macOS/Linux)\n- TENOR_API_KEY environment variable\n\n## Search for GIFs\n\nbash\n# Search and get GIF URLs\ncurl -s \"https://tenor.googleapis.com/v2/search?q=thumbs+up&limit=5&key=${TENOR_API_KEY}\" | jq -r '.results[].media_formats.gif.url'\n\n# Get smaller/preview versions\ncurl -s \"https://tenor.googleapis.com/v2/search?q=nice+work&limit=3&key=${TENOR_API_KEY}\" | jq -r '.results[].media_formats.tinygif.url'\n\n\n## Download a GIF\n\nbash\n# Search and download the top result\nURL=$(curl -s \"https://tenor.googleapis.com/v2/search?q=celebration&limit=1&key=${TENOR_API_KEY}\" | jq -r '.results[0].media_formats.gif.url')\ncurl -sL \"$URL\" -o celebration.gif\n\n\n## Get Full Metadata\n\nbash\ncurl -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}'\n\n\n## API Parameters\n\n| Parameter | Description |\n|-----------|-------------|\n| q | Search query (URL-encode spaces as +) |\n| limit | Max results (1-50, default 20) |\n| key | API key (from $TENOR_API_KEY env var) |\n| media_filter | Filter formats: gif, tinygif, mp4, tinymp4, webm |\n| contentfilter | Safety: off, low, medium, high |\n| locale | Language: en_US, es, fr, etc. |\n\n## Available Media Formats\n\nEach result has multiple formats under .media_formats:\n\n| Format | Use case |\n|--------|----------|\n| gif | Full quality GIF |\n| tinygif | Small preview GIF |\n| mp4 | Video version (smaller file size) |\n| tinymp4 | Small preview video |\n| webm | WebM video |\n| nanogif | Tiny thumbnail |\n\n## Notes\n\n- URL-encode the query: spaces as +, special chars as %XX\n- For sending in chat, tinygif URLs are lighter weight\n- GIF URLs can be used directly in markdown: ![alt](url)\n”}