Pixel GIF Maker Skill
The most-reacted message in any Slack channel is never the status update — it's the GIF. This skill makes custom ones in a retro pixel style: your words, four animations, eight colors, and a file small enough to drag anywhere. The whole encoder is a bundled pure-stdlib Python script — this library's calculators are dependency-free and deterministic, and so is its confetti.
What This Skill Produces
- A
.gif file (GIF89a, looping) with the user's text in chunky 5×7 pixel type
- One of four animations: scroll (marquee), pulse (heartbeat zoom),
party (hue-cycling text + confetti), sparkle (twinkling stars)
- Sized for chat: typically 10–60KB, well under any upload limit
Required Inputs
Ask for (if not already provided):
- The text — under 24 characters; pixel fonts are for punchlines
("SHIP IT", "1000 STARS", "GG TEAM", "V63 IS LIVE"). Type * for a ♥.
- The mood → mode: victory lap =
party · announcement = scroll ·
emphasis = pulse · appreciation = sparkle
- Optional: colors (
night, plum, teal, mint, gold, coral, white, ink, violet)
and --scale 1-4 (default 3)
Process
- Run the bundled script — no installs, Python 3 stdlib only:
``bash python3 scripts/pixelgif.py --text "SHIP IT" --mode party --out shipit.gif python3 scripts/pixelgif.py --text "GG TEAM *" --mode sparkle --fg gold --bg night --out gg.gif python3 scripts/pixel_gif.py --self-test # verify all four modes, print hashes ``
- Uppercase renders best (the font is A–Z, 0–9, and common punctuation; unknown
characters become ? — warn the user rather than surprise them).
- Same arguments + same
--seed → byte-identical file; change --seed to
reshuffle confetti/star positions.
- Hand back the file path and one line on which mode was chosen and why.
Output Format
The .gif itself, plus:
🎉 shipit.gif — 159×57, 10 frames, party mode (confetti for a launch).
Drag it into Slack. Want it calmer (sparkle) or bigger (--scale 4)?
Quality Checks
(offer the punchline edit: "SHIPPED THE MIGRATION" → "SHIPPED IT")
when in doubt, sparkle
turned into ?
Anti-Patterns
bundled encoder is zero dependencies and deterministic output
celebration tool, not a roast tool; decline and suggest the kind version
scroll mode and say why
custom emoji have their own size rules the user handles in Slack settings