| Crates.io | utpm |
| lib.rs | utpm |
| version | 0.2.0 |
| created_at | 2025-08-06 09:14:51.036466+00 |
| updated_at | 2025-08-06 09:14:51.036466+00 |
| description | UTPM is a package manager for local and remote Typst packages. Quickly create and manage projects and templates on your system, and publish them directly to Typst Universe. |
| homepage | |
| repository | https://github.com/typst-community/utpm |
| max_upload_size | |
| id | 1783578 |
| size | 271,069 |
Unofficial Typst package manager
UTPM is a package manager for local and remote Typst packages. Quickly create and manage projects and templates on your system, and publish them directly to Typst Universe.
[!WARNING]
UTPM is still in active development, and some features may not be fully implemented.
We are searching for contributors β anything you can offer will be greatly appreciated!
utpm workspace init)
workspace -> ws, packages -> pkg)utpm ws add)utpm ws delete)utpm ws sync)typst.toml (utpm ws install)utpm ws clone)utpm ws link)utpm pkg unlink, utpm pkg bulk-delete)utpm ws bump)utpm pkg list)utpm pkg list --tree)utpm pkg get)utpm ws sync -c)...And more soon!
Requires Cargo and Rust.
$ cargo install --git https://github.com/typst-community/utpm
Or
$ cargo install utpm
Get utpm for a bash session without installing it:
$ nix shell github:typst-community/utpm
Or if you use NixOS or home-manager with a flake, install it permanently in your flake.nix or your modules:
{
inputs.utpm.url = "github:typst-community/utpm";
# ...
outputs = { self, nixpkgs, ... }@inputs: {
# change `yourhostname` or `yourusername` to your actual hostname or username
nixosConfigurations.yourhostname = nixpkgs.lib.nixosSystem { #or homeConfigurations.yourusername
system = "x86_64-linux";
modules = [
# ...
{
environment.systemPackages = [ inputs.utpm.packages.${system}.default ]; #or home.packages
}
];
};
};
}
Clone the repo and then nix-build into the utpm directory:
git clone https://github.com/typst-community/utpm.git
cd utpm
nix-build
./result/bin/utpm
Utpm will be at ./result/bin/utpm
Further usage information can be found by running utpm --help or utpm <command> --help on any of the sub commands. Documentation is still in progress, feel free to ask questions in the issues section. Currently the github documentation is pretty much a mirror of the help command.
Usage: utpm [OPTIONS] <COMMAND>
Commands:
workspace Create, edit, delete your workspace for your package [aliases: ws]
packages use packages related to Typst [aliases: pkg]
generate Generate shell completions [aliases: gen]
help Print this message or the help of the given subcommand(s)
Options:
-v, --verbose <VERBOSE> Gives you more information, permet debug
-h, --help Print help
-V, --version Print version
ws): Manage Your Project Workspace| Command | Alias | Description |
|---|---|---|
link |
l |
Link the current project to the local package directory. |
install |
i |
Install all dependencies from the typst.toml manifest. |
add |
a |
Add dependencies to the manifest and then install them. |
delete |
d |
Delete dependencies from the manifest. |
init |
n |
Create a new typst.toml manifest for a project. |
clone |
Clone a package from the typst universe or a local directory. | |
bump |
Bump the version of your package. | |
sync |
Synchronise all your dependencies to their last version. | |
publish |
p |
(WIP) Intended for publishing packages. |
pkg): Manage Typst Packages| Command | Alias | Description |
|---|---|---|
list |
l |
List all packages in your local storage. |
path |
p |
Display the path to the typst packages folder. |
unlink |
u |
Delete a package from your local storage. |
bulk-delete |
bd |
Delete multiple packages or a whole namespace at once. |
get |
g |
Get specific/all package from the remote. |
tree |
t |
[DEPRECATED] Display packages as a tree. Use list --tree instead. |
gen): Generate Shell CompletionsIf you want to help me develop this package, simply make an issue or a PR!
By using this app, you contribute to it, thank you! <3