Twitter Thread to Carousel With Claude: The Exact 5-Step Setup (Files + Prompts to Copy)

Carousels are the highest-engagement format on Instagram and LinkedIn right now. They get roughly 1.4× the reach of single-image posts and consistently beat every other post type for content creators sharing ideas or step-by-steps.

If you write threads on X or have ideas worth sharing visually, a twitter thread to carousel conversion is the single highest-leverage repurposing move you can make in 2026.

Using AI to generate these carousels makes the design step disappear entirely. What used to take 30 minutes in Canva now takes 5 minutes in a single Claude chat.

This guide gives you the exact twitter thread to carousel setup — the files to upload, the instructions to paste, the skill you need (with its full SKILL.md), and the exact prompts.

Even if you’re not particularly AI- or tech-friendly, you can copy-paste your way through this in under 10 minutes.

TL;DR
Build a Claude Project + a small carousel-to-png skill. Then every twitter thread to carousel run is 3 prompts: paste thread, approve preview, export PNGs. End-to-end: 5 minutes. No design tool. No watermarks. No credit limits. The whole twitter thread to carousel pipeline lives inside one Claude chat.
5 min
Per carousel
7–10
PNG slides
1080
×1350 px
3
Prompts total
🎯 JUST WANT THE SETUP?
Skip the explainer and jump to Twitter Thread to Carousel With Claude. That’s the meat — the exact Claude Project setup (instructions + files + skill + prompts) to run your own twitter thread to carousel workflow. Sub-steps:
  • Step 1 — Create a new Claude Project
  • Step 2 — Upload your profile photo
  • Step 3 — Paste the project instructions (full text in a copy box)
  • Step 4 — Add the carousel-to-png skill (full SKILL.md in a copy box)
  • Step 5 — Run the 3 prompts (each in a copy box, with expected output)

Twitter Thread to Carousel

A twitter thread to carousel is exactly what it sounds like. You take the text from a Twitter (X) thread and turn it into a stack of Instagram-ready image slides.

Every slide is styled to look like a tweet: clean white background, profile header with handle and verified badge, body text, progress bar at the bottom. Same brand layout every time.

Here’s the end-to-end flow at a glance:

INPUTA Twitter threador just a topic + slide countCLAUDE PROJECTYour brand instructions+ carousel-to-png skillHTML PREVIEWSwipe-through Instagram frameReview & tweak slidesPNG EXPORTcarousel-to-png skill runsFonts embedded, slides screenshotOUTPUT7–10 PNG slides1080 × 1350 px, Instagram-readyDrop into IG, write caption, postTotal time: 5–8 minutes

You don’t actually need a Twitter thread to start

The most useful thing about this twitter thread to carousel system: it isn’t limited to actual threads. The name describes the most common use case, not the only one.

You can feed Claude any of these and get the same tweet-style carousel output:

1
A real thread
Paste tweets from X, separated by line breaks
2
Just a topic
“Make me a 7-slide carousel about [topic]”
3
Bullet outline
Drop in rough notes, Claude shapes them into slides
4
A blog post
Repurpose long-form content into 10 swipeable slides
5
A video transcript
Break down a YouTube or podcast into slide-sized bits

Whether the input is a real thread or just a topic, every slide carries the same tweet header so the carousel reads like a thread visually. Slide 1 is the hook. Slides 2–6 are the steps. The last slide closes with a CTA.

Why Can’t You Just Use an AI Carousel Maker?

You absolutely can. There are dozens of AI carousel maker tools out there — AI carousel generators, AI Instagram carousel makers, “free” AI carousel apps. I tried a handful before settling on the twitter thread to carousel setup in this guide.

Here are the issues I ran into with most AI carousel maker tools, in the order I noticed them:

