peepshow/ how-to/ apng-to-llm

Reel #H-09 Animated PNG → frames → any LLM

peepshow how-to / apng-to-llm

Send animated PNGs to any LLM — every frame, not just the first

Most LLM vision endpoints read an APNG as the first frame only. peepshow detects the format, extracts every frame, and emits a flat JPEG sequence Claude / GPT / Gemini happily ingest.

Steps

  1. Install peepshow
    npm install -g peepshow
  2. Run on the APNG

    Format auto-detected from extension + content.

    peepshow ./tutorial.apng
  3. Feed frames to your LLM

    Drag the frame folder into Claude / ChatGPT or pipe the JSON to an API.

    peepshow ./tutorial.apng --emit json | jq '.frames[].path'

Why it works

APNG is the modern animated image format — losslessly compressed, supports transparency, widely used in tutorial assets and animated UI documentation. LLM vision APIs don't read it as motion. peepshow's format probe extracts every frame, drops near-duplicates, and emits a JPEG sequence.

When it helps

  • Documentation hosted as APNG (technical tutorials, UI walkthroughs).
  • Animated logos / loading states you want analysed.
  • Asset archives where the source is APNG and conversion to MP4 isn't desired.

Pitfalls

  • Transparency channel is dropped on JPEG export — pass `--format png` if you need it.
  • Some APNG encoders use non-standard chunks; peepshow falls back to ffmpeg's apng decoder.

Works with these LLMs