How I use Claude Code + Marp to think through presentations.

by SkillAiNest

The hard part of building a presentation is figuring it out The story. What are you trying to say? What is structure? Which sections are built on what? Where does the data go, tables or tablets? Before or after the competition?

what will do Helping is something Reaction to. Starting from scratch is hard. The reaction to the draft is swift. “Move it before” is much easier than “What do I say?”

This is the workflow I want to show you. I use Claude Code + Marp to think through presentations. Claude helps me brainstorm the story, gives me a first draft to react to, and then I iterate through “conversation” or editing directly in Markdown. The whole thing is a text file. 🎉

(I used a deck to think through this post. You can find it Here.)

We will cover:

  1. Workflow

  2. Get started in 5 minutes.

  3. Use Case: This is the very article.

  4. Under the hood

  5. wrap up

Workflow

There are four steps to this process: Brainstorming, Reaction, to repeat, export. Let me walk through each one.

Brainstorming

You start things off with the slash command (I’ll provide you with this command later):

/create-marp-deck API rate limiting

Claude starts by interviewing you, asking about the purpose, audience, key points, any data you want to include. This forces you to tell the story before a single slide exists.

CloudCode is interviewing the user about their offering—asking about the purpose, audience, and key segments.

~/projects/my-app $ claude
> /create-marp-deck API rate limiting
─────────────────────────────────────────────

Claude: What's this presentation about? What should the audience
        walk away knowing?

User:   How our rate limiting works, which algorithm we chose and
        why, and what they need to know to configure it for their
        services.

Claude: Who's the audience?

User:   Platform engineering team — they know our stack but haven't
        seen the rate limiting internals.

Claude: What are the key points or sections you want to cover?

User:   1. Why we need rate limiting (the incident last month)
        2. Token bucket vs sliding window — our decision
        3. How to configure it per-service
        4. Monitoring dashboard walkthrough

Think of it as light brainstorming: you talk through what you want to say, and Claude helps you formulate it.

Reaction

Once you’ve aligned on the structure, Claude generates and exports the complete Marp Markdown file. You get a solid first draft that you can do. Reaction to and give a new shape.

Title slide with dark gradient background

That title slide comes from this markdown:


# API Rate Limiting
## A Technical Deep Dive
**Team**: Platform Engineering
**Date**: February 2026

Is it perfect? Probably not. But now you have something concrete, with parts, structure and a story, that you can build on. This is much faster than starting from a blank canvas.

As you go through the slides, you felt If the story is clear and coherent.

to repeat

When reviewing a draft, this will inevitably lead to thoughts: “Oh, I should add a comparison table here,” “This section is too dense, maybe split it into two,” “Move that summary up.”

One way to make such modifications is to ask CloudCode to:

"Slide 6 is too dense. Split the algorithm comparison into
two slides, one for token bucket, one for sliding window."

Claude code file with a difference, splitting a slide and adding a callout

> Slide 6 is too dense. Split the algorithm comparison into two
  slides — one for token bucket, one for sliding window.

Claude: I'll split slide 6 into two separate slides, one per algorithm.

  Edit presentations/api-rate-limiting.md
  ───────────────────────────────────────
  - # Algorithm Comparison
  - | Feature | Token Bucket | Sliding Window |
  + # Token Bucket
  + Tokens refill at a steady rate...
  + ---
  + # Sliding Window
  + Track exact timestamp of every request...

> Add a "Why we chose token bucket" callout to that first slide

Claude: Added a blockquote callout explaining the decision.

  Edit presentations/api-rate-limiting.md
  ───────────────────────────────────────
  + > We chose token bucket because it handles bursty traffic
  + > from our mobile clients without penalizing steady callers

You can also edit it. VS code With Marp extension for live preview. open .md File, kill Ctrl+Shift+Vand you get the source on the left with the slides presented on the right. Cloud Code modifies the file, VS Code detects the change, and the preview updates automatically. (I keep both open side by side and it just works.)

I am modifying the deck I made to help think through this article.

export

When you’re done, you’ll find three files:

  • .md – Source (version controlled, separable)

  • .html – Open in any browser, share via Slack.

  • .pptx – Open in PowerPoint, be anywhere.

$ marp --no-stdin deck.md -o deck.html
(  INFO ) Converting 1 markdown...
(  INFO ) deck.md => deck.html

$ marp --no-stdin --pptx deck.md -o deck.pptx
(  INFO ) Converting 1 markdown...
(  INFO ) deck.md => deck.pptx

$ ls presentations/
api-rate-limiting.md
api-rate-limiting.html   ✓ open in browser, share via Slack
api-rate-limiting.pptx   ✓ open in PowerPoint, present anywhere

marp CLI Exporting to HTML and PPTX

