typst2pptx
Convert Typst documents into PowerPoint (.pptx) files. It walks the Typst layout tree and recreates text, shapes, images, and equations in PowerPoint using python-pptx, rasterizing only when PowerPoint cannot represent a transform faithfully.
Installation and Usage
With uv (recommended) :
uv tool install typst2pptx
Can also be installed using pip or pipx.
From source :
Requirements :
- Python 3.12+
- Rust toolchain (for the PyO3 extension)
uvfor the suggested installation method
Clone the repo, then install the tool using maturin and uv (this installs the tool globally):
git clone https://github.com/yalap13/typst2pptx.git
cd typst2pptx
uv sync
maturin develop
uv tool install .
Usage
Basic CLI:
typst2pptx path/to/doc.typ
Options:
-o/--output PATH: override output path (defaults to<sourcename>.pptx).--equations-dir PATH: keep rendered equation PNGs underPATHinstead of a temporary directory. By default, they are written to a temptypst2pptx-equations-<timestamp>-<pid>folder and cleaned up afterward.
Notes:
- Typst packages are fetched as needed.
- There is a sample Typst source at
src/source.typwith its image dependencies. You can trytypst2pptx src/source.typ -o my_presentation.pptx. - Skewed and non-uniformly scaled text/images are rasterized.
- Text stays editable where possible (e.g. when not skewed or scaled non-uniformly).
- Linear gradients work, but radial/conic gradients are not currently supported.
Supported features
“Editable” means native PowerPoint text or shapes. “Rasterized” means the content is preserved as a PNG image.
| Feature | Support | Output and limitations |
|---|---|---|
| Typst pages and slide dimensions | Supported | Each page becomes a slide; all slides use the first page's dimensions. |
| Text | Editable | Preserves font family, size, bold, italic, solid color, and placement. Fonts must be available in the application viewing the presentation. |
| Inline raw code | Editable | Preserves the monospace font and corrects baseline placement using font metrics. |
| Subscripts and superscripts | Supported | Synthesized scripts stay editable; special script glyphs supplied by the font are rasterized. |
| Bulleted and numbered lists | Supported | Markers and text are positioned individually; they are not native PowerPoint lists. |
| Inline and block equations | Rasterized | Rendered at 300 dpi and placed at Typst's layout coordinates. Equation images can be retained with --equations-dir. |
| Rectangles, lines, arrows, and paths | Editable | Exported as PowerPoint shapes and connectors; cubic curves are approximated with line segments. |
| Solid fills and page backgrounds | Supported | Preserves RGB color and transparency, including color.transparentize(). |
| Linear gradient fills | Supported | Preserves stop colors, transparency, positions, and angle. |
| Radial and conic gradient fills | Partial | Falls back to the first stop's color and transparency. |
| Tiling fills | Unsupported | No fill is exported. |
| Shape outlines | Partial | Preserves solid color, transparency, and thickness; dash patterns, caps, joins, and gradient or tiling strokes are not preserved. |
| Raster images | Supported | Embedded as pictures; transforms that require rasterization are rendered at 300 dpi. |
| SVG and PDF images | Rasterized | Rendered at 300 dpi and embedded as pictures. |
| Rotation and scaling | Supported | Represented natively where possible; skewed or non-uniformly scaled text and skewed images are rasterized. |
| Web hyperlinks | Supported | Clickable shapes overlay the link area. |
| Internal document links | Supported | Resolved destinations link to the corresponding slide. |
| Shape shadows | Disabled | Exported text, geometry, and pictures use flat styling without inherited theme shadows. |
| Layout containers, grids, and tables | Partial | Preserves their laid-out text and geometry; does not recreate native PowerPoint containers, groups, or tables. |
| Group clipping | Unsupported | Group clipping paths are not applied during conversion. |
| Typst packages and presentation themes | Supported | Compiled through Typst; packages are fetched as needed. Theme content follows the feature limitations above. |
| Touying pauses and overlays | Static slides | Each compiled Typst page becomes a separate slide; no PowerPoint animations are generated. |
Metadata
Release files for typst2pptx 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
Total release size: 265.2 MB
Release files / typst2pptx-0.1.0-cp314-cp314-win_amd64.whl
| Download URL | typst2pptx-0.1.0-cp314-cp314-win_amd64.whl |
|---|---|
| Size | 22.4 MB |
| Tags | CPython 3.14 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
a769ce3cf5868278cf89bee960a9e358f5058e646870e9a9d2062a64ab7f5143
|
|
BLAKE2b-256 checksum How to use checksums |
49600b2b9a84b5b76fb4987f228ba3e3e96415e48dc7ba8ebb658afeffe762fe
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.22 {"installer":{"name":"uv","version":"0.12.22","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 2, 2026.
Transparency logRelease files / typst2pptx-0.1.0-cp314-cp314-manylinux_2_28_x86_64.whl
| Download URL | typst2pptx-0.1.0-cp314-cp314-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 22.7 MB |
| Tags | CPython 3.14 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
a2d1d4342e9908be28b50683aa2e8af8603c55eb164f8d8f9ad78898a76807bc
|
|
BLAKE2b-256 checksum How to use checksums |
3c12193a0771df07deaf2650e37edc020d11a246686cb5c5e3aa98a68169029a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.22 {"installer":{"name":"uv","version":"0.12.22","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 2, 2026.
Transparency logRelease files / typst2pptx-0.1.0-cp314-cp314-macosx_11_0_arm64.whl
| Download URL | typst2pptx-0.1.0-cp314-cp314-macosx_11_0_arm64.whl |
|---|---|
| Size | 21.4 MB |
| Tags | CPython 3.14 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
9cc94b674cba8feff639b0c40aceb3425de45439242594db1ca4d5adfbddb5c4
|
|
BLAKE2b-256 checksum How to use checksums |
7df7710368ebd2d37bb0a2fa20f4c9df55385d63c4329f8da701698ae057c2b3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.22 {"installer":{"name":"uv","version":"0.12.22","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 2, 2026.
Transparency logRelease files / typst2pptx-0.1.0-cp314-cp314-macosx_10_12_x86_64.whl
| Download URL | typst2pptx-0.1.0-cp314-cp314-macosx_10_12_x86_64.whl |
|---|---|
| Size | 21.9 MB |
| Tags | CPython 3.14 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
56611bfdd0fab4df314928fb31750b3e2e3d4c0f34f44bc71cda0d44359fc42e
|
|
BLAKE2b-256 checksum How to use checksums |
1dd1046985de929364616105b64072c76d2284cda0466970004e53531da3492e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.22 {"installer":{"name":"uv","version":"0.12.22","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 2, 2026.
Transparency logRelease files / typst2pptx-0.1.0-cp313-cp313-win_amd64.whl
| Download URL | typst2pptx-0.1.0-cp313-cp313-win_amd64.whl |
|---|---|
| Size | 22.4 MB |
| Tags | CPython 3.13 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
06cf62e6693c4eb146ae549f00d2c17c1f342745fd05cded849387373b89dc49
|
|
BLAKE2b-256 checksum How to use checksums |
f8a5525a27cc7f8afa1dd0f019aa233b471d3aaa0261e04112070905ce3e8ba2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.22 {"installer":{"name":"uv","version":"0.12.22","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 2, 2026.
Transparency logRelease files / typst2pptx-0.1.0-cp313-cp313-manylinux_2_28_x86_64.whl
| Download URL | typst2pptx-0.1.0-cp313-cp313-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 22.7 MB |
| Tags | CPython 3.13 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
8a6071f97205410ad6e95e098a2bac0e74dd87b9c5538a7cc82423a518cf5f19
|
|
BLAKE2b-256 checksum How to use checksums |
c03694ff877cebf5c36990873624ede89224100c29d2cde3dde5d04a26d3852d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.22 {"installer":{"name":"uv","version":"0.12.22","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 2, 2026.
Transparency logRelease files / typst2pptx-0.1.0-cp313-cp313-macosx_11_0_arm64.whl
| Download URL | typst2pptx-0.1.0-cp313-cp313-macosx_11_0_arm64.whl |
|---|---|
| Size | 21.4 MB |
| Tags | CPython 3.13 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
a7274369b390ca063df497922195712b26b3b9a3fedea0213189f6864e6118a2
|
|
BLAKE2b-256 checksum How to use checksums |
8c66711d1e0236ec6b15ac4034b220c2137856324320c4d611ea7e6b67ed024d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.22 {"installer":{"name":"uv","version":"0.12.22","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 2, 2026.
Transparency logRelease files / typst2pptx-0.1.0-cp313-cp313-macosx_10_12_x86_64.whl
| Download URL | typst2pptx-0.1.0-cp313-cp313-macosx_10_12_x86_64.whl |
|---|---|
| Size | 21.9 MB |
| Tags | CPython 3.13 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
1eb2a0a8d25db91d9c8a63e912e5f797d8e1658a1c2cdd550aec98a58b8efe3f
|
|
BLAKE2b-256 checksum How to use checksums |
6b13715a11de7773433434ec559f8ee77ecbc90be1ad9b8a87b7a5f8b160fc87
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.22 {"installer":{"name":"uv","version":"0.12.22","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 2, 2026.
Transparency logRelease files / typst2pptx-0.1.0-cp312-cp312-win_amd64.whl
| Download URL | typst2pptx-0.1.0-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 22.4 MB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
c7ba65d85909794c42ac9b9c9844913214e18d2cb18166e9c3c229e1bb347f68
|
|
BLAKE2b-256 checksum How to use checksums |
b4e0478755247fbd2ff2e10857e29c143477e85ff187cfd2cac69ab176104ce2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.22 {"installer":{"name":"uv","version":"0.12.22","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 2, 2026.
Transparency logRelease files / typst2pptx-0.1.0-cp312-cp312-manylinux_2_28_x86_64.whl
| Download URL | typst2pptx-0.1.0-cp312-cp312-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 22.7 MB |
| Tags | CPython 3.12 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
1b7715aa224c11fcfa0b42ba9528d34abd991b5297d14849efdcbda09085ac5e
|
|
BLAKE2b-256 checksum How to use checksums |
b92213797baeffdeece0097e4e616a8d04a154c68d9a3164a081c8a22d424413
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.22 {"installer":{"name":"uv","version":"0.12.22","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 2, 2026.
Transparency logRelease files / typst2pptx-0.1.0-cp312-cp312-macosx_11_0_arm64.whl
| Download URL | typst2pptx-0.1.0-cp312-cp312-macosx_11_0_arm64.whl |
|---|---|
| Size | 21.4 MB |
| Tags | CPython 3.12 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
64b5107a07ef41e96761826132d3148c8e4a32cefdfc7134a2c4d0861b61362f
|
|
BLAKE2b-256 checksum How to use checksums |
5a4f2f23e560bbc572c528a1961f8bcb54d3333845bf093a2b7aa0d332cbd759
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.22 {"installer":{"name":"uv","version":"0.12.22","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 2, 2026.
Transparency logRelease files / typst2pptx-0.1.0-cp312-cp312-macosx_10_12_x86_64.whl
| Download URL | typst2pptx-0.1.0-cp312-cp312-macosx_10_12_x86_64.whl |
|---|---|
| Size | 21.9 MB |
| Tags | CPython 3.12 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
c3e3fe1bea883e567671dd8ba04a51e6650c74742178f0eec87519fcc675552b
|
|
BLAKE2b-256 checksum How to use checksums |
ac6bd7ab2d4186ec81737eb21ba743d42b9c5d531abf53dad0f7d5372ffa2324
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.22 {"installer":{"name":"uv","version":"0.12.22","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 2, 2026.
Transparency log