# Pixel Gif Maker

> 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 PIL, no dependencies, byte-exact deterministic). Use when someone wants a celebration GIF, a 'ship it' GIF, a custom Slack GIF, a launch-day animation, or to make a team win feel like one. Produces a ready-to-drag .gif file.

- Skill: `mohitagw15856/pixel-gif-maker` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds add mohitagw15856/pixel-gif-maker`
- Raw SKILL.md: https://api.skillmd.com/api/skills/mohitagw15856/pixel-gif-maker/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Integrations & APIs
- Author: Mohit Aggarwal (https://skillmd.com/u/mohitagw15856)
- Updated: 2026-09-07
- Page: https://skillmd.com/skills/mohitagw15856/pixel-gif-maker

---


# 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

1. Run the bundled script — no installs, Python 3 stdlib only:
   ```bash
   python3 scripts/pixel_gif.py --text "SHIP IT" --mode party --out shipit.gif
   python3 scripts/pixel_gif.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
   ```
2. Uppercase renders best (the font is A–Z, 0–9, and common punctuation; unknown
   characters become `?` — warn the user rather than surprise them).
3. Same arguments + same `--seed` → byte-identical file; change `--seed` to
   reshuffle confetti/star positions.
4. 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

- [ ] Text length checked BEFORE generating — over 24 characters, ask them to cut
      (offer the punchline edit: "SHIPPED THE MIGRATION" → "SHIPPED IT")
- [ ] Mode matches the moment — a layoff-week channel does not get confetti;
      when in doubt, sparkle
- [ ] Script ran without error and the reported file size is under ~200KB
- [ ] Any character outside the font set was flagged to the user, not silently
      turned into `?`

## Anti-Patterns

- [ ] Do not reach for image libraries or external services — the point of the
      bundled encoder is zero dependencies and deterministic output
- [ ] Do not generate GIFs containing colleagues' names in mocking contexts —
      celebration tool, not a roast tool; decline and suggest the kind version
- [ ] Do not cram sentences in — if the user insists past 24 characters, use
      scroll mode and say why
- [ ] Do not promise Slack emoji-size rendering — this makes message GIFs;
      custom emoji have their own size rules the user handles in Slack settings