The skill automatically runs the export command after generating the deck. A 15 slide deck turns in about 2 seconds.

Editable PPTX

The standard PPTX export renders each slide as an image – pixel perfect, but you can’t edit text in PowerPoint or Google Slides. If you need editable text, Marp has one. --pptx-editable Flag that uses LibreOffice under the hood to generate real text books.

The catch: LibreOffice creates text boxes that are too narrow, so the text wraps and overlaps. This skill includes a python-pptx post-processing script that automatically widens text boxes to fix this. Just ask for “editable pptx” and Expertise handles the rest – LibreOffice conversion, textbox fix, everything.

Get started in 5 minutes.

OK, are you ready? Here’s everything you need:

1. Install Marp CLI:

  • npm install -g @marp-team/marp-cli

2. Install the skill (via skills.sh):

  • npx skills add Omerr/claude-skills

It works with CloudCode, Cursor, GitHub Copilot, and other AI agents. You can also install manually (see Repo for details).

3. Run it:

  • /create-marp-deck your topic here

4. Repeat:

React to the draft, refine it via conversation or VS Code, and export.

That’s it. Four steps. Fork the repo and change the conventions to match your style.

Use Case: This is the very article.

Want to see this workflow in action? You’re looking at it.

I wrote this article first by creating a slide deck using the exact same process I described above. I ran. /create-marp-deckanswered interview questions, got a first draft, and iterated until the story felt right. you can Check out the deck here.

Why start with slides? Because a deck forces you to be short and pass. The story. If a story doesn’t last 15 slides, it won’t last 1500 words. The deck became my outline, and once I had a coherent structure there, writing the essay was much easier.

So if you’re ever staring at a blank doc thinking “I should write a blog post about X”, try building a deck first. You’d be surprised how much faster writing goes when the story is already understood. 😎

Under the hood

If you want to know about what makes it work, read on. If not, you’re all set. 🙌🏻

MARP: Markdown on slides

Marp (Markdown Presentation Ecosystem). .md files in a slide. Your deck starts with the front meter:

---
marp: true
theme: default
paginate: true
size: 16:9
---

Four lines and you have widescreen, paginated slides. Slide brakes are only. --- Your presentation in Markdown is a text file: version controlled, editable, and AI-editable.

Skills file

you can do Just ask CloudCode to “make me a snake presentation” every time. But you’ll spend half the conversation explaining your preferred look, color palette, and slide structure.

Instead, I created one. Cloud code skills (See Here), a set of reusable instructions that Claude follows whenever you call him. It has two parts:

  1. one Interview stage Gathers context before creating anything (5 questions from the brainstorming step)

  2. Oh Generation stage Complete with MARP conventions: CSS palette, slide structure, breadcrumb pattern, formatting rules, and export commands

The complete mastery consists of about 200 lines. It sounds like a lot, but you write it once and then every deck you create automatically follows the same polished convention.

Section dividers

Each part of the deck gets its own gradient background. So when you’re presenting, the audience intuitively knows when you’ve moved on to a new topic:

Section divider slide with blue gradient

Implemented by CSS classes in the skill:


# Part 1: The Problem

Breadcrumb navigation

This is my favorite part of the whole setup.

Above each content slide is a breadcrumb header that shows where you are in the deck:

Content slide showing breadcrumbs Algorithms > Implementation” with the current section highlighted in blue” style=”display:block;margin:0 auto” width=”600″ height=”400″ loading=”lazy”/>

See that header? “Problem”. Algorithm > Implementation”, with “Algorithms” highlighted in blue.

In Marp, this is done with a simple HTML comment:


gave **bold** Renders text in blue (via CSS header strong { color: #2563eb; }), while the rest remains gray. You set it once per section and it stays until you change it.

How many times have you sat through a presentation thinking, “Wait, where are we?” 🤔

wrap up

The hard part of presentations is telling a coherent story. Get yourself a first draft to react to, iterate until it flows, and export. That’s it.

If you want to try it: npm install -g @marp-team/marp-clito run npx skills add Omerr/claude-skillsand then /create-marp-deck. You’ll have a deck and a workflow in minutes that you can reuse for every presentation.

About the author

Omar Rosenbaum is the author of short YouTube channel. He is also a cyber training expert and founder of Checkpoint Security Academy. He is the author of Product Lead Research, Getting Things Done (in English) and Computer networks (in Hebrew). You can find it. Twitter.

You may also like

Leave a Comment

At Skillainest, we believe the future belongs to those who embrace AI, upgrade their skills, and stay ahead of the curve.

Get latest news

Subscribe my Newsletter for new blog posts, tips & new photos. Let's stay updated!

@2025 Skillainest.Designed and Developed by Pro