Gifgrep

Search GIF providers with CLI/TUI, download results, and extract stills/sheets.

Peter Steinberger

@steipete

What This Skill Does

CLI/TUI tool to search GIF providers (Tenor, Giphy), preview results, download GIFs, and extract still frames or sprite sheets. Supports JSON output and pipe-friendly formats for scripting.

Replaces manually browsing GIF websites and using separate tools to extract frames or create sprite sheets.

When to Use It

  • Search Tenor or Giphy for GIFs matching a query from the terminal
  • Download GIFs directly to ~/Downloads with a single command
  • Extract a still frame from a GIF at a specific timestamp
  • Generate a sprite sheet (grid of frames) from a GIF for documentation or PRs
  • Pipe GIF URLs into other scripts or tools for further processing
  • Browse and preview GIFs interactively using the TUI mode

Install

$ openclaw skills install @steipete/gifgrep

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)

Environment tweaks

  • GIFGREP_SOFTWARE_ANIM=1 to force software animation
  • GIFGREP_CELL_ASPECT=0.5 to tweak preview geometry

Top skills in this category

Playwright MCP

@spiceman161

Browser automation via Playwright MCP server. Navigate websites, click elements, fill forms, extract data, take screenshots, and perform full browser automation workflows.

15845k

Playwright (Automation + MCP + Scraper)

@ivangdavila

Automates, tests, and debugs browsers with Playwright: locators, auto-waiting, traces, CI runs, and MCP browser control. Use when a test is flaky, times out, or fails only in CI or headless; when a locator matches multiple elements or the wrong one (strict mode violation); when clicks need force, waits become sleeps, or networkidle never settles; for storageState and login setup, request mocking and HAR replay, uploads and downloads, iframes and shadow DOM, popups and dialogs, screenshot diffs that change per machine, trace and report artifacts, sharding a slow suite, device and permission emulation, accessibility checks, driving a real browser through Playwright MCP, extracting data from JS-rendered pages, or porting a Cypress, Puppeteer, or Selenium suite to Playwright. Not for maintaining an existing Cypress or Puppeteer suite (cypress, puppeteer) or for work a plain HTTP request answers (http).

12839k

Google Slides

@byungkyu

Google Slides API integration with managed OAuth. Create presentations, add slides, insert content, and manage slide formatting. Use this skill when users wa...

3320k

Google Workspace Admin

@byungkyu

Google Workspace Admin SDK integration with managed OAuth. This is a write-capable administrative integration for users, groups, organizational units, roles,...

2118k

Scrapling Official Skill

@d4vinci

Scrape web pages using Scrapling with anti-bot bypass (like Cloudflare Turnstile), stealth headless browsing, spiders framework, adaptive scraping, and JavaScript rendering. Use when asked to scrape, crawl, or extract data from websites; web_fetch fails; the site has anti-bot protections; write Pyth

2613k