MCPcopy Index your code
hub / github.com/Splines/pptypst

github.com/Splines/pptypst @v1.2.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.2.0 ↗ · + Follow
253 symbols 578 edges 45 files 32 documented · 13%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

PPTypst Logo

<h3 align="center">PPTypst</h3>



  <strong>Bring <a href="https://typst.app">Typst</a> to PowerPoint</strong> | <a href="https://youtu.be/c6sfzu2--iY">YouTube Tutorial</a>
  | <a href="https://youtube.com/shorts/O-FMtAGROdA">YouTube Short</a>


  <sub><i>This community project is not affiliated with or endorsed by Typst.</i></sub>

[!Important] Unfortunately, I cannot publish this Add-in to the PowerPoint Add-in Marketplace due to regulations by Microsoft. See my comment. You can still use PPTypst by manual installation, but unfortunately it's not as easy as one single click.

Easily insert Typst equations with live preview, update them, and even generate from a file.

https://github.com/user-attachments/assets/23e91847-61f8-40a4-a6f2-0bc20b6df504

pptypst-preview

https://github.com/user-attachments/assets/3cb307af-4c02-4665-8f2c-34c23c6f68fc

Installation

See the Install guide.

Tutorial

YouTube: Animate equations in PowerPoint with PPTypst

How it works & Developing

See the Dev Guide.

🎈 About

The first proof-of-concept came from Johannes Berger here in January 2026. I forked the repo and have since been building on it, replacing the custom engine by the awesome typst.ts by Myriad-Dreamin, migrating to TypeScript, improving on code quality, as well as polishing and adding a lot more functionality. If you have any feature requests or want to report a bug, head over to the issues.

License

This project is licensed under the very permissive MIT-license. See the License file. However, notice that the branding (including the logo and the name of this project) are exempt from the license.

Extension points exported contracts — how you extend this code

CompilationResult (Interface)
(no doc)
web/src/typst.ts
DiagnosticMessage (Interface)
(no doc)
web/src/typst.ts
RegistryResponse (Interface)
(no doc)
web/src/registry/registry.ts
Window (Interface)
(no doc)
web/src/file/types.ts
FileSystemHandle (Interface)
(no doc)
web/src/file/types.ts

Core symbols most depended-on inside this repo

load
called by 22
tests/_support/office/document-model.ts
getHTMLElement
called by 22
web/src/utils/dom.ts
getInputElement
called by 20
web/src/utils/dom.ts
sync
called by 19
tests/_support/office/adapter.ts
setStatus
called by 17
web/src/ui.ts
add
called by 13
tests/_support/office/office-primitives.ts
storeValue
called by 12
web/src/utils/storage.ts
getAreaElement
called by 10
web/src/utils/dom.ts

Shape

Function 132
Method 85
Class 30
Interface 6

Languages

TypeScript100%

Modules by API surface

tests/_support/office/office-primitives.ts37 symbols
tests/_support/office/document-model.ts35 symbols
web/src/ui.ts24 symbols
tests/pages/powerpoint-page.ts23 symbols
tests/_support/office/adapter.ts22 symbols
web/src/insertion.ts10 symbols
web/src/preview.ts8 symbols
tests/_support/typst-mock.ts8 symbols
web/src/typst.ts7 symbols
web/src/file/types.ts7 symbols
web/src/utils/dom.ts6 symbols
tests/_support/browser-mocks/typst.ts6 symbols

For agents

$ claude mcp add pptypst \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact