Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Installation

Precompiled binaries

Pre-built binaries are available for Linux and Windows.

Linux/WSL:

$ curl -fsSL https://github.com/thegraydot/mpqcli/releases/latest/download/install.sh | bash

Microsoft Windows:

PS> Invoke-WebRequest -Uri https://github.com/thegraydot/mpqcli/releases/latest/download/install.ps1 -OutFile install.ps1
PS> .\install.ps1

Both installers put mpqcli on the system path and may ask for elevation; pass --user on Linux or -User on Windows to install for the current user instead. Each release also ships checksums.txt, signed with cosign: the installer verifies the SHA-256 of the binary always, and the signature when cosign is installed.

Check the latest release with binaries.

Docker image

The Docker image for mpqcli is hosted on GitHub Container Registry (GHCR). It provides a lightweight and portable way to use mpqcli without needing to build or download a binary.

To download the latest version of the mpqcli Docker image, run:

$ docker pull ghcr.io/thegraydot/mpqcli:latest

You can run mpqcli commands directly using the Docker container. For example:

$ docker run --rm ghcr.io/thegraydot/mpqcli:latest version

To use local files, mount a directory from your host system at /data. That is the container’s working directory, so paths are relative to the mounted directory. The following example lists example.mpq from the present working directory:

$ docker run --rm -v "$PWD":/data ghcr.io/thegraydot/mpqcli:latest list example.mpq

The container runs as root, so a file it creates or extracts is owned by root on the host. To have the output owned by you, run the container as your own user:

$ docker run --rm --user "$(id -u):$(id -g)" -v "$PWD":/data ghcr.io/thegraydot/mpqcli:latest create example.mpq files/

A shell function makes that the default for everyday use:

mpqcli() { docker run --rm --user "$(id -u):$(id -g)" -v "$PWD":/data ghcr.io/thegraydot/mpqcli:latest "$@"; }

Under rootless Docker or Podman the container’s root already maps to your own user, so run without --user there; on Podman, --userns=keep-id is the equivalent of the flag above.