Make sure you have golang installed (https://golang.org/doc/install), and then run
go install github.com/Merith-TK/packwiz-wrapper/cmd/pw@main
go build -tags gui -o pw.exe ./cmd/pw
# or use make
make guigo build -o pw-headless.exe ./cmd/pw
# or use make
make headlessThe headless version is about 69% smaller (~18MB vs ~59MB) and excludes all GUI dependencies, making it perfect for:
- Embedded systems
- Servers
- Docker containers
- CI/CD pipelines
- Minimal deployments
Both versions have identical CLI functionality - only the pw gui command differs.
pw version- prints pw version
pw help- prints help
pw import <import.txt>- imports mods from links in import.txt
- URL files now support specifying which folder they go in (see #import)
pw modlist [raw] [versions]- Generates a modlist file
- arguments are keyword matches, so you can do
pw modlist raw versionsorpw modlist versions raw - You can use
rawto generate without markdown formatting, (can be used for import) - You can use
versionsto generate with versions specified in modlist
pw reinstall- reinstalls all meta-files, including URLs
pw batch (arguments)- runs arguments in each subfolder of the current folder (changeable by using
-d <path>beforebatch)
- runs arguments in each subfolder of the current folder (changeable by using
pw arb <arguments>- runs arbitrary commands, useful for batchmode otherwise not really
pw import now supports importing from a file, import.txt by default.
- this file takes an URL per line, and will import all mods from those URLs (where possible)
- currently supports importing from curseforge, modrinth, and URL files (URL files have formatting)
pw modlist generates a modlist file, modlist.md by default.
- This is automatically sorted (where possible) for client, shared, and server mods,
- Shared mods are mods that are required on both client and server for full functionality
- this is detected from the
sidefield in the mod'spack.toml
- this is detected from the
By default, this is what the output will be:
# Modlist
## Client Mods
- [Sodium](https://modrinth.com/mod/AANobbMI)
## Shared Mods
- [Lithium (Fabric)](https://www.curseforge.com/minecraft/mc-mods/lithium)if you pass raw as an argument, it will generate without markdown formatting on the URL's to make it compatible with pw import like so:
## Client Mods
Sodium
https://modrinth.com/mod/AANobbMI
## Shared Mods
Lithium (Fabric)
https://www.curseforge.com/minecraft/mc-mods/lithiumif you pass versions as an argument, it will generate with versions specified in modlist like so:
# Modlist
## Client Mods
- [Sodium](https://modrinth.com/mod/AANobbMI/versions/b4hTi3mo)
## Shared Mods
- [Lithium (Fabric)](https://www.curseforge.com/minecraft/mc-mods/lithium/files/4439705)Do note that this does not support URL files, and will not generate versions for those.
pw reinstallwill reinstall all meta-files, including URLs- It will load all meta-files into internal memory, and then reinstall them with packwiz.
pw batchwill run packwiz commands in all subfolders of a folder- run from the folder containing the folders with pack.toml's
pw batch refreshwill refresh all subpackspack1/ pack2/- note, batchmode supports "recursion" such as
pw batch batch refreshwill run refresh in each sub/subfolder,pack1/ subpack1/ subpack2/ pack2/ subpack1/ subpack2/
- Runs arbitrary command from arguments
pw arb mkdir .minecraftwill runmkdir .minecraft- really only useful if you are using batchmode as you can run a single arbitrary command in every pack folder
pwsupports a few flags, which can be used with any subcommandpw -hwill print helppw -rwill runpackwiz refreshafter operations- running
pw -r importwill automatically refresh after its done importing pw -ywill autoconfirm (not full implemented into all subcommands)pw -cis depreciated- Originally used for importing only clientside mods, but does nothing now
pw -d <PackDir>will set the pack directory to<PackDir>- In batchmode this points to where folders containg pack.toml's are rather than the current folder