slack-gif-creator

Create animated GIFs optimized for Slack emoji and message requirements using Python.

Updated Sep 11, 2026
One-click install
npx skills add https://github.com/CYRUS-pinto/pi-bot --skill slack-gif-creator-cyrus-pinto
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: slack-gif-creator
Source: https://github.com/CYRUS-pinto/pi-bot/tree/main/.agents/skills/slack-gif-creator
Command: npx skills add https://github.com/CYRUS-pinto/pi-bot --skill slack-gif-creator-cyrus-pinto

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires pillow, imageio, imageio-ffmpeg, numpy.

What problem does it solve? Creating animated GIFs that meet Slack's strict dimension, file size, and frame constraints requires manual trial and error with image tools, and this Skill provides the constraints, utilities, and validation needed to produce compliant GIFs programmatically. ## Core Features & Use Cases - GIF Assembly and Optimization: The GIFBuilder class assembles PIL-generated frames, applies global palette color quantization, removes duplicate frames, and resizes output for Slack emoji (128x128) or message (480x480) formats. - Animation Motion Utilities: Easing functions (bounce, elastic, back, quad, cubic) and helpers for arcs, squash-and-stretch, gradients, stars, and text enable smooth motion effects like shake, pulse, spin, fade, and particle bursts. - Slack Compliance Validation: Validators check dimensions, file size, frame count, and duration against Slack requirements before upload. - Use Case: A user asks for an animated emoji of a bouncing star for their Slack workspace; the Skill generates frames with PIL primitives, applies bounce easing, optimizes to 48 colors at 128x128, and validates the result is Slack-ready. ## Quick Start Create a Slack emoji GIF of a pulsing heart at 128x128 with 12 frames and validate it meets Slack's requirements.

Frequently Asked Questions about slack-gif-creator

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I create an animated GIF for Slack in Python?

Use the GIFBuilder class to add PIL Image frames, then call save with your target color count. Set width and height to 128 for emoji or 480 for message GIFs, and the builder handles palette optimization and looping automatically.

What are the size requirements for Slack emoji GIFs?

Slack emoji GIFs should be 128x128 pixels with durations under 3 seconds. Use 10-30 FPS and 48-128 colors to keep file sizes small, and enable optimize_for_emoji to automatically resize and reduce colors.

How do I make GIF animations look smooth instead of linear?

Apply easing functions from the easing module, such as ease_out, bounce_out, or elastic_out, through the interpolate function. This maps linear frame progress to natural acceleration and deceleration curves for motion like bouncing or sliding.

How can I reduce the file size of an animated GIF?

Lower the FPS to 10, reduce colors to 48, shrink dimensions to 128x128, and enable remove_duplicates to drop near-identical frames. The optimize_for_emoji flag combines several of these optimizations automatically.

Can I animate an image a user uploads into a GIF?

Yes, load the uploaded image with PIL Image.open and either animate it directly by transforming it across frames or use it as a style reference. The Skill does not include pre-packaged graphics, so all visuals come from uploads or PIL drawing primitives.

Why does my GIF fail Slack validation?

Common causes are non-square dimensions for emoji, sizes outside the 64-128 pixel range, or excessive file size from too many frames or colors. Run validate_gif with verbose output to see which constraint fails.