1
The “free” sign-up wall
I’d generate a carousel, get excited, then hit “Download” — and a paywall pops up. The AI carousel maker advertised free generation. The export was the actual product. Common move across most of the well-known carousel AI tools.
2
Credit limits in the free tier
The AI carousel makers that do give you free exports usually limit you to 3–5 generations a month. If you post even semi-regularly, you’ll hit the cap by week two and be back to the upgrade screen.
3
Locked templates and a generic AI look
Most AI carousel generators give you a small set of preset templates. Your brand colors get squeezed into someone else’s layout — and every other user of the tool is shipping carousels that look 80% identical to yours.
4
Watermarks on every “free” export
Even when an AI Instagram carousel maker lets you export without paying, the output ships with a corner watermark of the tool’s brand. Unusable for a serious account — and there’s no clean way to strip it without paying.
5
You still write the actual content yourself
The honest dirty secret of most AI carousel maker tools: they’re layout engines, not idea engines. You still type each slide. The “AI” mostly arranges what you wrote into a template. Real time saved: maybe 20%.
6
Lock-in: no source files for edits later
When you want to tweak slide 4 a month later, you log back into the AI carousel app, find the project, hope it’s still there, hope the layout still matches your current brand. With the Claude approach, every carousel is just an HTML file you saved. Edit it forever.
MY TAKE
A general-purpose AI carousel maker is fine for a one-off post. For a content workflow you’ll run weekly, owning the project + skill yourself — the twitter thread to carousel setup below — wins on every dimension: no paywall, no credits, full brand control, no watermark, and the files are yours forever. The twitter thread to carousel approach is also infinitely extensible because you control the source.

Twitter Thread to Carousel With Claude

The full setup is 5 steps and takes 10 minutes once. After that, every twitter thread to carousel run is 3 prompts and 5 minutes.

New to Claude Projects? Here’s the 30-second explainer

A Claude Project is basically a folder inside Claude where everything for one specific job lives. For our twitter thread to carousel setup, the “specific job” is making carousels. Each project has these things you can set up:

  • Name — what you call it (e.g., “Instagram Carousel Generator”)
  • Instructions — the rules Claude follows in every chat (you paste the brand layout rules here)
  • Files — uploads every chat can see (your profile photo goes here)
  • Skills — small reusable code modules (the PNG export logic lives here)
  • Chats — actual conversations. Each new carousel = a new chat inside this same project

All of this lives in one place: go to claude.ai and click Projects in the left sidebar.

The 5 steps below fill in Name, Instructions, Files, and Skills once. After that, you just open new chats inside the same project to make carousels — Claude carries the brand layout and the export skill across every twitter thread to carousel run automatically.

Before you start, you need:

  • A Claude Pro account — $20/month or $17/month annual (Projects + Skills are Pro features)
  • A square profile photo (400×400 px or larger)
  • Three brand hex colors: accent, dark text, body text
  • Your Instagram handle and display name
  • 10 minutes for one-time setup
1
Create a new Claude Project

Go to claude.ai, click Projects in the left sidebar, then New project.

Name it “Instagram Carousel Generator” (or anything your brand prefers). The description doesn’t matter — anything works.

2
Upload your profile photo

Drag your square profile photo into the Files section of the project. The filename doesn’t matter.

Claude will embed this photo as base64 into every slide of every twitter thread to carousel you generate.

3
Paste these project instructions

Click the Copy button on the box below, then paste the contents into the Project instructions field of your new Claude project.

Only edit the 5 lines marked in the table after this box — leave everything else alone.

Project Instructions
You are an Instagram carousel design system. When the user asks to create a carousel, generate a fully self-contained, swipeable HTML carousel where every slide is exported as an individual 1080×1350px PNG for Instagram posting.

BRAND DETAILS (EDIT THESE 5 LINES)
- Brand name: [YOUR BRAND NAME]
- Instagram handle: @[your-handle]
- Display name: [Your Display Name]
- Tone: Casual
- Accent color: #2FAD64

BRAND COLORS (defaults — edit if needed)
- Text dark: #0f1419 (bold headlines)
- Text body: #333333 (regular body text)
- Handle color: #536471 (@handle under display name)
- Background: #FFFFFF (pure white)

