סקיל Slack GIF
slack-gif-creator הוא סקיל רשמי של Anthropic שמלמד את קלוד קוד ליצור אנימציות GIF מותאמות לסלאק. במקום לחפש GIF מוכן ברשת, מתארים מה רוצים, וקלוד מצייר ומנפיש אותו בקוד, עם התאמה מדויקת למגבלות של סלאק: גודל, מספר צבעים, קצב פריימים ומשקל קובץ. הסקיל כולל ידע על עקרונות אנימציה, כלי אימות, ואסטרטגיות לאופטימיזציה, כך שה-GIF שיוצא קליל ונראה טוב גם כאימוג'י קטן וגם כהודעה. בעבודות האוטומציה שאני בונה, יצירת תוכן ויזואלי בקוד היא דרך מצוינת להפיק נכסים בקנה מידה. במדריך תקבלו את זרימת העבודה המלאה, ארבעה תרחישי שימוש, וצ'קליסט לעבודה נכונה.
פקודת התקנה
npx skills add anthropics/skills@slack-gif-creator -g -y
ההתקנה מתבצעת דרך מנהל החבילות הרשמי של הסקילים בפקודה אחת. הסקיל הוא חבילה פתוחה מהמאגר הרשמי של Anthropic, ויוצר את ה-GIF באמצעות קוד פייתון מקומי. אפשר להוריד ולבדוק את הקוד דרך הכפתורים שבראש העמוד.
מה הסקיל כולל?
הסקיל מתעד זרימת עבודה ליצירת GIF: המגבלות של סלאק, ציור פריימים בקוד, עקרונות אנימציה, וכלי אופטימיזציה שמקטינים את משקל הקובץ.
קוד הסקיל המלא
---
name: slack-gif-creator
description: Knowledge and utilities for creating animated GIFs optimized for Slack. Provides constraints, validation tools, and animation concepts. Use when users request animated GIFs for Slack like "make me a GIF of X doing Y for Slack."
license: Complete terms in LICENSE.txt
---
# Slack GIF Creator
A toolkit providing utilities and knowledge for creating animated GIFs optimized for Slack.
## Slack Requirements
**Dimensions:**
- Emoji GIFs: 128x128 (recommended)
- Message GIFs: 480x480
**Parameters:**
- FPS: 10-30 (lower is smaller file size)
- Colors: 48-128 (fewer = smaller file size)
- Duration: Keep under 3 seconds for emoji GIFs
## Core Workflow
```python
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)
```
## Drawing Graphics
### Working with User-Uploaded Images
If a user uploads an image, consider whether they want to:
- **Use it directly** (e.g., "animate this", "split this into frames")
- **Use it as inspiration** (e.g., "make something like this")
Load and work with images using PIL:
```python
from PIL import Image
uploaded = Image.open('file.png')
# Use directly, or just as reference for colors/style
```
### Drawing from Scratch
When drawing graphics from scratch, use PIL ImageDraw primitives:
```python
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.
### Making Graphics Look Good
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**:
- Use gradients for backgrounds (`create_gradient_background`)
- Layer multiple shapes for complexity (e.g., a star with a smaller star inside)
**Make shapes more interesting**:
- Don't just draw a plain circle - add highlights, rings, or patterns
- Stars can have glows (draw larger, semi-transparent versions behind)
- Combine multiple shapes (stars + sparkles, circles + rings)
**Pay attention to colors**:
- Use vibrant, complementary colors
- Add contrast (dark outlines on light shapes, light outlines on dark shapes)
- Consider the overall composition
**For complex shapes** (hearts, snowflakes, etc.):
- Use combinations of polygons and ellipses
- Calculate points carefully for symmetry
- Add details (a heart can have a highlight curve, snowflakes have intricate branches)
Be creative and detailed! A good Slack GIF should look polished, not like placeholder graphics.
## Available Utilities
### GIFBuilder (`core.gif_builder`)
Assembles frames and optimizes for Slack:
```python
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)
```
### Validators (`core.validators`)
Check if GIF meets Slack requirements:
```python
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!")
```
### Easing Functions (`core.easing`)
Smooth motion instead of linear:
```python
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_out
```
### Frame Helpers (`core.frame_composer`)
Convenience functions for common needs:
```python
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
)
```
## Animation Concepts
### Shake/Vibrate
Offset object position with oscillation:
- Use `math.sin()` or `math.cos()` with frame index
- Add small random variations for natural feel
- Apply to x and/or y position
### Pulse/Heartbeat
Scale object size rhythmically:
- Use `math.sin(t * frequency * 2 * math.pi)` for smooth pulse
- For heartbeat: two quick pulses then pause (adjust sine wave)
- Scale between 0.8 and 1.2 of base size
### Bounce
Object falls and bounces:
- Use `interpolate()` with `easing='bounce_out'` for landing
- Use `easing='ease_in'` for falling (accelerating)
- Apply gravity by increasing y velocity each frame
### Spin/Rotate
Rotate object around center:
- PIL: `image.rotate(angle, resample=Image.BICUBIC)`
- For wobble: use sine wave for angle instead of linear
### Fade In/Out
Gradually appear or disappear:
- Create RGBA image, adjust alpha channel
- Or use `Image.blend(image1, image2, alpha)`
- Fade in: alpha from 0 to 1
- Fade out: alpha from 1 to 0
### Slide
Move object from off-screen to position:
- Start position: outside frame bounds
- End position: target location
- Use `interpolate()` with `easing='ease_out'` for smooth stop
- For overshoot: use `easing='back_out'`
### Zoom
Scale and position for zoom effect:
- Zoom in: scale from 0.1 to 2.0, crop center
- Zoom out: scale from 2.0 to 1.0
- Can add motion blur for drama (PIL filter)
### Explode/Particle Burst
Create particles radiating outward:
- Generate particles with random angles and velocities
- Update each particle: `x += vx`, `y += vy`
- Add gravity: `vy += gravity_constant`
- Fade out particles over time (reduce alpha)
## Optimization Strategies
Only when asked to make the file size smaller, implement a few of the following methods:
1. **Fewer frames** - Lower FPS (10 instead of 20) or shorter duration
2. **Fewer colors** - `num_colors=48` instead of 128
3. **Smaller dimensions** - 128x128 instead of 480x480
4. **Remove duplicates** - `remove_duplicates=True` in save()
5. **Emoji mode** - `optimize_for_emoji=True` auto-optimizes
```python
# Maximum optimization for emoji
builder.save(
'emoji.gif',
num_colors=48,
optimize_for_emoji=True,
remove_duplicates=True
)
```
## Philosophy
This skill provides:
- **Knowledge**: Slack's requirements and animation concepts
- **Utilities**: GIFBuilder, validators, easing functions
- **Flexibility**: Create the animation logic using PIL primitives
It does NOT provide:
- Rigid animation templates or pre-made functions
- Emoji font rendering (unreliable across platforms)
- A library of pre-packaged graphics built into the skill
**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.
## Dependencies
```bash
pip install pillow imageio numpy
```
מה זה slack-gif-creator ולמה הסקיל הזה שונה?
slack-gif-creator פותר משימה קטנה אך מעצבנת: ליצור GIF מותאם לסלאק שנראה טוב ולא כבד מדי. סלאק מציב מגבלות נוקשות על גודל, צבעים ומשקל, ו-GIF שלא עומד בהן נראה רע או לא נטען. הסקיל יודע את כל המגבלות האלה ובונה את ה-GIF כך שיתאים מההתחלה.
מה שמייחד אותו הוא שהוא יוצר את האנימציה בקוד, לא מחפש משהו מוכן. קלוד מצייר פריימים בעזרת ספריית PIL, מיישם עקרונות אנימציה לתנועה חלקה, ומריץ אופטימיזציה שמקטינה את מספר הצבעים והמשקל. הוא גם כולל כלי אימות שמוודאים שהתוצאה עומדת בדרישות של סלאק לפני שמעלים אותה. הכול קורה מקומית, בלי שליחת מידע החוצה.
ההבדל מורגש בשליטה ובהתאמה. במקום GIF גנרי שמצאתם ברשת, מקבלים אנימציה מותאמת בדיוק לצורך. בשילוב עם סקיל theme-factory לערכות צבעים, אפשר אפילו להתאים את ה-GIF לצבעי המותג, וזה הופך אותו לנכס מיתוגי קטן ולא רק לבדיחה פנימית.
מה slack-gif-creator נותן לקלוד קוד?
הסקיל מוסיף לקלוד יכולת יצירה ויזואלית ממוקדת: לבנות אנימציות GIF איכותיות וקלילות בקוד, מותאמות בדיוק לסלאק.
התאמה למגבלות סלאק
הסקיל מכיר את כל הדרישות של סלאק: ממדים לאימוג'י ולהודעה, טווח צבעים, קצב פריימים ומשקל קובץ. הוא בונה את ה-GIF כך שיעמוד בהן מההתחלה, וכך נמנעים מקובץ שנראה רע או שלא נטען.
ציור ואנימציה בקוד
במקום לחפש GIF מוכן, קלוד מצייר את הפריימים בעצמו עם ספריית PIL ומיישם עקרונות אנימציה לתנועה חלקה. כך מקבלים בדיוק את מה שרוצים, מותאם אישית, ולא פשרה ממאגר כללי.
אופטימיזציה ואימות
הסקיל מריץ אסטרטגיות אופטימיזציה שמקטינות את מספר הצבעים ואת משקל הקובץ, וכולל כלי אימות שמוודאים שהתוצאה עומדת בדרישות סלאק. ה-GIF יוצא קליל ותקין, מוכן להעלאה בלי הפתעות.
יצירה מקומית ובטוחה
כל התהליך קורה מקומית במחשב שלכם בעזרת קוד פייתון, בלי שליחת מידע לשרת חיצוני. אתם מקבלים קובץ GIF פלט ותו לא, וזה הופך את הסקיל לבטוח גם בסביבות עם דרישות פרטיות.
ארבע היכולות הופכות את קלוד ליוצר GIF מהיר ומדויק. בעבודות שלי, יצירת נכסים ויזואליים בקוד היא דרך מצוינת להפיק תוכן מותאם במהירות ובלי תלות במאגרים חיצוניים.
למי הסקיל הזה מתאים?
צוותים שעובדים בסלאק: זה הקהל המובהק. הסקיל מאפשר ליצור אימוג'ים ו-GIF מותאמים לצוות, מבדיחות פנימיות ועד אנימציות חגיגה, בלי לחפש ברשת. השילוב עם סקיל polish מלטש כל פרט ויזואלי.
מנהלי קהילה ותרבות ארגונית: GIF מותאם הוא דרך מצוינת לבנות תרבות צוות. הסקיל מאפשר להפיק אותם בקלות ובמהירות, ולהתאים אותם לרגעים ולמסרים ספציפיים.
אנשי שיווק ותוכן: אנימציות קלילות מושכות את העין. הסקיל מאפשר ליצור אותן בקוד, מותאמות לצבעי המותג ולמסר, ולהשתמש בהן בערוצים פנימיים וחיצוניים.
מפתחים שאוהבים אוטומציה: יצירת GIF בקוד פותחת דלת לאוטומציה, למשל הפקת אנימציות חוגגות לאירועים במערכת. גם בעבודות הפיתוח שלי, יצירת נכסים ויזואליים בקוד חוסכת תלות בכלים חיצוניים.
מעצבים סקרנים: הסקיל הוא דרך נחמדה ללמוד אנימציה מבוססת קוד, עם תוצאה מיידית שאפשר לשתף.
מי שפחות יתאים: מי שצריך הפקת וידאו מורכבת או אנימציה תלת-ממדית כבדה ימצא את הסקיל ממוקד מדי. הוא מבריק דווקא ב-GIF קצרים וקלילים לסלאק ולצ'אטים.
איך slack-gif-creator עזר לי בפרויקטים אמיתיים
אימוג'י צוות מותאם אישית
צוות רצה אימוג'י ייחודי משלו לסלאק. במקום לחפש משהו דומה ברשת, תיארתי את הרעיון והסקיל צייר וניפש אותו בקוד, בגודל ובמשקל המדויקים שסלאק דורש. האימוג'י נכנס לשימוש יומיומי והפך לחלק מהשפה של הצוות.
GIF חגיגה לאירוע מערכת
רציתי שכל פעם שמשהו מצליח במערכת, ישלח GIF חגיגה לסלאק. הסקיל יצר אנימציה קלילה בקוד, מה שאפשר לשלב אותה בתהליך אוטומטי. הרגע הקטן הזה הוסיף שמחה לצוות בלי תלות במאגר חיצוני.
GIF ממותג בצבעי החברה
לקוח רצה אנימציות בצבעי המותג שלו. שילבתי את הסקיל עם ערכת צבעים, וה-GIF יצאו תואמים לזהות החזותית. במקום בדיחה גנרית, קיבלנו נכס ויזואלי קטן שמשדר מקצועיות ומיתוג.
אופטימיזציה שפתרה קובץ כבד
GIF שיצרתי היה כבד מדי לסלאק. כלי האופטימיזציה של הסקיל הקטינו את מספר הצבעים ואת המשקל בלי לפגוע באיכות הנראית. הקובץ עבר את דרישות סלאק ונטען מהר, וזה חסך ניסוי וטעייה ידני.
ארבעת המקרים מראים שהסקיל הופך יצירת GIF ממשימה מתסכלת לתהליך מהיר ומדויק. כשהאנימציה נוצרת בקוד ומותאמת מההתחלה, מקבלים בדיוק את מה שרוצים, קליל, תקין, ולעיתים אפילו ממותג.
סיכום
סקיל slack-gif-creator הוא כלי כיפי ושימושי לכל מי שעובד בסלאק. הוא מאפשר ליצור אנימציות GIF מותאמות בקוד, עם התאמה מדויקת למגבלות סלאק ואופטימיזציה שמשאירה אותן קלילות, בלי לחפש משהו מוכן ברשת.
אם אתם מתחילים, תארו לקלוד GIF שתרצו לסלאק, למשל אימוג'י קטן שקופץ, ותנו לסקיל לצייר ולנפיש אותו. תקבלו קובץ מוכן להעלאה תוך דקות. משם, כל רעיון ויזואלי קטן יכול להפוך לאנימציה.
בפוסטים הבאים אמשיך לסקור סקילים יצירתיים ושימושיים. האתר של דביר נעמן מרכז את כל הכלים, השיטות והליווי שאני מציע לעסקים שרוצים לעבוד חכם עם בינה מלאכותית.
שיתוף הסקיל
שאלות ותשובות
מה זה בעצם הסקיל slack-gif-creator?
זה סקיל רשמי של Anthropic שמלמד את קלוד קוד ליצור אנימציות GIF מותאמות לסלאק. מתארים מה רוצים, וקלוד מצייר ומנפיש את ה-GIF בקוד, עם התאמה מדויקת למגבלות של סלאק. הסקיל כולל ידע על אנימציה, כלי אימות ואופטימיזציה לקובץ קליל ותקין.
איך הסקיל יוצר את ה-GIF בפועל?
קלוד מצייר את הפריימים בעזרת ספריית PIL של פייתון ומרכיב מהם אנימציה. כל זה קורה מקומית במחשב שלכם, בלי שליחת מידע החוצה. בסוף נוצר קובץ GIF מותאם, אחרי שעבר אופטימיזציה ואימות מול דרישות סלאק. כך מקבלים אנימציה מדויקת ובטוחה.
איך מתקינים את הסקיל בקלוד קוד?
בפקודה אחת דרך מנהל החבילות הרשמי של הסקילים, כפי שמופיע בקופסת ההתקנה למעלה. הסקיל הוא חבילה פתוחה מהמאגר הרשמי של Anthropic. אחרי ההתקנה אפשר לבקש מקלוד ליצור GIF לסלאק, והוא ינחה את התהליך מהרעיון ועד הקובץ המוכן.
האם הסקיל בטוח להרצה?
כן. הוא יוצר את ה-GIF באמצעות קוד פייתון מקומי בלבד, וכותב קובץ פלט אחד. אין שליחת קוד או מידע לשרת חיצוני, אין שימוש במפתחות API, ואין טלמטריה. כיוון שהכול מקומי, הסקיל מתאים גם לסביבות עם דרישות פרטיות מחמירות.
מה ההבדל בין הסקיל לבין חיפוש GIF מוכן?
GIF מוכן ברשת הוא פשרה: לא בדיוק מה שרציתם, ולעיתים כבד מדי לסלאק. הסקיל יוצר את ה-GIF מותאם אישית בקוד, בדיוק לפי הרעיון, הגודל והמשקל הנדרשים. אפשר אפילו להתאים אותו לצבעי המותג, מה שהופך אותו לנכס ולא רק לבדיחה כללית.
האם אפשר להתאים את ה-GIF לצבעי המותג?
בהחלט. כיוון שה-GIF נוצר בקוד, אפשר לקבוע בדיוק את הצבעים. בשילוב עם סקיל ערכות צבעים, אפשר להתאים את האנימציה לזהות החזותית של החברה, וכך להפוך אימוג'י קטן לנכס מיתוגי שמשדר מקצועיות גם בצ'אט הפנימי.
האם הסקיל מתאים גם למי שאינו מתכנת?
כן. אתם מתארים בשפה חופשית מה תרצו שה-GIF יראה, וקלוד מתרגם את זה לקוד ומפיק את הקובץ. אין צורך לדעת לתכנת או להכיר את ספריית PIL. הסקיל מטפל בצד הטכני, ואתם מקבלים אנימציה מוכנה להעלאה.
האם הסקיל מתאים רק לסלאק?
הוא מותאם במיוחד למגבלות של סלאק, ולכן מצטיין שם. עם זאת, אותם עקרונות של יצירת GIF קל ומותאם רלוונטיים גם לפלטפורמות צ'אט אחרות. הקובץ שנוצר הוא GIF סטנדרטי, כך שאפשר להשתמש בו גם מחוץ לסלאק, רק לשים לב למגבלות של הפלטפורמה הספציפית.