LLM Skills
~/catalog/video generation//SKILL
Video generationGitHub source

Slack GIF Creator

/SKILL

A toolkit providing utilities and knowledge for creating animated GIFs optimized for Slack.

anthropicsanthropics
169.8k
May 29, 2026
// skill content

--- name: slack-gif-creator description: Knowledge and utilities for creating animated GIFs optimized for Slack. Provides guidelines, validation tools, and animation concepts. Use when users request animated GIFs for Slack, such as "make me a GIF of X doing Y for Slack." license: Full terms in LICENSE.txt --- # Slack GIF Creator A toolkit providing utilities and knowledge for creating animated GIFs optimized for Slack. ## Slack Requirements Dimensions: - Emoji GIFs: 128x128 (recommended) - Message GIFs: 480x480 Parameters: - FPS: 10:30 (lower FPS results in a smaller file size) - Colors: 48:128 (fewer colors result in a smaller file size) - Duration: Keep under 3 seconds for emoji GIFs ## Core Workflow ``python from core.gif_builder import GIFBuilder from PIL import Image, ImageDraw # 1. Create builder builder = GIFBuilder(width=128, height=128, fps=10) # 2. Generate frames for i in range(12): frame = Image.new('RGB', (128, 128), (240, 248, 255)) draw = ImageDraw.Draw(frame) # Draw your animation using PIL primitives # (circles, polygons, lines, etc.) builder.add_frame(frame) # 3. Save with optimization builder.save('output.gif', num_colors=48, optimize_for_emoji=True) ` ## Drawing Graphics ### Working with User-Uploaded Images If a user uploads an image, consider whether they want to: - **Use it directly** (e.g., "animate this", "split this into frames") - **Use it as inspiration** (e.g., "make something like this") Load and work with images using PIL: `python from PIL import Image uploaded = Image.open('file.png') # Use directly, or just as reference for colors/style ` ### Drawing from Scratch When drawing graphics from scratch, use PIL ImageDraw primitives: `python from PIL import ImageDraw draw = ImageDraw.Draw(frame) # Circles/ovals draw.ellipse([x1, y1, x2, y2], fill=(r, g, b), outline=(r, g, b), width=3) # Stars, triangles, any polygon points = [(x1, y1), (x2, y2), (x3, y3), ...] draw.polygon(points, fill=(r, g, b), outline=(r, g, b), width=3) # Lines draw.line([(x1, y1), (x2, y2)], fill=(r, g, b), width=5) # Rectangles draw.rectangle([x1, y1, x2, y2], fill=(r, g, b), outline=(r, g, b), width=3) ` **Don't use:** Emoji fonts (unreliable across platforms) or assume pre-packaged graphics exist in this skill. ### Making Graphics Look Good Graphics should look polished and creative, not basic. Here's how: **Use thicker lines** - Always set width=2 or higher for outlines and lines. Thin lines (width=1) look choppy and amateurish. **Add visual depth**: - Use gradients for backgrounds (creategradientbackground) - Layer multiple shapes for complexity (e.g., a star with a smaller star inside) **Make shapes more interesting**: - Don't just draw a plain circle - add highlights, rings, or patterns - Stars can have glows (draw larger, semi-transparent versions behind) - Combine multiple shapes (stars + sparkles, circles + rings) **Pay attention to colors**: - Use vibrant, complementary colors - Add contrast (dark outlines on light shapes, light outlines on dark shapes) - Consider the overall composition **For complex shapes** (hearts, snowflakes, etc.): - Use combinations of polygons and ellipses - Calculate points carefully for symmetry - Add details (a heart can have a highlight curve, snowflakes have intricate branches) Be creative and detailed! A good Slack GIF should look polished, not like placeholder graphics. ## Available Utilities ### GIFBuilder ( core. gif_builder) Assembles frames and optimizes for Slack: `python builder = GIFBuilder(width=128, height=128, fps=10) builder.add_frame(frame) # Add PIL Image builder.add_frames(frames) # Add list of frames builder.save('out.gif', num_colors=48, optimize_for_emoji=True, remove_duplicates=True) ` ### Validators ( core.validators ) Check if GIF meets Slack requirements: `python from core.validators import validate_gif, is_slack_ready # Detailed validation passes, info = validate_gif('my.gif', is_emoji=True, verbose=True) # Quick check if is_slack_ready('my.gif'): print("Ready!") ` ### Easing Functions ( core.easing ) Smooth motion instead of linear: ``python from core.easing import interpolate # Progress from

// original public source
anthropics/skills
/skills/slack-gif-creator/SKILL.md
License: License not specified. Review the repository before reusing it.
Independent project, not affiliated with Anthropic. This skill remains the property of its original author.
// install this skill
Paste this command in your terminal at the root of your project:
mkdir -p .claude/commands && curl -o ".claude/commands/SKILL.md" "https://raw.githubusercontent.com/anthropics/skills/main/skills/slack-gif-creator/SKILL.md"
Then in Claude Code, type /SKILL to activate it.
open_in_newOpen original source
// save
Save available after sign in.
loginSign in to save
// information
Creatoranthropics
Stars 169.8k
UpdatedMay 29, 2026
Format.md
AccessFree
// similar

Skills Video generation

View allarrow_forward