
If you've ever needed to find the perfect reaction GIF for docs, a PR, or Slack and then actually needed the file or a static preview, this is your tool. It searches Tenor and Giphy from the command line, gives you a TUI browser with previews (on Kitty/Ghostty), downloads results, and extracts single frames or grid sheets from any GIF. The sheet export is unexpectedly handy: nine frames in a 3x3 PNG is way easier to review or embed than an autoplaying loop. Supports both brew and go install, works without API keys for Tenor, and includes thoughtful flags for piping URLs or JSON into other scripts.
$ npx -y skills add steipete/clawdis --skill gifgrep --agent claude-codeInstalls into .claude/skills of the current project.
Use gifgrep to search GIF providers (Tenor/Giphy), browse in a TUI, download results, and extract stills or sheets.
GIF-Grab (gifgrep workflow)
Quick start
gifgrep cats --max 5gifgrep cats --format url | head -n 5gifgrep search --json cats | jq '.[0].url'gifgrep tui "office handshake"gifgrep cats --download --max 1 --format urlTUI + previews
gifgrep tui "query"--thumbs (Kitty/Ghostty only; still frame)Download + reveal
--download saves to ~/Downloads--reveal shows the last download in FinderStills + sheets
gifgrep still ./clip.gif --at 1.5s -o still.pnggifgrep sheet ./clip.gif --frames 9 --cols 3 -o sheet.png--frames (count), --cols (grid width), --padding (spacing).Providers
--source auto|tenor|giphyGIPHY_API_KEY required for --source giphyTENOR_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
Content-Type: image/gif, and is actually animated (multiple frames or loop metadata; e.g. inspect with file, identify, or a small script).Environment tweaks
GIFGREP_SOFTWARE_ANIM=1 to force software animationGIFGREP_CELL_ASPECT=0.5 to tweak preview geometrySponsors