FONT
Plus Jakarta Sans (weights 300–700) via Google Fonts.

PROFILE PHOTO
Use the circular profile photo uploaded to this project's files. Encode it as base64 and embed it directly in the HTML so the carousel is fully self-contained.

WORKFLOW
1. Ask the user three things: topic, slide count (default 7), and any specific content to include.
2. Generate a self-contained HTML carousel with a swipeable Instagram-frame preview wrapper. All slides at 420×525px (4:5 ratio). Embed the profile photo as base64. Load Google Fonts via CDN.
3. If the user wants changes, update only the requested slides. Don't rebuild from scratch.
4. When approved, use the carousel-to-png skill to export each slide as 1080×1350px PNG.

TWEET-STYLE DESIGN RULES
- Background: pure white #FFFFFF on every slide
- Profile section: 48px circular headshot + display name (bold, 15px) + verified badge SVG + @handle (14px, handle color)
- Bold headline: 17px, weight 700, dark text
- Body: 15px, weight 400, body text color, line-height 1.55
- Accent text: 15px, weight 700, accent color — for hooks, CTAs, key lines
- Use → arrows for lists, not bullets
- Content padding: 0 36px 52px (clears progress bar)
- Vertical alignment: justify-content: center

NARRATIVE STRUCTURE
- Slide 1: Hook in accent color + a teaser line
- Slides 2 through (N-1): One step per slide ("Step N: [Title]") + body + → arrows for lists
- Last slide: Recap result + CTA in accent color

ELEMENTS ON EVERY SLIDE
- Progress bar at bottom: 3px track, accent-color fill, counter "1/7" in 11px
- Swipe arrow on right (48px gradient fade + chevron) — remove on last slide
- Same tweet header on every slide

INSTAGRAM FRAME (PREVIEW WRAPPER)
- Frame width: exactly 420px (do NOT change)
- Header: avatar + handle + display name
- Viewport: 4:5 aspect ratio (420×525), pointer-drag with snap-to-slide
- Dots indicator below viewport

EXPORT
- Use the carousel-to-png skill — do not write your own export script
- Always use Python for HTML manipulation, never shell scripts ($ interpolation corrupts HTML)
- Embed images as base64 data URIs
- Verify final PNGs are exactly 1080×1350px before presenting them

The five lines to edit before you save:

#ChangeTo
1[YOUR BRAND NAME]Your actual brand or personal name
2@[your-handle]Your Instagram @handle
3[Your Display Name]The name shown on the tweet header
4Tone: CasualProfessional, Casual, or Educational
5Accent color: #2FAD64Your brand’s accent hex code

Hit Save on the project instructions when done.

4
Add the carousel-to-png skill

The skill handles the PNG export at Instagram’s exact resolution. Inside your Claude Project, go to Skills, click New skill, name it carousel-to-png, and paste the SKILL.md content below.

SKILL.md
# Carousel to PNG Exporter

Export each slide of an HTML carousel as a 1080×1350px PNG, ready to post on Instagram.

## When to use this skill
Trigger when the user has an approved HTML carousel and asks to "export carousel", "export slides", "save as PNG", or "convert to images".

## Two rules that make or break the export

### Rule 1 — Embed fonts as base64 BEFORE exporting
If the HTML loads Google Fonts via <link>, headless Chrome may render with a fallback font. Embedding WOFF2 files as base64 in the HTML eliminates this.

### Rule 2 — Screenshot the slide element, NOT the page with a clip rectangle
page.screenshot({clip:...}) has subpixel rounding issues at fractional scale factors. element.screenshot() is pixel-perfect.

## Prerequisites
pip install playwright --break-system-packages
playwright install chromium

