I made a bidirectional PowerPoint ↔ Typst converter

Hi everyone,

I’m not sure if this tool will be useful to anyone here, but I thought I’d share something I’ve been vibe coding recently. It’s called pptx-typst, a bidirectional converter that converts PowerPoint presentations into structured Typst documents and back to editable PowerPoint files. The main motivation is document automation and shareability, particularly when working with AI agents.

Most of my company’s presentations are already designed in PowerPoint, and we regularly share them with people who don’t use Typst. I really like Typst, but recreating existing PowerPoint designs from scratch would take too much effort, and switching entirely to a Typst workflow isn’t practical when everyone else still uses PowerPoint. I’ve also been experimenting quite a lot with agentic workflows, and I find that having an AI agent work directly with PowerPoint is rather cumbersome. Editing the OOXML package directly is possible, but getting visually decent results is difficult. The other approach is to let the agent control PowerPoint through tool calls, which works but is quite slow and requires the application to be running.

So I started thinking of Typst as an intermediate representation (IR) for PowerPoint rather than just another presentation format. The idea is to convert an existing PowerPoint into a structured Typst document, let an AI agent modify the source, and compile it to PDF to inspect the result. Once everything looks good, it can be converted back to PowerPoint for further touch-ups, animations, transitions, or simply sharing with other people. I find this approach much easier for an agent because it’s essentially editing text files instead of manipulating objects through a GUI. It also means I can use the usual coding tools, version control, and automated validation without needing PowerPoint open all the time.

One of my actual use cases is generating weekly and monthly reports. I often need to collect data from different sources, summarize it, and turn it into presentations. With this workflow, I can reuse our existing PowerPoint designs while running the data collection, content generation, and presentation export directly on a server without installing or running PowerPoint. The agent can work with the Typst source, render a PDF for checking, and produce a PowerPoint file that other people can continue editing. That’s really the part I’m most interested in, using Typst as a practical document IR for agentic automation.

The image below shows the slides designed and compiled using Typst (left) and the resulting PowerPoint presentation (right).

I’ve just published version 0.1.0 on PyPI. It’s far from perfect, of course. PowerPoint has a lot of features that aren’t straightforward to represent in Typst, and the reverse converter only supports a defined subset of Typst. My main priority so far has been preserving the overall layout and design while keeping text and common shapes editable, rather than trying to achieve pixel-perfect conversion. There are still plenty of limitations, but it works well enough for me to start using it in my workflows.

Anyway, I thought I’d share it here in case someone else has a similar problem. I’d also be interested to know if anyone has experimented with using Typst as an intermediate format for AI agents or document automation.

GitHub: GitHub - Sovichea/pptx-typst: Bidirectional PowerPoint–Typst converter using editable Typst as a presentation IR for agentic AI slide generation, editing, and automation. · GitHub

PyPI: pptx-typst · PyPI

3 Likes