๐ What this is: a repeatable automation that turns Claude Code + Paper into a carousel factory. You describe the post, Claude researches it, writes a slide-by-slide script for your approval, designs every slide on a real design canvas, scrapes real web assets, and exports finished Instagram carousels (and even animated video slides). This guide covers the one-time setup, then exactly how to run it.
โก The 30-second version
- Set up once โ install Claude Code, drop in the framework file +
/carouselskill, and connect 4 tools (Paper, Firecrawl, a components library, and a tiny video-export script). - Run it โ type
/carousel. Claude asks a short intake (topic, audience, format, and your 3 reference carousels), researches, and writes a script. - Approve the script โ nothing gets designed until you say go.
- Claude builds + exports โ finished PNGs (and MP4s for animated slides) land in a dated folder, with a caption.
๐งฐ Part 1 ยท What you'll need
| Thing | Why | Cost |
| Claude Code (CLI / desktop app) | The brain that runs the whole workflow | Claude plan |
| Paper (paper.design desktop app) | The design canvas Claude draws each slide on | Free tier works |
| Firecrawl API key | Scrapes real logos / screenshots / copy off live sites | Free tier works |
| A component/shader library (e.g. 21st.dev ยท Magic MCP) | Gives Claude real, polished UI to drop in instead of reinventing it | Free tier works |
| Node.js + ffmpeg + Google Chrome | The headless pipeline that exports animated slides to MP4 | Free |
| 3 reference carousels you love | Defines the visual style Claude will match (see Part 3) | โ |
๐ง Part 2 ยท Setup (one time, ~30 min)
Step 1 โ Install Claude Code
Install Claude Code (CLI, desktop, or IDE extension) and sign in. Create a dedicated project folder for your carousels, e.g. CarouselWorkflow/, and open it in Claude Code.
mkdir CarouselWorkflow && cd CarouselWorkflow
Step 2 โ Add the framework file + the /carousel skill
Two files make the automation repeatable:
CAROUSEL-FRAMEWORK.mdat the project root โ the "source of truth" that defines the pipeline, the craft rules, slide archetypes, and your style system. Claude reads this before every build.- A
/carouselskill (in.claude/skills/carousel/) โ a short instruction file that tells Claude to follow the framework: run intake โ research โ get script approval โ build in Paper โ QA โ export.
๐ก The skill enforces two hard gates: never skip intake, and never build before you approve the script. That's what keeps results on-brand.
Step 3 โ Connect Paper (the design canvas)
Install the Paper desktop app and connect its MCP plugin to Claude Code (the paper-desktop plugin). This lets Claude read and write every node on the canvas โ text, color, layout, images. Once connected, Claude can create artboards (1080ร1350), lay out slides in HTML, screenshot its own work, and export PNGs.
๐ The key distinction: Claude can't touch a design file on its own โ the Paper MCP is the bridge that gives it hands on the canvas.
Step 4 โ Connect Firecrawl (real assets)
Get a Firecrawl API key and add the Firecrawl MCP server to Claude Code:
claude mcp add firecrawl -e FIRECRAWL_API_KEY=fc-your-key-here -- npx -y firecrawl-mcp
Now Claude can scrape a real site and pull back its logo, a full-page screenshot, and clean markdown โ so your slides use real web assets instead of placeholder gray boxes. (Verify it works by asking Claude to scrape one site before you rely on it.)
Step 5 โ Connect a component / shader library
Wire in a UI component source such as 21st.dev (via the Magic MCP) plus a shader/background library (e.g. shadcn/ui for primitives, ShaderGradient for animated gradients). This gives Claude real, polished components to embed โ buttons, cards, gradients โ instead of hand-rolling everything.
Step 6 โ Set up the MP4 export pipeline (for animated slides)
Animated slides are built as self-contained HTML files. To turn them into crisp MP4s without screen recording, use a tiny headless pipeline:
# one-time, inside your project
npm init -y && npm i puppeteer-core@23
# (requires Google Chrome + ffmpeg installed)
A small capture.js script renders each animation frame-by-frame in headless Chrome at 2ร and stitches them with ffmpeg into an exact 1080ร1350 h.264 MP4. One command per animated slide:
node capture.js "file://$PWD/slide1.html" slide1.mp4 poster.png 12 30 4
# args: <url> <out.mp4> <poster.png> <durationSec> <fps> <cssOffsetSec>
โ This replaces screen-recording entirely โ it's sharper, exactly the right size, and repeatable.
๐ Part 3 ยท How to run a carousel
Type /carousel in Claude Code. The pipeline always runs in this order:
INTAKE โ RESEARCH โ SCRIPT (you approve) โ BUILD โ QA โ EXPORT
3a ยท Intake โ the questions Claude asks first
Claude batches a few quick questions before anything is designed:
- Topic + angle โ what's the story, and what's your take? (news drop / tutorial / listicle / hot take / case study)
- Audience + payoff โ who's it for, and what's the one thing they walk away with?
- Hook feeling โ should slide 1 trigger curiosity, FOMO, controversy, or "save this" utility?
- Format โ platform + ratio (default Instagram 1080ร1350), slide count, and whether any slide is animated.
- CTA โ follow / save / comment a keyword / link in bio?
- Real assets โ any URLs to scrape, screenshots to embed, stats, or handles to credit.
3b ยท ๐ฌ The reference-carousels question (this defines your look)
This is the most important style question. Claude will ask:
๐ฌ "Can you give me maybe three reference carousels to work off of so that I can get the desired carousel that you want for theme designs?"
Drop in 3 carousels whose style you want to emulate (screenshots or links). Claude studies them and locks a reusable style preset from them โ palette, type scale, background/texture, a recurring character or masthead, and the small "furniture" that repeats on every slide. Everything after this stays consistent with those references.
๐ Tip: pick references that actually share a vibe. Three wildly different looks give a muddy result; three cohesive ones give a crisp, on-brand system.
3c ยท Research โ Script โ Approval
- Research: Claude pulls live sources (and scrapes real assets via Firecrawl), saving a topic summary with stats + sources.
- Script: Claude writes a per-slide script โ for each slide: archetype, headline, support copy, the artifact + its data, and the source.
- Approval gate: you review and approve the script before Claude opens Paper. Tweak freely here; it's cheap to change words, expensive to rebuild slides.
3d ยท Build โ QA โ Export
- Build: Claude creates the artboards, builds a consistent masthead/footer once, then lays out each slide, screenshotting and self-critiquing as it goes.
- QA: full-deck pass โ overlaps, contrast, alignment, consistent margins, an artifact on every slide, the squint test on slide 1.
- Export: finished
slide_1.png โฆ slide_N.png(plus.mp4for any animated slide) land in a dated folder with a ready-to-pastecaption.txt.
๐จ Part 4 ยท What kind of carousels do you want to make?
Before (or during) intake, decide the shape of the post. These choices, plus your 3 references, fully define the output.
Style
- Visual theme โ defined by your 3 reference carousels (Part 3b). Claude derives the palette, fonts, texture/background, recurring character, and repeating furniture from them.
- Density โ airy (one idea per slide, big margins) or dense (stacked artifacts, busy margins).
- Voice โ cozy/lowercase, or confident/editorial. (Usually follows your references.)
Format
- Slide count โ news drops โ 7; tutorials โ 8โ9; listicles = hook + N items + recap + CTA.
- Motion โ keep it all static PNGs, or make 1โ2 slides animated MP4s (great for launches / hype posts).
Common carousel types
| Type | What it's good for |
| News drop | A launch or announcement, with numbers + proof |
| Tutorial | A step-by-step "how to do X" |
| Listicle | "N tools / tips / skills," one per slide |
| Hot take | A strong opinion + evidence |
| Case study | A result + how it was achieved |
โ Part 5 ยท The craft rules (why it doesn't look AI-generated)
These are baked into the framework so every carousel feels authored, not auto-generated:
- Every slide ships an artifact โ a prompt card, UI mockup, real screenshot, chart, or character scene. A typography-only slide is a draft, not a slide.
- Texture or furniture, always โ a background texture or consistent corner/masthead system. Flat default-white reads as generated.
- A recurring character or masthead โ makes the whole feed feel like one author made it.
- Plausible specificity โ real handles, real numbers, real dates. Generic "Lorem / User123" kills it.
- Imperfection on purpose โ slight rotations, an overlapping sticker, a hand-drawn underline, an aside in parentheses.
- Max 3 typefaces, but extreme scale contrast (tiny mono label next to a giant headline).
- One accent color does the heavy lifting; dark slabs act as the "second color."
- Copy sounds like a person โ contractions, asides, second person; never "In today's fast-paced world."
- Banned: purple gradients, Inter-only, centered-everything, symmetric 3-icon grids, generic ๐๐ฅ, drop shadows on text.
- The squint test โ at thumbnail size, slide 1 must still read its 3โ5 word promise.
๐งฉ Part 6 ยท Slide archetypes & story arcs
Claude picks one archetype per slide (each has a known layout recipe):
- Cover / Hook โ big claim + one visual anchor + a teaser line
- Setup / Problem โ short headline + an artifact showing the pain
- Prompt Card โ a dark mono card with the actual copy-pasteable prompt
- UI Mockup โ a realistic product interface built in HTML
- Stat / Chart โ one hero number + a real bar chart
- Comparison / Diagram โ stacked cards connected with arrows
- Listicle Item โ number + name + image grid + one-liner
- Quote / Proof โ a pull-quote slab with real attribution
- Steps / Recipe โ numbered rows, one line each
- CTA โ the ask (save / follow / comment), character, what's next
Story arcs:
- News drop: Hook โ What it is โ Why it matters (numbers) โ Proof โ What you can do โ Catch โ CTA
- Tutorial: Hook โ First step โ Build pages (ร3โ4) โ Result โ CTA
- Listicle: Hook โ Item รN โ Recap grid โ CTA
๐ฌ Part 7 ยท Animating slides โ MP4 (no screen recording)
Instagram carousels can mix video and image slides. The workflow makes the thumb-stopping motion slide painless:
- Claude builds the animated slide as a self-contained HTML file (same 1080ร1350 design, with CSS/JS animation โ a logo drawing in, a character bouncing, a gradient drifting, or a real screen-recording playing inside a browser window).
- The
capture.jsheadless pipeline (Part 2, Step 6) renders it frame-perfect and exports a crisp 1080ร1350 MP4 โ no manual screen recording, exact dimensions, repeatable. - Post the MP4 as that slide, PNGs for the rest.
๐ฅ You can also drop a real screen recording into a slide (e.g. show the deck being edited live) โ Claude composites it into the slide's frame and exports the MP4 the same way.
๐ ๏ธ Part 8 ยท Gotchas & troubleshooting
- Always approve the script first. It's the cheapest place to change direction.
- No slide counters. Don't add page number pill โ Instagram already shows this.
- Backgrounds must be full-bleed. If a texture shows a grid/checkerboard at the edges, it's a transparency cutout โ scale the background up and center it so the margins crop off-canvas.
- Inline colored words can flatten when laying out text โ split accent words into their own text nodes so the color sticks.
- Verify Firecrawl before relying on it โ run one scrape to confirm the key + connection work.
- Animated-slide filenames from macOS screen recordings contain a hidden character โ copy them with a wildcard/
find, not a literal path.
โ
That's the whole system. Set up once (Part 2), then every post is: /carousel โ answer intake (give your 3 reference carousels) โ approve the script โ collect finished slides. Want a tutorial, a news drop, or a listicle next? Just say the topic and hand over your references.