Skip to main content

Typst Package Vendoring CLI

Project description

typvend

PyPI PyVersions Tests License

typvend is a lightweight Python CLI utility designed to vendor official Typst packages locally for offline development, sandboxed builds, or containerized production CI/CD workflows.

Why?

Typst downloads packages on the fly at compile time with no official way to pre-download them. This can be problematic for offline compilation and read-only production environments (like containers). The solution is to either run the compilation once to fetch the packages or download them manually.

typvend simplifies this, downloading packages to the default Typst cache path or any directory you choose (then point Typst to it via --package-cache-path), in two ways:

  • Explicit: add <pkg>[@<version>] — download specific packages by name, with a version or @latest.
  • Scan: recursively find all @preview/<pkg>:<version> imports in .typ files and vendor them in one go.

Usage

You can run typvend directly using uv.

uvx typvend --help

Global options:

  • -o, --output DIR — Custom directory to extract packages (defaults to native OS Typst search path).
  • --namespace NS — Custom namespace (defaults to preview).
  • -f, --force — Re-download package even if it already exists.
  • -v, --verbose — Enable verbose output logs.

1. Adding Packages Explicitly

# Download latest version of fontawesome
uvx typvend add fontawesome

# Download specific versions
uvx typvend add fontawesome@0.5.0 cetz

2. Scanning Project Directories

Recursively searches a file or directory for package imports and vendors all discovered packages in one command:

# Scan a templates directory and output packages to typst cache folder
uvx typvend scan ./templates

# Scan and output to a custom directory (e.g. for Docker cache stages)
uvx typvend scan ./templates --output /typst-packages

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

typvend-0.1.1.tar.gz (37.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

typvend-0.1.1-py3-none-any.whl (10.0 kB view details)

Uploaded Python 3

File details

Details for the file typvend-0.1.1.tar.gz.

File metadata

  • Download URL: typvend-0.1.1.tar.gz
  • Upload date:
  • Size: 37.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for typvend-0.1.1.tar.gz
Algorithm Hash digest
SHA256 688e4edf44c19fafc0de1770e30ec351ce41fdb21309575bbc658f0a6d255f1e
MD5 2175b0c3f1f852aaa65405e0848c6131
BLAKE2b-256 73420a7b515b899d829d2db45092babaafdf5f5101e1575451f27966e2395528

See more details on using hashes here.

Provenance

The following attestation bundles were made for typvend-0.1.1.tar.gz:

Publisher: publish-pypi.yml on dialvarezs/typvend

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file typvend-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: typvend-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 10.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for typvend-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ce3af7f0303ceeeddeb968af5cd30940325363c23396dc212691ed0d596bb73e
MD5 c5d8250f5361a9111db4e2057b064259
BLAKE2b-256 adfba58ed4c2f26b234c35675badb6eeab9901bf70923077c5fa357cfa15c5cd

See more details on using hashes here.

Provenance

The following attestation bundles were made for typvend-0.1.1-py3-none-any.whl:

Publisher: publish-pypi.yml on dialvarezs/typvend

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page