npx skills add ...
npx skills add inference-sh/skills --skill social-media-carousel
Multi-slide carousel design for Instagram, LinkedIn, and Twitter/X with layout rules and hooks. Covers slide structure, text hierarchy, swipe psychology, and platform-specific specs. Use for: carousel posts, Instagram carousels, LinkedIn carousels, slide posts, educational content. Triggers: carousel, instagram carousel, linkedin carousel, slide post, carousel design, swipe post, multi-image post, carousel template, educational carousel, carousel content, instagram slides, linkedin slides
npx skills add inference-sh/skills --skill social-media-carousel
Install the belt CLI skill:
npx skills add belt-sh/cli
Design high-engagement carousel posts via inference.sh CLI.
Requires inference.sh CLI (
belt). Install instructions
| Platform | Dimensions | Slides | Aspect Ratios |
|---|---|---|---|
| 1080 x 1080 px | Up to 20 | 1:1 (default), 4:5, 16:9 | |
| 1080 x 1080 px or 1080 x 1350 | Up to 20 | 1:1, 4:5 | |
| Twitter/X | 1080 x 1080 px | Up to 4 | 1:1, 16:9 |
| 1080 x 1080 px | Up to 10 | 1:1, 4:5 |
Use 1080 x 1350 (4:5) on Instagram and LinkedIn — takes up more screen real estate in the feed than square.
| Slide | Purpose | Content |
|---|---|---|
| 1 | Hook | Bold claim, question, or promise — stops the scroll |
| 2 | Context | Why this matters, set up the problem |
| 3-6 | Value | One point per slide, numbered |
| 7 | CTA | Follow, save, share, comment, visit link |
The most important slide. If this fails, nobody swipes.
| Hook Type | Example |
|---|---|
| Bold claim | "90% of landing pages make this mistake" |
| Question | "Why do your ads get clicks but no conversions?" |
| Number + promise | "7 Python tricks I wish I learned sooner" |
| Contrarian | "Stop writing blog posts (do this instead)" |
| Before/after | Show transformation |
One point per slide. Never cram multiple ideas.
| Element | Size (at 1080px) | Weight |
|---|---|---|
| Slide number | 96-120px | Black (900) |
| Heading | 48-64px | Bold (700-800) |
| Body text | 24-28px | Regular (400) |
| Caption/tag | 18-22px | Medium (500) |
| Rule | Value |
|---|---|
| Max words per slide | 30-40 |
| Max lines of body text | 4-5 |
| Line height | 1.5-1.6 |
| Font | Sans-serif (Inter, Montserrat, Poppins) |
| Text contrast | 4.5:1 minimum (WCAG AA) |
| Element | Keep Consistent Across All Slides |
|---|---|
| Background color/gradient | Same palette, slight variations OK |
| Font family | Same font throughout |
| Text alignment | Same position (left or center) |
| Margins/padding | Same spacing |
| Accent color | Same highlight color |
| Numbering style | Same format (01, 02 or 1., 2.) |
| Principle | Application |
|---|---|
| Curiosity gap | Hook promises value that requires swiping |
| Numbered progress | "3/7" creates completion drive |
| Visual continuity | Consistent design signals "there's more" |
| Increasing value | Best tip last — rewards completing |
| Swipe cue | Arrow or "Swipe →" on slide 1 |
| Mistake | Problem | Fix |
|---|---|---|
| Weak hook (slide 1) | Nobody swipes | Bold claim, question, or number + promise |
| Too much text per slide | Overwhelming, stops reading | Max 30-40 words per slide |
| No visual consistency | Looks like different posts | Same colors, fonts, margins throughout |
| No swipe indicator | People don't realize there's more | Add "Swipe →" or arrow on slide 1 |
| No CTA on last slide | Missed engagement opportunity | Ask to save, follow, share, or comment |
| Inconsistent numbering | Feels disorganized | Same number format on every content slide |
| Cramming 2+ ideas per slide | Hard to digest | One point per slide, always |
| Square format on Instagram | Wastes feed real estate | Use 1080x1350 (4:5) for more visibility |
Browse all apps: belt app list