Slack GIF Creator Toolkit
Generates Slack-optimized animated GIFs for both messages and emoji, with built-in validators for Slack's size limits — including the strict 64KB emoji cap.
Purely local toolchain: generates GIFs with PIL/imageio/numpy only; no network calls, no credential access, no destructive operations; common open-source dependencies and MIT license declared. Deductions: the referenced LICENSE.txt is not present in evidence, so license terms and attribution are unverified; no dependency pinning or isolation guidance.
Code is internally consistent; validator/GIFBuilder contracts are clear and missing-file failures produce readable messages. Deductions: emoji drawing hard-depends on macOS system fonts (Apple Color Emoji.ttc), with silent bare-except fallbacks that may render tofu/blank glyphs on other platforms without warning; no tests or edge-case handling documented; static review cannot confirm key paths reproduce.
Trigger conditions are explicit (user requests Slack GIFs/emoji animations), scenario boundaries and message-vs-emoji constraints are thoroughly documented with mitigation strategies. Deductions: English-only docs; unsupported environments not declared; emoji rendering depends on macOS-specific fonts, questionable fit for mainland-China/Chinese-language users' typical environments.
Well-layered documentation: requirements, toolkit structure, per-module examples, optimization strategies, and dependency install notes. Deductions: no versioning or changelog, no maintenance ownership or update path, known limitations (font/platform dependence) undisclosed, full license text not visible.
Covers the full pipeline from animation primitives to constraint validation; the 64KB emoji optimization guidance is concrete, offering clear marginal value over manual creation. Deductions: static review cannot verify outputs actually pass Slack limits; emoji rendering may fail off macOS, undermining direct usability.
Source code is the primary evidence; docstrings and examples can be statically cross-checked. Deductions: no test suite, no CI evidence, no third-party execution records or sample outputs; all 'meets Slack requirements' claims are independently unreproducible — evidence is single-source.
- Emoji drawing depends on macOS-specific fonts (Apple Color Emoji.ttc); on Linux/Windows it may render blank/tofu glyphs, silently degraded via bare excepts — verify font availability on sample frames before use.
- Dependencies (pillow/imageio/numpy) are unpinned with no lockfile; this static review executed nothing, so actual output compliance with Slack limits must be verified by the user.
- The referenced LICENSE.txt is absent from the evidence; license terms and maintenance ownership are unverified, and the skill has no version number or update path, so long-term upkeep is unknown.
What does this skill do, and when should you use it?
This is a skill inside the Mini-Agent repository, located at mini_agent/skills/slack-gif-creator, providing a toolkit for building animated GIFs tailored to Slack. It encodes Slack's technical requirements (message GIFs ~2MB at 480x480; emoji GIFs strictly 64KB at 128x128) and ships validators for size and dimensions. The toolkit has three layers: validators, composable animation primitives (shake, bounce, spin, pulse, fade, zoom, explode, wiggle, slide, flip, morph, move, kaleidoscope), and optional helpers (GIF assembly, outlined text, color palettes, particle effects, easing functions). Its stated philosophy is to offer building blocks rather than rigid recipes, leaving creative composition open. The skill ships under the MIT license as one of 15 skills bundled in Mini-Agent.
It reads natural-language requests for Slack GIFs or emoji animations (e.g. "make me a GIF for Slack of X doing Y"), then generates the animation via Python: assembling frames with GIFBuilder, producing motion with composable primitives (shake, bounce, spin, pulse, fade, zoom, explode, wiggle, slide, flip, morph, move, kaleidoscope), rendering outlined text via the typography module, picking palettes from color_palettes, and applying smooth interpolation via easing functions. It then saves the GIF with builder.save() and runs check_slack_size, validate_dimensions, and validate_gif to confirm the file meets Slack's size and dimension limits; if over budget, it applies the documented strategies — fewer frames, fewer colors, smaller dimensions — and retries.
- A community or ops manager who needs a 480x480, 15-20 FPS message GIF for a Slack channel and must stay under the ~2MB upload limit
- A developer creating a custom Slack emoji animation at 128x128 that must pass the strict 64KB limit, needing automated size validation to avoid upload failures
- A designer experimenting with combinations of shake, bounce, and explode effects to refine an emoji animation concept
- Any Mini-Agent user who wants to describe an animation in plain language ("make a GIF of X doing Y") and get a ready-to-upload GIF file
What are this skill's strengths and limitations?
- Validators encode Slack's official constraints, with automatic size warnings on save — especially valuable for the strict 64KB emoji cap
- 13 composable animation primitives plus easing functions give high flexibility instead of rigid templates
- Concrete compression strategies for emoji GIFs (10-15 frames, 32-48 colors, no gradients)
- Pure Python (pillow/imageio/numpy) with no external services or network dependency for generation itself
- No dedicated test suite or rendered demo assets in the source to evidence output quality
- Maintenance status and version compatibility beyond the repo description are not documented
- The 64KB emoji limit remains genuinely hard; manual iteration on parameters is often required
- Installation is documented only within the Mini-Agent/Agent Skills context; standalone use requires setting up the Python environment yourself
How do you install this skill?
The skill ships inside the Mini-Agent repository. To install the collection:
- Install uv: curl -LsSf https://astral.sh/uv/install.sh | sh
- Quick Start mode: uv tool install git+https://github.com/MiniMax-AI/Mini-Agent.git, then run the official setup script and fill in your MiniMax API key and api_base in ~/.mini-agent/config/config.yaml
- Development mode: git clone https://github.com/MiniMax-AI/Mini-Agent.git, run uv sync, and initialize skills with git submodule update --init --recursive
The skill lives at mini_agent/skills/slack-gif-creator/. The repo does not document standalone installation for this single skill; its Python dependencies are pillow, imageio, and numpy (pip install pillow imageio numpy).
How do you use this skill?
Trigger it in Mini-Agent with natural language, e.g.: "Make me a Slack emoji GIF of a 😱 emoji shaking." The skill applies automatically when a Slack GIF is requested. You can also use mini_agent/skills/slack-gif-creator/ directly as a Python library: import GIFBuilder from core.gif_builder, generate frames with primitives like create_shake_animation from templates.shake, add them via builder.add_frame(), then save with builder.save('emoji.gif', num_colors=48, optimize_for_emoji=True) and verify with check_slack_size.
How does this skill compare with similar options?
The SKILL.md references Anthropic's anthropics/skills collection as part of the same ecosystem, but the source provides no specific competing-skill details for a direct comparison.