https://github.com/Thumuss/utpm
A package manager for typst
https://github.com/Thumuss/utpm
package-manager typst utpm
Last synced: about 1 month ago
JSON representation
A package manager for typst
- Host: GitHub
- URL: https://github.com/Thumuss/utpm
- Owner: Thumuss
- License: mit
- Created: 2023-06-18T11:53:56.000Z (almost 2 years ago)
- Default Branch: dev
- Last Pushed: 2024-09-17T14:03:37.000Z (8 months ago)
- Last Synced: 2024-09-18T17:10:17.529Z (7 months ago)
- Topics: package-manager, typst, utpm
- Language: Rust
- Homepage:
- Size: 2.16 MB
- Stars: 30
- Watchers: 1
- Forks: 2
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-typst - utpm - Package manager for local and remote packages (Integrations & Tools / CLI Tools)
README

> _Unofficial Typst package manager_
**UTPM** is a _package manager_ for **[local](https://github.com/typst/packages#local-packages)** and **[remote](https://github.com/typst/packages)** Typst packages. Quickly create and manage _projects_ and _templates_ on your system, and publish them directly to **Typst Universe**.
[](https://github.com/Thumuss/utpm "Go to GitHub repo")
[](https://github.com/Thumuss/utpm)
[](https://github.com/Thumuss/utpm)
[](https://github.com/Thumuss/utpm/releases/)
[](#license)
[](https://github.com/Thumuss/utpm/issues)## π₯ Features
- [x] β¨Create packages rapidly (`utpm workspace create`)
- [x] β―οΈ Alias shorthand e.g. (`workspace = ws`)
- [x] β¨οΈ Intuitive Clap CLI
- [x] π Manage existing packages (`utpm ws link --no-copy`)
- [x] π Link remote and local packages (`utpm workspace link`)
- [x] ποΈ Delete and bulk delete your packages (`utpm pkg unlink`, `utpm pkg bulk-delete`)
- [x] π Dependencies outside of Typst!
- [x] π¦ Support for third party application and plugins
- [x] π Portable installer (limited for now)
- [x] π Visualization
- [x] ποΈ list `utpm pkg list`
- [x] π² tree `utpm pkg tree`
- [ ] π Automated publication directly to Typst Universe!**_...And more soon!_**
> [!WARNING]
> **UTPM** is still in active development, and some features may not be fully implemented. Contributions are welcome!## β‘Install
### With cargo
Requires Cargo and Rust.```bash
$ cargo install --git https://github.com/Thumuss/utpm
```
### With nix#### Nix with flakes enabled :
Get utpm for a bash session without installing it :
```bash
$ nix shell github:Thumuss/utpm
```Or if you use NixOS or home-manager with a flake, install it permanently in your `flake.nix` or your modules :
```nix
{
inputs.utpm.url = "github:Thumuss/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
}
];
};
};
}
```#### Nix without flakes :
Clone the repo and then nix-build into the utpm directory :
```bash
git clone https://github.com/Thumuss/utpm.git
cd utpm
nix-build
./result/bin/utpm
```
Utpm will be at ./result/bin/utpm## π° Usage
Further usage information can be found by running `utpm --help` or `utpm --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]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 Gives you more information, permet debug
-h, --help Print help
-V, --version Print version
```**Workspace** (ws): Manage Your Project Workspace
- `link (l)`: Link your project to existing directories.
- `create (c) (Deprecated)`: Creates a typst.toml file. Use init instead.
- `install (i)`: Install dependencies listed in typst.toml.
- `add (a)`: Add and install new dependencies.
- `delete (d)`: Remove specific dependencies.
- `init`: Initialize a new workspace for a Typst package.
- `publish (p) (WIP)`: Intended for publishing packages.
- `clone (WIP)`: Clone an existing workspace.**Packages** (pkg): Manage Typst Packages
- `tree (t)`: Display all packages in a directory as a tree.
- `list (l)`: List all packages in a directory in a flat list.
- `path (p)`: Show the path to the Typst packages folder.
- `unlink (u)`: Remove a previously installed package.
- `bulk-delete (bd)`: Delete multiple packages at once.**generate** (gen): Generate Shell Completions
## β€οΈ Contribution
If 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