gif-analyzer
Analyze animated GIF files by extracting and viewing frames as sequential video. Use when: - User mentions a GIF file path (e.g., "./demo.gif", "~/Downloads/animation.gif") - User wants to analyze or understand a GIF animation - User asks about motion, changes, or content in a GIF - User attaches or references a .gif file for analysis - User wants to examine a screen recording in GIF format - User invokes /gif slash command Keywords: "GIF", ".gif", "animation", "animated", "frames", "screen recording", "analyze gif", "gif analysis", "view gif", "gif content", "gif motion" Trigger patterns: - Natural language: "Analyze this GIF: ./demo.gif" - Slash command: `/gif <path>` or `/gif <path> <message>` When triggered, extract frames using the Python script, view frames in order, and interpret as continuous video sequence.
NPX Install
npx skill4agent add laststance/skills gif-analyzerTags
Translated version includes tags in frontmatterSKILL.md Content
View Translation Comparison →GIF Analyzer
Quick Start
/gif/gif ./animation.gif/gif ./animation.gif describe what happens step by step
/gif ./demo.gif what is the character doing?
/gif ./screen.gif summarize this screen recordingWorkflow
Step 1: Parse User Input
- GIF path: The file path immediately after
/gif - User request (optional): Any text after the GIF path
- Input:
/gif ./demo.gif explain the animation - GIF path:
./demo.gif - User request:
explain the animation
Step 2: Extract Frames
python3 ~/.claude/skills/gif-analyzer/extract_gif_frames.py <gif_path> --output-dir /tmp/gif_frames_analysispython3 ~/.claude/skills/gif-analyzer/extract_gif_frames.py <gif_path> --max-frames 30 --skip 2Step 3: Read Metadata
gif_metadata.json- Total frames and duration
- Individual frame timestamps
- Resolution and loop information
Step 4: View and Analyze Frames
frame_001.pngframe_002.png- Frame 001 = START of the animation
- Frame numbers increase in TIME ORDER
- Consecutive frames show MOTION/CHANGE over time
Step 5: Respond to User
Script Options
| Option | Description | Default |
|---|---|---|
| Output directory | |
| Max frames to extract | 50 |
| Extract every Nth frame | 1 (all frames) |
Frame Analysis Guidelines
- Temporal Awareness: Frame 001 is the beginning
- Motion Detection: Compare adjacent frames to identify movement
- Key Frames: Identify significant moments (start, middle, end)
- Loop Points: Note if the animation appears to loop
- Duration Context: Use timestamp info to understand pacing
Output Format
📹 **GIF Analysis: [filename]**
**Overview:**
[1-2 sentence summary]
**Timeline:**
- [0.0s - 0.5s] Frame 1-5: [Description]
- [0.5s - 1.0s] Frame 6-10: [Description]
...
**[Answer to user's specific question if provided]**Troubleshooting
- Pillow not found:
pip install Pillow - Too many frames: Use or higher
--skip 2 - Large output: Use
--max-frames 20