gifgrep — Claude Code skill: what it does, how to install
Searches Tenor and Giphy from the CLI, downloads GIF files, and extracts frames or contact sheets for PRs and docs.
npx skills add openclaw/openclaw --skill gifgrep -a claude-codeWhat gifgrep does
This skill connects your AI assistant to the gifgrep CLI. It queries Giphy and Tenor, outputs raw links or JSON metadata, and downloads animations directly into ~/Downloads. Terminal previews work out of the box in Kitty and Ghostty via the --thumbs flag.
Under the hood, it expects the gifgrep executable installed via Homebrew (steipete/tap/gifgrep) or Go. Queries to Tenor work immediately via a fallback demo key, while Giphy requires exporting GIPHY_API_KEY. The CLI also handles asset processing: gifgrep still captures a frame at a specific timestamp, and gifgrep sheet compiles multiple sampled frames into a single PNG grid.
Worth installing if you often attach visual demos to pull requests or documentation. Skip it if your project never touches media assets.
What it helps with
- search Tenor or Giphy animations directly from the terminal
- generate a PNG frame grid from a GIF for PR reviews or docs
- extract a static PNG frame at a specific timestamp
- download GIF files locally instead of relying on hotlinks
Example prompts for the agent
- Search for cat gifs using gifgrep and download the top match
- Generate a 9-frame contact sheet from clip.gif using gifgrep sheet
- Get 5 gif URLs for office handshake with gifgrep
How to install gifgrep
1Skills CLI (Vercel)
npx skills add openclaw/openclaw --skill gifgrep -a claude-code2Manually: put the files in place
~/.claude/skills/gifgrep/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/gifgrep/
1Skills CLI (Vercel)
npx skills add openclaw/openclaw --skill gifgrep -a codex2Manually: put the files in place
.agents/skills/gifgrep/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add openclaw/openclaw --skill gifgrep -a cursor2Manually: put the files in place
.cursor/skills/gifgrep/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install openclaw/openclaw gifgrep2Manually: put the files in place
.github/skills/gifgrep/SKILL.md1Skills CLI (Vercel)
npx skills add openclaw/openclaw --skill gifgrep -a gemini-cli2Platform CLI
gemini skills install https://github.com/openclaw/openclaw --path skills/gifgrepManually: put the files in place
.devin/skills/gifgrep/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add openclaw/openclaw --skill gifgrep -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
From the same set45
The whole set →Similar
Questions about gifgrep
How to install gifgrep in Claude Code?
Install the binary first with brew install steipete/tap/gifgrep, then add the skill using npx skills add openclaw/openclaw --skill gifgrep -a claude-code.
What does gifgrep do?
It lets your coding agent find animations on Giphy and Tenor, save files locally, and extract static frames or contact sheets.
Does gifgrep require an API key?
Tenor works without configuration by using a built-in demo key. Searching Giphy requires setting the GIPHY_API_KEY environment variable.
Source text
SKILL.md · MIT
---
name: gifgrep
description: "Search GIF providers with CLI/TUI, download results, and extract stills/sheets."
homepage: https://gifgrep.com
metadata:
{
"openclaw":
{
"emoji": "🧲",
"requires": { "bins": ["gifgrep"] },
"install":
[
{
"id": "brew",
"kind": "brew",
"formula": "steipete/tap/gifgrep",
"bins": ["gifgrep"],
"label": "Install gifgrep (brew)",
},
{
"id": "go",
"kind": "go",
"module": "github.com/steipete/gifgrep/cmd/gifgrep@latest",
"bins": ["gifgrep"],
"label": "Install gifgrep (go)",
},
],
},
}
---
# gifgrep
Use `gifgrep` to search GIF providers (Tenor/Giphy), browse in a TUI, download results, and extract stills or sheets.
GIF-Grab (gifgrep workflow)
- Search -> preview -> download -> extract (still/sheet) for fast review and sharing.
Quick start
- `gifgrep cats --max 5`
- `gifgrep cats --format url | head -n 5`
- `gifgrep search --json cats | jq '.[0].url'`
- `gifgrep tui "office handshake"`
- `gifgrep cats --download --max 1 --format url`
TUI + previews
- TUI: `gifgrep tui "query"`
- CLI still previews: `--thumbs` (Kitty/Ghostty only; still frame)
Download + reveal
- `--download` saves to `~/Downloads`
- `--reveal` shows the last download in Finder
Stills + sheets
- `gifgrep still ./clip.gif --at 1.5s -o still.png`
- `gifgrep sheet ./clip.gif --frames 9 --cols 3 -o sheet.png`
- Sheets = single PNG grid of sampled frames (great for quick review, docs, PRs, chat).
- Tune: `--frames` (count), `--cols` (grid width), `--padding` (spacing).
Providers
- `--source auto|tenor|giphy`
- `GIPHY_API_KEY` required for `--source giphy`
- `TENOR_API_KEY` optional (Tenor demo key used if unset)
Output
- `--json` prints an array of results (`id`, `title`, `url`, `preview_url`, `tags`, `width`, `height`)
- `--format` for pipe-friendly fields (e.g., `url`)
GIF asset hygiene
- Before recommending or using an animated GIF URL, verify it resolves successfully, has `Content-Type: image/gif`, and is actually animated (multiple frames or loop metadata; e.g. inspect with `file`, `identify`, or a small script).
- Record attribution/license/source URL alongside the asset.
- Do not hotlink when a local asset is needed: download/copy it into the project and reference the local file.
Environment tweaks
- `GIFGREP_SOFTWARE_ANIM=1` to force software animation
- `GIFGREP_CELL_ASPECT=0.5` to tweak preview geometry
© openclaw · MIT · openclaw/openclaw