## Step 1 — Embed the fonts
```python
import base64, re, urllib.request
from pathlib import Path

GOOGLE_FONTS_URL = "https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@300;400;500;600;700&display=swap"
HTML_PATH = Path("/path/to/carousel.html")
UA = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 Chrome/131.0.0.0 Safari/537.36"

def fetch_embedded_fonts_css(fonts_url):
    req = urllib.request.Request(fonts_url, headers={"User-Agent": UA})
    css = urllib.request.urlopen(req).read().decode("utf-8")
    for font_url in set(re.findall(r"url\((https://[^)]+\.woff2)\)", css)):
        data = urllib.request.urlopen(font_url).read()
        b64 = base64.b64encode(data).decode("ascii")
        css = css.replace(font_url, f"data:font/woff2;base64,{b64}")
    return css.replace("font-display: swap;", "font-display: block;")

embedded_css = fetch_embedded_fonts_css(GOOGLE_FONTS_URL)
html = HTML_PATH.read_text(encoding="utf-8")
html = re.sub(r'<link[^>]*fonts\.googleapis\.com[^>]*>', f"<style>{embedded_css}</style>", html)
HTML_PATH.write_text(html, encoding="utf-8")
```

## Step 2 — Export each slide as PNG
```python
import asyncio
from pathlib import Path
from playwright.async_api import async_playwright

INPUT_HTML = Path("/path/to/carousel.html")
OUTPUT_DIR = Path("/path/to/slides")
OUTPUT_DIR.mkdir(exist_ok=True)

SLIDE_W, SLIDE_H = 420, 525
SCALE = 1080 / SLIDE_W

async def export_slides():
    async with async_playwright() as p:
        browser = await p.chromium.launch()
        page = await browser.new_page(
            viewport={"width": SLIDE_W + 400, "height": SLIDE_H + 400},
            device_scale_factor=SCALE,
        )
        await page.set_content(INPUT_HTML.read_text(encoding="utf-8"), wait_until="networkidle")
        await page.evaluate("() => document.fonts.ready")
        await page.wait_for_timeout(3000)
        slides = await page.query_selector_all(".slide")
        for i, slide in enumerate(slides):
            await slide.screenshot(path=str(OUTPUT_DIR / f"slide_{i+1:02d}.png"))
        await browser.close()

asyncio.run(export_slides())
```

## Key rules
1. Embed fonts as base64 BEFORE export
2. Viewport = slide_width + 400 (buffer)
3. element.screenshot(), not page.screenshot({clip})
4. device_scale_factor to scale up
5. Wait for document.fonts.ready + 3 seconds
6. Use Python, never shell scripts
PRO TIP
Save the skill at the project level — Claude uses it automatically when you ask to export, no need to invoke it by name.
5
The three prompts you’ll use

Your Claude Project is now fully configured for twitter thread to carousel work. Here’s how to actually use it to make a carousel:

  1. Open claude.ai and click your project name in the left sidebar.
  2. Inside the project, click + New chat (not a regular chat at the top — the project context is what makes this work).
  3. Paste the three prompts below into that chat, one at a time. Change the parts marked in brackets [ ] to your own content.

That’s it. Every twitter thread to carousel job from now on is these three prompts in order.

Prompt 1 — Convert your thread (or topic) into a carousel:

Prompt 1
Turn this into a twitter-style carousel — 7 slides.

Here's the thread:

[PASTE YOUR THREAD HERE]

If you don’t have a thread, replace the bracketed section with a topic instead — e.g., “Topic: 7 productivity habits for solopreneurs. Make each slide one habit.”

EXPECT
Claude takes 45–90 seconds to think, then delivers an HTML file — your first twitter thread to carousel preview. Open it: you’ll see your entire carousel inside an Instagram-style frame that you can actually swipe through, slide by slide. Like this:
Claude generating an HTML carousel preview inside the chat — a swipeable Instagram-style frame with the first slide visible
After Prompt 1: Claude generates a self-contained HTML file with your swipeable carousel inside an Instagram frame preview.

Swipe through every slide. If anything needs to change (a slide is too long, the hook is weak, you want to split a slide into two), use Prompt 2. If it looks good, skip to Prompt 3.

