Skip to main content

Typst Forge

Typst Forge is a small local manager for Typst packages and templates.

It can:

  • scaffold a new Typst repo with git, typst.toml, src, and template/ when needed
  • install local development repos into Typst's package directory
  • install release repos from GitHub or any git URL
  • manage installed packages/templates with versioned registry entries
  • fall back between symlink and copy modes for platform-friendly installs
  • bump a project's Typst version and create a matching Git commit and tag

Install

Run the CLI from a checkout with uv:

uv run typst-forge --help

To run the published package from PyPI, use uvx:

uvx typst-forge --help

To run directly from this checkout without installing it, use uvx:

uvx --from . typst-forge --help

You can also run it directly from GitHub:

uvx --from git+https://github.com/marcosousapoza/typst-forge typst-forge --help

Commands

typst-forge init my-template --kind template --namespace local --version 0.1.0
typst-forge init my-package --kind package --version 0.1.0
typst-forge init . --kind template --namespace local --version 0.1.0
typst-forge install ./my-package --link-mode copy
typst-forge install github:owner/repo@v1.2.3
typst-forge list
typst-forge status my-package
typst-forge update my-package
typst-forge remove my-package
typst-forge bump patch
typst-forge bump minor
typst-forge bump major
typst-forge bump 2.0.0

init creates a .gitignore and initializes the project as a Git repository.

Moving a local project

If a symlinked local project moves, install it again from its new location:

typst-forge install /new/path/to/my-package

In a terminal, Typst Forge shows the old and new source paths and asks before repointing the existing registry symlink. In scripts and CI, pass --force to confirm the relocation explicitly:

typst-forge install /new/path/to/my-package --force

Versioning

  • local repos use the typst.toml package version unless a matching git tag is present at HEAD
  • GitHub and other git URLs install from release tags
  • tags can be written as v1.2.3 or 1.2.3; the stored Typst version is normalized to 1.2.3
  • installed entries live under ~/.local/share/typst/packages/<namespace>/<package>/<version>
  • template scaffolds import their library through Typst’s package path, for example @local/<package>:<version>

Bumping a project

Run bump from a clean Typst project repository. It updates the [package] version in typst.toml, updates an exact scaffolded self-import when present, creates a Release X.Y.Z commit, and adds an annotated vX.Y.Z tag.

Existing local installations of the old project version are preserved. Typst Forge adds the new version beside them using the same namespace and link mode. An uninstalled project is not installed as a side effect.

bump only changes the local Git repository. To publish the commit and tag to either GitHub or GitLab, push them with ordinary Git commands:

git push origin HEAD
git push origin v1.2.3

On GitHub, an Actions workflow can select pushed version tags with on.push.tags. On GitLab, a tag pipeline can select them with if: $CI_COMMIT_TAG. A hosted GitHub or GitLab Release is separate from the Git tag and can be created by CI or through the provider UI if desired.

Tests

Run the in-repo test suite with:

uv run python -m unittest discover -s tests -v

Publishing

The GitHub Actions workflow in .github/workflows/publish.yml publishes tagged releases to PyPI with trusted publishing.

Create and push a version tag like v0.1.0 to trigger it.

Metadata

Release files for typst-forge 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for typst-forge 0.2.0
File Size Uploaded Provenance Actions
typst_forge-0.2.0.tar.gz 17.6 kB With provenance Details for typst_forge-0.2.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for typst-forge 0.2.0
File Interpreter ABI Platform Actions
typst_forge-0.2.0-py3-none-any.whl Python 3 none any Details for typst_forge-0.2.0-py3-none-any.whl

Total release size: 33.8 kB

Release files / typst_forge-0.2.0.tar.gz

Download URL typst_forge-0.2.0.tar.gz
Size 17.6 kB
Tags Source
SHA-256 checksum
How to use checksums
c5250228be39f9ecdcfb2c4d5c7f6f378e786dc53b5510cd666a5e792fad23f4
BLAKE2b-256 checksum
How to use checksums
a862021b2d9ba512d106672a2dcad84fb392113f6ce45c3f98fa6099f85c4cea
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

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 Jul 27, 2026.

Transparency log

Release files / typst_forge-0.2.0-py3-none-any.whl

Download URL typst_forge-0.2.0-py3-none-any.whl
Size 16.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b365c78b01c81e102fe113b7cd6bd83b2e32ffead8a1780f54df58a723176593
BLAKE2b-256 checksum
How to use checksums
7e2d29eb0eca1ec4b2c22172ec629bfacc78969580f3f3f82114c7a29faa8077
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

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 Jul 27, 2026.

Transparency log

Security for typst-forge 0.2.0

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.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for typst_forge-0.2.0.tar.gz

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 Jul 27, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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