slack-gif-creator
by anthropicsCreate animated GIFs for Slack with practical guidance, Python utilities, and validation tools for sizing, timing, and optimization.
Overview
What slack-gif-creator is
slack-gif-creator is a focused skill for creating animated GIFs that fit Slack-friendly constraints. In the repository, it is presented as a toolkit with practical knowledge plus Python utilities for assembling frames, controlling animation timing, and checking whether an output GIF is suitable for Slack use.
The included code supports a frame-based workflow built around Pillow, NumPy, and ImageIO. It also includes a validator for checking GIF dimensions, size details, frame count, and duration-related information.
What problems it helps solve
This skill is useful when you need to turn an idea, design, or uploaded image into an animated GIF that works well in Slack. It helps with common issues such as:
- choosing sensible dimensions for Slack usage
- keeping animation duration short enough for emoji-style GIFs
- balancing frame rate against file size
- reducing colors to keep GIFs lighter
- resizing frames consistently before export
- validating the finished file before sharing it
The repository guidance specifically calls out Slack-oriented targets such as 128x128 for emoji GIFs, 480x480 for message GIFs, frame rates in the 10-30 FPS range, and lower color counts to reduce file size.
Who this skill is for
slack-gif-creator is a good fit for:
- agents or developers generating GIFs programmatically
- teams making custom Slack emoji animations
- users who want to animate shapes, text, or composited frames with Python
- workflows that start from an uploaded image and then adapt or animate it
Because the implementation is code-based, it is especially practical for people comfortable with Python and image-processing libraries.
What is included in the repository
The skill directory includes a small but useful set of files:
SKILL.mdfor the core workflow and Slack-specific guidancerequirements.txtfor Python dependenciescore/gif_builder.pyfor collecting frames and writing optimized GIFscore/frame_composer.pyfor drawing and compositing frame elementscore/easing.pyfor animation timing functionscore/validators.pyfor checking finished GIFs against Slack-oriented requirementsLICENSE.txtfor Apache License 2.0 terms
When slack-gif-creator is a good fit
Choose this skill when you want a reusable, code-driven GIF creation workflow rather than a one-off manual design process. It is well suited to repeatable generation tasks such as:
- making animated Slack emoji from simple motion graphics
- creating short looped status or reaction GIFs
- building GIFs from programmatically generated frames
- validating output before sending it into a Slack workflow
When it may not be the best fit
This skill may not be ideal if you need:
- a no-code desktop design tool
- advanced timeline editing like a full video editor
- a complete text-to-image or text-to-video generation system
- a Slack app or bot integration out of the box
The repository evidence supports a Python utility toolkit for GIF creation and optimization, not a packaged end-user app or hosted service.
How to Use
Install the skill
Install slack-gif-creator with:
npx skills add https://github.com/anthropics/skills --skill slack-gif-creator
After installation, open the local skill files and review SKILL.md first. That file gives the clearest high-level view of the intended workflow and Slack-specific constraints.
Install Python dependencies
The repository includes requirements.txt with these dependencies:
pillow>=10.0.0imageio>=2.31.0imageio-ffmpeg>=0.4.9numpy>=1.24.0
Install them in your Python environment before running or adapting the utility modules.
Review the recommended file order
For a fast evaluation, start in this order:
SKILL.mdrequirements.txtcore/gif_builder.pycore/frame_composer.pycore/validators.pycore/easing.py
This sequence helps you understand the intended output constraints first, then the code you will actually reuse.
Understand the core workflow
The documented workflow in SKILL.md is straightforward:
- create a
GIFBuilder - generate or draw frames
- add frames to the builder
- save the GIF with optimization settings
The repository example uses Pillow primitives to draw on frames, then exports an optimized GIF. This makes slack-gif-creator a practical option for scripted animation pipelines.
Build GIFs from frames
core/gif_builder.py provides the central builder class. Based on the source, it supports:
- setting width, height, and FPS during initialization
- adding frames as either
PIL.Imageobjects or NumPy arrays - automatically converting image input to RGB
- resizing frames to the configured dimensions if needed
That is useful when your source frames come from mixed inputs or inconsistent sizes.
Compose visuals programmatically
core/frame_composer.py includes helper functions for frame creation and drawing. The visible source confirms support for tasks such as:
- creating a blank RGB frame
- drawing circles
- drawing text
- working with Pillow image objects for compositing
If your workflow involves badges, emoji-style motion graphics, or simple geometric animation, this module is one of the most practical places to start.
Control timing and motion
core/easing.py contains easing functions for smoother animation timing. The source includes functions such as:
linearease_in_quadease_out_quadease_in_out_quadease_in_cubicease_out_cubicease_in_out_cubic- bounce easing variants
Use these functions when you want movement to feel more natural than a constant linear step between positions.
Work with uploaded images
The repository guidance explicitly mentions user-uploaded images. A practical way to use slack-gif-creator in that case is to decide whether the image should be:
- used directly as animation input
- split into frames or transformed
- treated only as visual inspiration for a newly generated animation
The documented approach uses Pillow to open uploaded files, which makes it easy to combine source imagery with custom frame generation.
Validate output before sharing
core/validators.py is designed to check whether a generated GIF meets Slack-oriented expectations. The visible source shows validation for:
- file existence
- dimensions
- file size details
- frame count
- duration and FPS calculations
This is one of the most valuable parts of slack-gif-creator for production workflows, because it helps catch problems before a GIF is uploaded or reused.
Practical Slack optimization tips from the repository
When adapting this skill, the repository guidance suggests these defaults and guardrails:
- use
128x128for emoji GIFs when possible - use
480x480for larger message GIFs - stay in the
10-30FPS range - reduce colors to around
48-128to shrink files - keep emoji GIFs under about 3 seconds for better Slack usability
These are practical starting points for installation decisions too: if your use case depends on large, long, high-color animations, this skill may require tradeoffs.
Best way to test your first result
A sensible first run is:
- generate a very short loop at
128x128 - keep FPS modest, such as 10 or 12
- export with lower color counts
- run validation on the saved GIF
- inspect playback quality, size, and readability in Slack
This gives you a quick signal on whether slack-gif-creator fits your needs before you invest in a more complex animation pipeline.
FAQ
Is slack-gif-creator a Slack app or bot?
No. Based on the repository contents, slack-gif-creator is a skill and code toolkit for creating and validating GIFs intended for Slack. It does not appear to be a packaged Slack app, bot, or hosted service.
Do I need Python to use slack-gif-creator?
Yes, for the included utilities. The repository contains Python modules and a requirements.txt file with dependencies such as Pillow, ImageIO, ImageIO FFmpeg, and NumPy.
Can slack-gif-creator create GIFs from scratch?
Yes. The documented workflow shows programmatically generating frames and drawing graphics with Pillow before exporting them as a GIF.
Can I use an uploaded image as input?
Yes. SKILL.md explicitly discusses working with user-uploaded images and using Pillow to open files like file.png.
What dimensions should I use for Slack GIFs?
The repository guidance recommends 128x128 for emoji GIFs and 480x480 for message GIFs. Those are good defaults when using slack-gif-creator.
How does slack-gif-creator help reduce GIF size?
The documented guidance recommends lower FPS, fewer colors, and short durations. The builder is also described as saving with optimization settings, and the validator helps you inspect the output afterward.
Is this skill good for video editing?
Not in the sense of a full editing suite. It is better described as a programmatic animation and GIF optimization toolkit. It may support video-adjacent workflows through frame generation and the listed dependencies, but the repository evidence is centered on GIF creation for Slack.
What should I open first after installation?
Start with SKILL.md, then review core/gif_builder.py, core/frame_composer.py, and core/validators.py. That will give you the clearest path from installation to first output.
