Skip to main content

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

uv tool install typst2pptx

Can also be installed using pip or pipx.

From source :

Requirements :

  • Python 3.12+
  • Rust toolchain (for the PyO3 extension)
  • uv for 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 under PATH instead of a temporary directory. By default, they are written to a temp typst2pptx-equations-<timestamp>-<pid> folder and cleaned up afterward.

Notes:

  • Typst packages are fetched as needed.
  • There is a sample Typst source at src/source.typ with its image dependencies. You can try typst2pptx 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)

Table of built distributions (wheels) for typst2pptx 0.1.0
File
typst2pptx-0.1.0-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
typst2pptx-0.1.0-cp314-cp314-manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ x86-64 Details
typst2pptx-0.1.0-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details
typst2pptx-0.1.0-cp314-cp314-macosx_10_12_x86_64.whl CPython 3.14 CPython 3.14 macOS 10.12+ x86-64 Details
typst2pptx-0.1.0-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
typst2pptx-0.1.0-cp313-cp313-manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64 Details
typst2pptx-0.1.0-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
typst2pptx-0.1.0-cp313-cp313-macosx_10_12_x86_64.whl CPython 3.13 CPython 3.13 macOS 10.12+ x86-64 Details
typst2pptx-0.1.0-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
typst2pptx-0.1.0-cp312-cp312-manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64 Details
typst2pptx-0.1.0-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
typst2pptx-0.1.0-cp312-cp312-macosx_10_12_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.12+ x86-64 Details

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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Release 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

Release history Release notifications | RSS feed

This release

0.1.0 This release

12 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page