Prompt 2 — Fix specific slides without losing the rest:

Prompt 2
Slide 3 needs to be punchier and break into two slides. Only update slide 3 — don't rebuild the rest.

The “don’t rebuild the rest” line is what stops Claude from regenerating the whole carousel and losing your other edits.

EXPECT
Claude takes 20–40 seconds, then delivers an updated HTML file with only the slide you asked about changed. The other slides stay exactly as they were. Repeat Prompt 2 for any other slides that need tweaks — one slide at a time keeps Claude focused.

Prompt 3 — Export as PNGs:

Prompt 3
Use the carousel-to-png skill to export all slides as 1080×1350 PNGs.
EXPECT
Claude embeds the fonts, screenshots each slide individually, and lists the PNG files in the chat — one per slide, named slide_01.png through slide_07.png. Total time: 30–60 seconds. Like this:
Claude listing the exported PNG slide files in the chat, each with a Download button
After Prompt 3: Claude lists every slide as a downloadable PNG file in the chat.

Click “Download” on each PNG to save it to your computer. Save them in numbered order (slide_01 first) so they go into Instagram in the right sequence.

Then drag the PNGs into the Instagram app in order, write your caption, and post. That’s a complete twitter thread to carousel run, start to finish.

For a wider library of reliable prompt patterns, our roundup of the best ChatGPT prompts for work and productivity uses the same Role + Context + Task + Format structure that makes these three prompts work consistently.

Who This Setup Is For (And How It Helps You Grow)

This twitter thread to carousel setup is built for people who already write — threads, newsletters, blog drafts, voice notes — and want a second-platform format without spending an hour in a design tool for every post.

If you publish a twitter thread to carousel run more than once a week, this setup pays for itself in time saved in the first month.

If you are…This setup gives you…
A creator on X who wants Instagram reachA twitter thread to carousel pipeline where every thread gets a second life
A LinkedIn carousel posterSame workflow — just swap aspect ratio to 1:1
A faceless brand operator running multiple pagesOne Claude Project per brand, fully branded
A ghostwriter or social media manager5-minute twitter thread to carousel turnaround for client work
A solo founder posting dailyDaily posting without daily designing

The growth and income math

📈 Compound reach
One thread × three platforms (X, Instagram, LinkedIn). A thread doing 50k views on X often pulls another 5–15k on Instagram with zero new writing.
🔁 Carousels are re-shown
Instagram re-shows carousels to people who didn’t swipe the first time. Reach compounds for the first 48 hours.
💰 Service-pricing potential
Designers charge $50–$150 per custom Instagram carousel. Retainer packs ($300–$800/mo for 8–12 carousels per client) become viable when each takes 5 minutes.
📅 Daily posting becomes realistic
The bottleneck on most personal-brand accounts isn’t ideas — it’s the design step. This kills the bottleneck.
Why this sticks where AI tutorials usually don’t: the design friction is gone after the one-time setup. You don’t have to remember a process or open three tools. The Claude Project is the system.

For a broader view of monetization paths around AI workflows, our guide to 25 real ways to make money with AI covers content repurposing services in more depth.

What the Daily Workflow Looks Like

Once setup is done, here’s the actual minute-by-minute flow for a single twitter thread to carousel run:

StepActionTime
1Open the Claude Project, start a new chat5 sec
2Paste Prompt 1 + your thread (or topic)15 sec
3Wait for HTML carousel preview45–90 sec
4Swipe through, request 1–2 edits if needed1–2 min
5Approve and run Prompt 3 to export30–60 sec
6Download PNGs, drag into Instagram, post2 min
Total5–8 min
FOR COMPARISON
The same 7-slide carousel in Canva typically takes 25–40 minutes from scratch. By your third twitter thread to carousel run, the rhythm is automatic.

Common Mistakes That Break the Twitter Thread to Carousel Export

Most twitter thread to carousel failures trace back to one of these five issues:

