← marketplace
creativetoolOfficialsha:332345619080bdc9manual

slack-gif-creator

Use when a user wants an animated GIF optimized for Slack, like "make me a GIF of X doing Y for Slack" — provides constraints, animation concepts, and validation utilities.

Install confidence
curl --create-dirs -fsSL https://skillmake.xyz/i/slack-gif-creator -o ~/.claude/skills/slack-gif-creator/SKILL.md
Pinned content
sha:332345619080bdc9
Generated with
manual
Source
github.com

The file served at /api/marketplace/slack-gif-creator-33234561/raw matches this hash. Inspect before install, then copy the command.

3,342 chars · ~836 tokens
---
name: slack-gif-creator
description: "Use when a user wants an animated GIF optimized for Slack, like \"make me a GIF of X doing Y for Slack\" — provides constraints, animation concepts, and validation utilities."
source: https://github.com/anthropics/skills/tree/main/skills/slack-gif-creator
generated: 2026-07-02T18:43:25.453Z
category: tool
audience: creative
---

## When to use

- Creating an animated emoji GIF sized for Slack (128x128, under 3 seconds)
- Building a larger message GIF (480x480) with custom animation
- Animating or splitting a user-uploaded image into frames
- Shrinking a GIF's file size to meet Slack's constraints

## Key concepts

### Slack size constraints

Emoji GIFs are 128x128 and should stay under 3 seconds; message GIFs are 480x480. FPS (10-30) and color count (48-128) trade quality against file size.

### GIFBuilder

The core assembler (core.gif_builder) that collects PIL frames via add_frame/add_frames and writes an optimized GIF with num_colors, optimize_for_emoji, and remove_duplicates options.

### PIL-primitive drawing

Frames are drawn from scratch with ImageDraw primitives (ellipse, polygon, line, rectangle) using thick outlines (width 2+); the skill deliberately ships no pre-made graphics or emoji fonts.

### Easing functions

core.easing.interpolate applies non-linear motion (ease_in, ease_out, bounce_out, elastic_out, back_out) so movement feels natural instead of robotic and linear.

### Animation concepts

Reusable recipes — shake, pulse/heartbeat, bounce, spin, fade, slide, zoom, and particle burst — that can be combined for richer effects rather than fixed templates.

### Validators

core.validators (validate_gif, is_slack_ready) checks a finished GIF against Slack's requirements before you hand it over.

## API reference

```
npx skills add anthropics/skills --skill slack-gif-creator
```

Install the Slack GIF creator skill.

```
npx skills add anthropics/skills --skill slack-gif-creator
```

```
GIFBuilder(width, height, fps).save(path, num_colors, optimize_for_emoji, remove_duplicates)
```

Assemble PIL frames and export an optimized, Slack-ready GIF.

```
from core.gif_builder import GIFBuilder
builder = GIFBuilder(width=128, height=128, fps=10)
for frame in frames:
    builder.add_frame(frame)
builder.save('emoji.gif', num_colors=48, optimize_for_emoji=True, remove_duplicates=True)
```

```
validate_gif(path, is_emoji=True) / is_slack_ready(path)
```

Verify a finished GIF meets Slack's dimension, duration, and size requirements.

```
from core.validators import is_slack_ready
if is_slack_ready('my.gif'):
    print('Ready!')
```

## Gotchas

- Don't use emoji fonts — they render unreliably across platforms; draw shapes with PIL primitives instead
- Don't assume pre-packaged graphics exist in the skill; it ships utilities and knowledge, not clip art
- Thin lines (width=1) look choppy and amateurish; always set width=2 or higher on outlines
- Keep emoji GIFs under 3 seconds and at 128x128, or they won't work as Slack emoji
- Only apply the aggressive optimization strategies (fewer frames/colors, remove_duplicates) when explicitly asked to shrink the file

---
Generated by SkillMake from https://github.com/anthropics/skills/tree/main/skills/slack-gif-creator on 2026-07-02T18:43:25.453Z.
Verify against source before relying on details.

File: ~/.claude/skills/slack-gif-creator/SKILL.md