Making presentations with a coding agent
HTML slides, PDF or PowerPoint export, libraries and pptx skills: how to produce a slide deck with your agent, and when a dedicated presentation tool is the better choice.
Updated on
A coding agent does not draw slides: it writes files. That leaves two routes. The first produces slides in HTML or Markdown, which you present in a browser or export to PDF. The second generates a .pptx file directly. Which one fits depends on what you will do with the deck afterwards.
Route 1: HTML or Markdown slides
You describe the content, the agent writes the code, and you check the result in the browser. Changes take one sentence ("move the title to the top, shorten the text on slide 4"), and the deck stays plain text that you can version with the project.
Three common libraries:
- reveal.js: an HTML presentation framework.
- Marp: you write Markdown, and the tool outputs HTML, PDF and PowerPoint.
- Slidev: built for developers, it exports to PDF, PPTX, PNG or Markdown.
Name the library in your request. Otherwise the agent picks one, and the rest of the conversation builds on that choice.
Exporting to PDF
PDF is the safest format for sending a deck: the layout does not move.
With reveal.js, open the presentation with ?print-pdf at the end of the address, start the browser's print dialog (Ctrl or Cmd + P), then set the destination to "Save as PDF", the layout to landscape and the margins to none, and enable background graphics. The reveal.js documentation says this method requires Chrome or Chromium.
With Marp, one command is enough:
npx @marp-team/marp-cli@latest deck.md --pdf
With Slidev, slidev export produces a PDF. playwright-chromium must be installed in the project.
Exporting to PowerPoint
There are two approaches, and they do not give the same file.
Converting existing slides
Marp converts with --pptx, Slidev with slidev export --format pptx. In both cases the file is mostly made of images: Slidev states that the text is not selectable, and Marp that the content cannot be edited in PowerPoint. Presenter notes are carried over. This suits a deck you project as it is, not a file someone else will have to rework.
Both tools offer an editable variant (--pptx-editable for Marp, --format pptx-editable for Slidev). Marp describes its option as experimental: it requires LibreOffice Impress, can fail or give an incomplete result with complex styles, and does not support presenter notes. Test it on your own deck before relying on it.
Generating a real .pptx file
To get text boxes, tables and images that can be edited in PowerPoint, the agent writes a script with a library:
- PptxGenJS (JavaScript, MIT license) runs in Node, in the browser, or in a React or Vite project.
- python-pptx (Python) creates, reads and updates .pptx files: slides, text boxes, images, tables, shapes and charts.
A minimal PptxGenJS example, as its documentation presents it:
import pptxgen from "pptxgenjs";
let pres = new pptxgen();
let slide = pres.addSlide();
slide.addText("Hello from PptxGenJS", { x: 1, y: 1, color: "363636" });
pres.writeFile();
The agent runs the script and you get the file. You can also have it open an existing template (with python-pptx) to follow your company's brand.
pptx skills
A skill for the .pptx format replaces instructions you would otherwise repeat in every request: how to create slides, edit them, analyze an existing deck. Anthropic provides a pre-built PowerPoint skill, available on the Claude API, claude.ai and other surfaces. On the API it runs in the code execution tool.
In Claude Code or another coding agent, you can install a community skill of the same kind from the catalog. Read its files before installing it, as with any resource.
When a dedicated tool is better
An agent is quick for a first draft and for repetitive decks: monthly reports, presentations generated from data. It is less suited when the result has to be polished by hand.
| Situation | Better choice |
|---|---|
| First draft from a text or data | Coding agent |
| Deck regenerated every period | Coding agent, with a script or a skill |
| Deck versioned alongside code | Markdown or HTML slides |
| Fine layout work by several people | PowerPoint, Keynote or Google Slides |
| Strict brand template imposed | Dedicated tool, or a .pptx template given to the agent |
A common workflow: let the agent produce the first draft, then finish by hand in the tool.
Catalog resources
In the skills catalog, filter on the "slides" output to find skills that produce decks. A DESIGN.md also gives the agent your brand's colors, fonts and spacing, which avoids generic slides. Prompts help for a one-off request. To install a resource, follow the getting started article.
Tips for good results
- Give the outline before the styling: one idea per slide, a title that states that idea.
- Supply the source text, not just the topic: the agent should not invent your figures.
- State the output format and the library in your first request.
- Open the final file and go through every slide: overflowing text, a missing image and fallback fonts show on screen, not in the code.
Sources
Frequently asked questions
Can my agent produce a .pptx file directly?
Yes, in two ways: by writing a script with a library such as PptxGenJS (JavaScript) or python-pptx (Python), or by relying on a skill built for the format. Anthropic offers a pre-built pptx skill, available on the API, claude.ai and other surfaces.
Is a PowerPoint exported from HTML or Markdown slides editable?
Usually not. Marp and Slidev export each slide as an image by default, so the text can be neither selected nor edited. Editable options exist but are limited (Marp calls its option experimental).
When should I open PowerPoint, Keynote or Google Slides instead?
When other people need to touch up the deck by hand, or when layout matters more than speed of production.