SymptomWhat Went WrongFix
Fonts look slightly off vs the HTML previewSkill didn’t embed fonts as base64Re-run Step 1 of SKILL.md with the right User-Agent
Right edge of the slide is cut offViewport set equal to slide widthViewport must be slide width + 400 px buffer
Slides look blurryUsed a 1080×1350 viewport directlyKeep viewport at slide CSS size, use device_scale_factor
Gray stripe on one edge of the PNGUsed page.screenshot with a clip rectangleUse element.screenshot() instead
HTML manipulation crashes mid-exportClaude tried to use a shell scriptTell it to use Python’s Path.write_text()
QUICK FIX
If any of these happen, paste the symptom directly back to Claude. The SKILL.md gives it enough context to debug itself in one or two turns.

Variations You Can Try

The default produces tweet-style Instagram carousels. The same twitter thread to carousel architecture flexes to other formats:

VariationWhat to Change
LinkedIn document carouselsAspect ratio 4:5 → 1:1 (525×525), export 1080×1080
Educational slides (no tweet header)Remove the profile section, use title + body + visual layout
Multiple brandsOne Claude Project per brand — same skill works across all of them
Longer carousels (10–15 slides)Just specify the slide count in Prompt 1
Different fontsSwap Plus Jakarta Sans for Inter, DM Sans, Poppins, or any Google Font

If you’re still deciding which AI to anchor your content stack around, our breakdown of ChatGPT vs Claude vs Gemini walks through where each one wins for content work.

Claude’s Projects + Skills combo is the reason this specific twitter thread to carousel setup is possible without juggling external tools — neither ChatGPT nor Gemini ships an equivalent twitter thread to carousel pipeline today.

FAQ – Twitter Thread to Carousel With Claude

What is the fastest way to convert a twitter thread to carousel?

Use a Claude Project with custom instructions (for layout and brand) plus a small carousel-to-png skill (for the PNG export). The workflow is three prompts: paste the thread, approve the preview, export. End-to-end takes 5–8 minutes per carousel.

Do I need an actual Twitter thread to use this system?

No. The twitter thread to carousel name describes the most common use case, not the only one. You can also give Claude just a topic plus the number of slides you want, a rough outline, a blog post, or a video transcript — the same project will turn any of these into a tweet-style Instagram carousel.

Is this better than using an AI carousel maker?

For one-off posts, an AI carousel maker is fine. For a repeatable content workflow, owning the project and skill yourself avoids the four biggest issues with most AI carousel makers: paywalled exports, free-tier credit caps, watermarks on output, and locked templates. You also keep editable source files for every carousel.

Do I need Claude Pro to use this setup?

Yes. Projects, custom skills, and code execution are Pro features. Pro is $20/month or $17/month billed annually. The free tier doesn’t support the project + skill combo.

How long does the initial setup take?

About 10 minutes the first time — most of that is copy-pasting the project instructions and the SKILL.md file. After setup, every new carousel takes 5–8 minutes from thread to downloaded PNGs.

Can I use this for LinkedIn carousels instead of Instagram?

Yes. Change the slide aspect ratio in the project instructions from 4:5 (420×525) to 1:1 (525×525), and the export resolution to 1080×1080. Same skill, same prompts. Only the dimensions change.

Do I need to know Python to use the carousel-to-png skill?

No. The skill contains Python code, but Claude runs the code itself inside the conversation. You never touch a terminal.

What slide count works best for Instagram engagement?

7 slides is the Instagram sweet spot — long enough to deliver value, short enough to keep swipe-completion above 60%. For LinkedIn, 10–12 slides perform better because the platform rewards depth.

Can I monetize this workflow by selling carousels to clients?

Yes. Designers typically charge $50–$150 per custom Instagram carousel. With this twitter thread to carousel setup producing one in under 5 minutes, monthly retainer packages ($300–$800 per client for 8–12 carousels) become viable.

Leave a Reply

Discover more from AIGuide101

Subscribe now to keep reading and get access to the full archive.

Continue reading