slack-gif-creator
Create custom animated GIFs for Slack reactions and celebrations. Use for team milestones, custom emoji reactions, inside jokes, and workplace fun.
Best use case
slack-gif-creator is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Create custom animated GIFs for Slack reactions and celebrations. Use for team milestones, custom emoji reactions, inside jokes, and workplace fun.
Teams using slack-gif-creator should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/slack-gif-creator/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How slack-gif-creator Compares
| Feature / Agent | slack-gif-creator | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Create custom animated GIFs for Slack reactions and celebrations. Use for team milestones, custom emoji reactions, inside jokes, and workplace fun.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# Slack Gif Creator
## Overview
Create custom animated GIFs for Slack workspaces, including celebration GIFs, reaction GIFs, and custom emoji animations. These add personality and fun to team communications.
## When to Use
- Celebrating team wins and milestones
- Creating custom emoji reactions
- Building "Ship it!" or "LGTM" animations
- Designing status indicators
- Adding personality to team channels
- Inside jokes and team culture building
## Quick Start
1. **Choose GIF type** (celebration, reaction, status)
2. **Select method** (PIL/Pillow for simple, moviepy for video)
3. **Create frames** with animation loop
4. **Optimize for Slack** (128x128px emoji, <200KB)
5. **Upload to workspace**
```python
from PIL import Image, ImageDraw, ImageFont
def create_shipped_gif(output_path):
frames = []
size = (128, 128)
for i in range(10):
img = Image.new('RGBA', size, (255, 255, 255, 0))
draw = ImageDraw.Draw(img)
# Pulsing effect
scale = 0.8 + 0.2 * abs(i - 5) / 5
font_size = int(20 * scale)
draw.text((20, 50), "SHIPPED!", fill=(255, 100, 100))
frames.append(img)
frames[0].save(output_path, save_all=True, append_images=frames[1:],
duration=100, loop=0, transparency=0, disposal=2)
create_shipped_gif("shipped.gif")
```
## GIF Types
### 1. Celebration GIFs
- Team wins
- Project completions
- Work anniversaries
- Promotions
- Goal achievements
### 2. Reaction GIFs
- Approval/thumbs up variations
- "Ship it!"
- "LGTM" (Looks Good To Me)
- "Deploying..."
- Custom team expressions
### 3. Status GIFs
- "In a meeting"
- "Deep work mode"
- "Coffee break"
- "Reviewing PR"
## Creation Methods
### Method 1: Python with Pillow (Simple Animations)
```python
from PIL import Image, ImageDraw, ImageFont
import os
def create_text_gif(text, output_path, frames=10, size=(128, 128)):
"""
Create simple animated text GIF.
Args:
text: Text to animate
*See sub-skills for full details.*
### Method 2: Python with moviepy (Video-to-GIF)
```python
from moviepy.editor import VideoFileClip, TextClip, CompositeVideoClip
import moviepy.video.fx.all as vfx
def video_to_slack_gif(video_path, output_path, start=0, duration=3, text=None):
"""
Convert video clip to Slack-optimized GIF.
Args:
video_path: Source video file
*See sub-skills for full details.*
### Method 3: Frame-by-Frame Animation
```python
from PIL import Image, ImageDraw
import math
def create_spinner_gif(output_path, size=64, frames=12):
"""Create loading spinner GIF."""
images = []
for frame in range(frames):
img = Image.new('RGBA', (size, size), (255, 255, 255, 0))
*See sub-skills for full details.*
## Slack-Specific Optimization
### Size Requirements
| Use Case | Max Size | Recommended |
|----------|----------|-------------|
| Custom emoji | 128x128 px | 64x64 px |
| Message GIF | 500 KB | Under 200 KB |
| Profile image | 512x512 px | 256x256 px |
### Optimization Script
```python
from PIL import Image
import subprocess
def optimize_for_slack(input_path, output_path, max_size_kb=200):
"""
Optimize GIF for Slack file size limits.
Args:
input_path: Source GIF
*See sub-skills for full details.*
## Related Skills
- [internal-comms](../internal-comms/SKILL.md) - Team communications
- [canvas-design](../../content-design/canvas-design/SKILL.md) - Static visual art
- [algorithmic-art](../../content-design/algorithmic-art/SKILL.md) - Generative animations
---
## Version History
- **2.0.0** (2026-01-02): Upgraded to v2 template - added Quick Start, When to Use, Execution Checklist, Error Handling, Metrics sections
- **1.0.0** (2024-10-15): Initial release with PIL/Pillow, moviepy methods, Slack optimization, celebration GIF templates
## Sub-Skills
- [Design Guidelines (+2)](design-guidelines/SKILL.md)
## Sub-Skills
- [Execution Checklist](execution-checklist/SKILL.md)
- [Error Handling](error-handling/SKILL.md)
- [Metrics](metrics/SKILL.md)
- [Dependencies](dependencies/SKILL.md)Related Skills
skill-creator-versioning
Sub-skill of skill-creator: Versioning.
skill-creator-template-name
Sub-skill of skill-creator: [Template Name].
skill-creator-technical-skill-template
Sub-skill of skill-creator: Technical Skill Template.
skill-creator-technical-implementation
Sub-skill of skill-creator: Technical Implementation.
skill-creator-task-category-1
Sub-skill of skill-creator: [Task Category 1] (+1).
skill-creator-style-1-name
Sub-skill of skill-creator: Style 1: [Name] (+1).
skill-creator-step-1-name
Skill-creator checklist template. Use when scaffolding a new skill with step-by-step instructions and verification items.
skill-creator-step-1-define-the-skill-scope
Define skill scope and write frontmatter. Use when creating a new skill to establish problem, inputs, outputs, and YAML metadata.
skill-creator-skill-discovery
Sub-skill of skill-creator: Skill Discovery (+2).
skill-creator-scenario
Sub-skill of skill-creator: [Scenario].
skill-creator-process-skill-template
Sub-skill of skill-creator: Process Skill Template.
skill-creator-principle-1-name
Sub-skill of skill-creator: Principle 1: [Name] (+1).