Skip to main content
skill Claude Code CX Codex Cursor GitHub Copilot

gif-search — Claude Code skill: what it does, how to install

Searches and downloads GIFs directly through the Tenor API using curl and jq. Useful when your agent needs reaction media or quick links for chat.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add NousResearch/hermes-agent --skill gif-search -a claude-code
Open on GitHub

What gif-search does

The skill queries the Tenor API v2 and extracts media URLs with jq. It fetches animation links and saves GIF files to disk via curl -sL. Supported formats include gif, preview tinygif, and mp4.

Results accept safety levels with contentfilter and language codes via locale. The limit parameter takes values from 1 to 50, defaulting to 20. Spaces in queries require + encoding.

Running it requires curl, jq, and the TENOR_API_KEY environment variable. Without this API key, every Tenor endpoint call will fail immediately.

What it helps with

  • find direct links to reaction GIFs or tinygif previews
  • download a GIF to disk from a search query
  • inspect media metadata including image dimensions
  • filter Tenor search results by safety rating with contentfilter

Example prompts for the agent

  • Find a thumbs up GIF via Tenor and give me the tinygif URL
  • Search for celebration on Tenor and download the top result as celebration.gif
  • Search for 3 cat GIFs and show their dimensions along with preview links

How to install gif-search

1Skills CLI (Vercel)

npx skills add NousResearch/hermes-agent --skill gif-search -a claude-code

2Manually: put the files in place

~/.claude/skills/gif-search/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/gif-search/

From the same set42

The whole set →
dogfood Teknium (teknium1), Hermes Agent A skill for exploratory QA of a web app: it walks the pages, captures console errors and screenshots, then writes a bug report. Claude Code CX Codex Cursor +1 6,400installs humanizer Siqi Chen (@blader, https://github.com/blader/humanizer), ported by Hermes Agent This skill removes common AI writing patterns and gives drafts a more natural voice. Use it for docs, posts, emails, and other text. Claude Code CX Codex Cursor +1 1,300installs popular-web-designs Hermes Agent + Teknium (design systems sourced from VoltAgent/awesome-design-md) 54 real-world design systems (Stripe, Linear, Vercel, Claude) with CSS tokens, typography, and components for building pages styled after known brands. Claude Code CX Codex Cursor +1 914installs powerpoint Nous Research Creates, reads, and edits .pptx presentations with python-pptx. Use it for slide decks, extracting presentation content, and template-based updates. Claude Code CX Codex Cursor +1 751installs claude-design BadTechBandit Skill for building HTML artifacts — landing pages, prototypes, decks — in Claude Code, Codex and Cursor. Reads project context and produces a self-contained file with markup and styles. Claude Code CX Codex Cursor +1 645installs llm-wiki Hermes Agent A skill for building a persistent knowledge base from interlinked markdown files. The agent summarizes sources, cross-references pages, and maintains consistency while you curate and direct the analysis. Claude Code CX Codex Cursor +1 603installs yuanbao Teknium (teknium1), Hermes Agent Connects agents to Yuanbao groups to query members, send mentions using @nickname, and deliver direct messages with attachments. Claude Code CX Codex Cursor +1 564installs songwriting-and-ai-music Teknium (teknium1), Hermes Agent Provides songwriting structures, prosody techniques, and Suno AI prompt formulas that rely on sound details rather than artist names. Claude Code CX Codex Cursor +1 563installs

Similar

kr-whois-lookup NomaDamas Queries public registration data for .kr domains, IP addresses, and AS numbers via k-skill-proxy. Read-only tool for coding agents. Claude Code CX Codex Cursor +1 4,200installs config-codex-cli cheaper-inference Automate OpenAI Codex CLI setup to work with OmniRoute on any OS. The skill detects your system and shell, writes config, creates 7 profiles, and verifies the connection. Claude Code CX Codex Cursor +1 977installs cli-mcp cheaper-inference Inspects MCP server status, triggers tools, manages scopes, and controls transports through the omniroute command-line interface. Claude Code CX Codex Cursor +1 974installs superdesign superdesigndev Create and refine interfaces, presentations, and graphics on the Superdesign canvas. Useful for drafting new layouts or comparing results from different models. Claude Code CX Codex Cursor +1 11,200installs prompt-engineer https://github.com/Jeffallan A skill that writes, refactors and tests LLM prompts: templates, JSON schemas, scoring rubrics, test suites. Useful when model output is inconsistent and you need to know why. Claude Code CX Codex Cursor +1 5,600installs setup-matt-pocock-skills Matt Pocock This skill configures a repository for Matt Pocock's engineering skills by setting its issue tracker, triage labels, and domain docs layout. Run it before using the other skills. Claude Code 1,052,851installs to-tickets Matt Pocock Turns a plan, spec, or conversation into small end-to-end tickets with explicit blockers. Use it to agree on the work breakdown before tickets go to a tracker. Claude Code 711,230installs writing-plans Jesse Vincent This skill turns requirements for a multi-step task into an implementation plan before code changes begin. It helps when another engineer needs exact files, interfaces, and checks. Claude Code CX Codex 282,859installs

Questions about gif-search

How do I install gif-search in Claude Code?

Run npx skills add NousResearch/hermes-agent --skill gif-search -a claude-code. You will also need curl, jq, and the TENOR_API_KEY environment variable configured.

What does the gif-search skill do?

It queries the Tenor API with curl and parses JSON output using jq. The skill returns media links, extracts metadata, and downloads GIF or MP4 files locally.

Where do I get and configure TENOR_API_KEY?

You get a Tenor API key from Google Cloud Console. Then define it in ${HERMES_HOME:-~/.hermes}/.env as TENOR_API_KEY=your_key_here or export it in your shell environment.

Source text

SKILL.md · MIT
---
name: gif-search
description: "Search/download GIFs from Tenor via curl + jq."
version: 1.1.0
author: Hermes Agent
license: MIT
platforms: [linux, macos, windows]
prerequisites:
  env_vars: [TENOR_API_KEY]
  commands: [curl, jq]
metadata:
  hermes:
    tags: [GIF, Media, Search, Tenor, API]
---

# 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 `${HERMES_HOME:-~/.hermes}/.env`):

```bash
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

```bash
# 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

```bash
# 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

```bash
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: `![alt](url)`

© Hermes Agent · MIT · NousResearch/hermes-agent

See also

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor