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, andtemplate/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.tomlpackage version unless a matching git tag is present atHEAD - GitHub and other git URLs install from release tags
- tags can be written as
v1.2.3or1.2.3; the stored Typst version is normalized to1.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)
| 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)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| 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 logRelease 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 logSecurity 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.
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 logA 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.