Pixel Gif Maker
mohitagw15856/pm-claude-skills
Generate retro pixel-text animated GIFs for Slack, Teams, or a PR comment — scrolling marquees, heartbeat pulses, confetti parties, twinkling sparkles — from a bundled pure-stdlib Python script (no…
Provides Slack size and frame limits, Python animation helpers and validators for building animated GIFs sized for emoji and messages.
$ npx skills add anthropics/skills --skill slack-gif-creator -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install anthropics/skills slack-gif-creator --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/anthropics/skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/slack-gif-creator .claude/skills/slack-gif-creator && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "slack-gif-creator" agent skill from https://github.com/anthropics/skills/tree/main/skills/slack-gif-creator into .claude/skills/slack-gif-creator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "slack-gif-creator", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/anthropics/skills/tree/main/skills/slack-gif-creatorType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add anthropics/skills --skill slack-gif-creator -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install anthropics/skills slack-gif-creator --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/anthropics/skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/slack-gif-creator .agents/skills/slack-gif-creator && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "slack-gif-creator" agent skill from https://github.com/anthropics/skills/tree/main/skills/slack-gif-creator into .agents/skills/slack-gif-creator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "slack-gif-creator", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add anthropics/skills --skill slack-gif-creator -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install anthropics/skills slack-gif-creator --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/anthropics/skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/slack-gif-creator .cursor/skills/slack-gif-creator && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "slack-gif-creator" agent skill from https://github.com/anthropics/skills/tree/main/skills/slack-gif-creator into .cursor/skills/slack-gif-creator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "slack-gif-creator", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/anthropics/skills.git --path skills/slack-gif-creator--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add anthropics/skills --skill slack-gif-creator -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install anthropics/skills slack-gif-creator --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/anthropics/skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/slack-gif-creator .gemini/skills/slack-gif-creator && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "slack-gif-creator" agent skill from https://github.com/anthropics/skills/tree/main/skills/slack-gif-creator into .gemini/skills/slack-gif-creator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "slack-gif-creator", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install anthropics/skills slack-gif-creatorInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add anthropics/skills --skill slack-gif-creator -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/anthropics/skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/slack-gif-creator .github/skills/slack-gif-creator && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "slack-gif-creator" agent skill from https://github.com/anthropics/skills/tree/main/skills/slack-gif-creator into .github/skills/slack-gif-creator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "slack-gif-creator", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add anthropics/skills --skill slack-gif-creator -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install anthropics/skills slack-gif-creator --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/anthropics/skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/slack-gif-creator .opencode/skills/slack-gif-creator && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "slack-gif-creator" agent skill from https://github.com/anthropics/skills/tree/main/skills/slack-gif-creator into .opencode/skills/slack-gif-creator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "slack-gif-creator", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
slack-gif-creatorProvides Slack size and frame limits, Python animation helpers and validators for building animated GIFs sized for emoji and messages.
The skill states Slack's constraints: emoji GIFs at 128x128 are recommended and message GIFs at 480x480, with 10 to 30 frames per second and 48 to 128 colors, and emoji GIFs kept under 3 seconds, since a lower frame rate and fewer colors make smaller files. Frames are drawn with Pillow, either from a user's uploaded image, where the agent first works out whether to animate it directly or use it as inspiration, or from scratch with ImageDraw primitives.
Its design advice is to avoid emoji fonts and assumed pre-packaged graphics, use lines of width 2 or more, add depth with gradient backgrounds and layered shapes, add highlights and glows, use vibrant contrasting colors, and build complex shapes from polygons and ellipses. The Python core has a GIFBuilder in gif_builder that assembles frames and optimizes for Slack, plus easing, frame_composer and validators modules and a requirements.txt.
5 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit dbd4588. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships script files (Python), which the agent can run.
Shell commands in SKILL.md call:
pipFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use pip, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Slack GIF Creator loads about 2k tokens when it runs. Until then it costs about 61 tokens; SKILL.md has 687 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from anthropics/skills at commit dbd4588, republished under its Apache-2.0 licence (© anthropics). 687 words, ~1,961 tokens.
.claude/skills/slack-gif-creator/SKILL.md (or your agent's skills folder). This skill also uses 6 other files; get the full folder from GitHub.A toolkit providing utilities and knowledge for creating animated GIFs optimized for Slack.
Dimensions:
Parameters:
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)If a user uploads an image, consider whether they want to:
Load and work with images using PIL:
from PIL import Image
uploaded = Image.open('file.png')
# Use directly, or just as reference for colors/styleWhen drawing graphics from scratch, use PIL ImageDraw primitives:
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.
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:
create_gradient_background)Make shapes more interesting:
Pay attention to colors:
For complex shapes (hearts, snowflakes, etc.):
Be creative and detailed! A good Slack GIF should look polished, not like placeholder graphics.
core.gif_builder)Assembles frames and optimizes for Slack:
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)core.validators)Check if GIF meets Slack requirements:
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!")core.easing)Smooth motion instead of linear:
from core.easing import interpolate
# Progress from 0.0 to 1.0
t = i / (num_frames - 1)
# Apply easing
y = interpolate(start=0, end=400, t=t, easing='ease_out')
# Available: linear, ease_in, ease_out, ease_in_out,
# bounce_out, elastic_out, back_outcore.frame_composer)Convenience functions for common needs:
from core.frame_composer import (
create_blank_frame, # Solid color background
create_gradient_background, # Vertical gradient
draw_circle, # Helper for circles
draw_text, # Simple text rendering
draw_star # 5-pointed star
)Offset object position with oscillation:
math.sin() or math.cos() with frame indexScale object size rhythmically:
math.sin(t * frequency * 2 * math.pi) for smooth pulseObject falls and bounces:
interpolate() with easing='bounce_out' for landingeasing='ease_in' for falling (accelerating)Rotate object around center:
image.rotate(angle, resample=Image.BICUBIC)Gradually appear or disappear:
Image.blend(image1, image2, alpha)Move object from off-screen to position:
interpolate() with easing='ease_out' for smooth stopeasing='back_out'Scale and position for zoom effect:
Create particles radiating outward:
x += vx, y += vyvy += gravity_constantOnly when asked to make the file size smaller, implement a few of the following methods:
num_colors=48 instead of 128remove_duplicates=True in save()optimize_for_emoji=True auto-optimizes# Maximum optimization for emoji
builder.save(
'emoji.gif',
num_colors=48,
optimize_for_emoji=True,
remove_duplicates=True
)This skill provides:
It does NOT provide:
Note on user uploads: This skill doesn't include pre-built graphics, but if a user uploads an image, use PIL to load and work with it - interpret based on their request whether they want it used directly or just as inspiration.
Be creative! Combine concepts (bouncing + rotating, pulsing + sliding, etc.) and use PIL's full capabilities.
pip install pillow imageio numpy© anthropics, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 6 other files in skills/slack-gif-creator of anthropics/skills.
Open the folder on GitHubat commit dbd4588
We found 40 copies of this SKILL.md (exact, near-identical or edited) in other folders, from 29 other GitHub owners. This page covers the copy in anthropics/skills, which our catalogue first saw on October 7, 2026.
Slack GIF Creator next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Slack GIF Creator this skillanthropics/skills | 180k | 29 repos | ~2k | Automated safety check: Pass | Apache-2.0 | |
| Pixel Gif Makermohitagw15856/pm-claude-skills | 1.4k | — | ~937 | Automated safety check: Pass | MIT | |
| Visual Flow GifAI-Builder-Club/skills | 1.3k | — | ~845 | Automated safety check: Pass | None | |
| Graphic GifVarnan-Tech/opendirectory | 674 | — | ~3k | Automated safety check: Pass | MIT | |
| AnalyzeKumarSashank/motiscope | 122 | — | ~3.1k | Automated safety check: Notes | MIT | |
| Scenario Blender Grease Pencilscenario-labs/skills | 946 | — | ~4.5k | Automated safety check: Pass | MIT |
mohitagw15856/pm-claude-skills
Generate retro pixel-text animated GIFs for Slack, Teams, or a PR comment — scrolling marquees, heartbeat pulses, confetti parties, twinkling sparkles — from a bundled pure-stdlib Python script (no…
AI-Builder-Club/skills
Create animated flow diagrams from articles, workflow notes, architecture sketches, or process descriptions using a JSON specification and a local Python/Pillow renderer.
Varnan-Tech/opendirectory
Creates animated looping GIFs from CSS animations (default) or AI image-to-video.
KumarSashank/motiscope
Analyze a screen recording of an animation to characterize its motion — timing, easing, transforms, and sequencing — so it can be recreated as web code.
scenario-labs/skills
A skill your agent uses when drawing or animating with Grease Pencil in Blender 5.x from Python: 2D or 2.5D illustration, frame-by-frame animation, a cutout or part-based 2D character, strokes with…
HybridAIOne/hybridclaw
Plan, script, render, and stitch Manim Community Edition videos in Python.
anthropics/skills
Guides the design and implementation of Model Context Protocol servers in TypeScript or Python, from tool naming and error messages to evaluation.
anthropics/skills
Handles everyday PDF jobs in Python and on the command line: extract text and tables, merge, split, rotate, watermark, fill forms, encrypt and OCR.
anthropics/skills
Builds multi-component claude.ai HTML artifacts as a small React, TypeScript and Tailwind project, then bundles it into one shareable HTML file.
anthropics/skills
Creates original generative art in two steps: a written algorithmic philosophy, then a p5.js sketch with seeded randomness and an interactive viewer for exploring parameters.
anthropics/skills
Creates original posters and static art as PNG or PDF by first writing a short design philosophy, then expressing it visually on a canvas.
anthropics/skills
Creates, edits and reviews Word documents: new files with docx-js, edits through the underlying XML, plus tracked changes, comments and conversions.
Categories
Provides Slack size and frame limits, Python animation helpers and validators for building animated GIFs sized for emoji and messages. The skill states Slack's constraints: emoji GIFs at 128x128 are recommended and message GIFs at 480x480, with 10 to 30 frames per second and 48 to 128 colors, and emoji GIFs kept under 3 seconds, since a lower frame rate and fewer colors make smaller files. Frames are drawn with Pillow, either from a user's uploaded image, where the agent first works out whether to animate it directly or use it as inspiration, or from scratch with ImageDraw primitives.
Slack GIF Creator fits situations like: making a custom animated emoji for a Slack workspace; building a short animated GIF to post in a Slack message; checking that a GIF fits Slack's size and duration limits; animating an uploaded image for Slack.
Run `npx skills add anthropics/skills --skill slack-gif-creator -a claude-code`. Or copy the skill folder (skills/slack-gif-creator in anthropics/skills) into .claude/skills/slack-gif-creator in your project. Claude Code loads it when a task matches its description.
Run `npx skills add anthropics/skills --skill slack-gif-creator -a codex`. Or copy the skill folder (skills/slack-gif-creator in anthropics/skills) into .agents/skills/slack-gif-creator in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add anthropics/skills --skill slack-gif-creator -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/slack-gif-creator, .gemini/skills/slack-gif-creator, .github/skills/slack-gif-creator and .opencode/skills/slack-gif-creator in your project.
Going by SKILL.md and its folder, Slack GIF Creator needs Python for the scripts in its folder and the command-line tools its instructions call (pip). Our summary lists: Python with Pillow and the packages in requirements.txt.
SKILL.md contains no URLs. Its commands use pip, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Slack GIF Creator is published under the Apache-2.0 licence (from the LICENSE file in the skill folder). It allows redistribution, so the full SKILL.md is shown on this page.
About 2k tokens (SKILL.md is roughly 7.8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Slack GIF Creator: Pixel Gif Maker (mohitagw15856/pm-claude-skills, 1.4k stars), Visual Flow Gif (AI-Builder-Club/skills, 1.3k stars), Graphic Gif (Varnan-Tech/opendirectory, 674 stars) and Analyze (KumarSashank/motiscope, 122 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
anthropics (a GitHub organization, an official publisher) maintains it in anthropics/skills, which has 180,214 GitHub stars. The repository holds 16 skills in this directory. The repository was last updated on October 9, 2026.
Source: anthropics/skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.