ppm manages Pragtical plugins, colors, fonts, and editor installations. It
includes the Plugin Manager UI for searching, filtering, and managing addons.
Both are bundled with official Pragtical releases. Open Plugin Manager: Show
from the command palette (Ctrl+Shift+P) to use the UI.
The UI plugin requires Pragtical 3.10.0 or later.
Release builds use the manifest from this repository's latest branch by default.
See the changelog for release history.
Download binaries for your platform from the latest release or the continuous build.
Run in PowerShell:
Invoke-WebRequest -Uri "https://github.com/pragtical/plugin-manager/releases/download/latest/ppm.x86_64-windows.exe" -OutFile "ppm.exe"
.\ppm.exe install plugin_manager --assume-yesAlternatively, install the standalone binary with Scoop:
scoop install https://raw.githubusercontent.com/pragtical/plugin-manager/refs/heads/master/pragtical-plugin-manager.jsonFor Linux x86_64:
curl -fL https://github.com/pragtical/plugin-manager/releases/download/latest/ppm.x86_64-linux -o ppm
chmod +x ppm
./ppm install plugin_manager --assume-yesFor macOS, replace the asset name with ppm.x86_64-darwin or
ppm.aarch64-darwin. Use ppm.aarch64-linux for Linux ARM64.
Restart Pragtical after installing the UI plugin.
ppm list
ppm install editorconfig
ppm uninstall editorconfig
ppm update
ppm upgrade
ppm --helpUse pragtical pm in place of ppm to invoke the editor's bundled binary.
For automated installation, pass --assume-yes and --userdir=<directory>.
Requires a C compiler, Python 3, Meson, Ninja, and Git. Meson uses system libraries when available and downloads missing dependencies through wraps.
git clone https://github.com/pragtical/plugin-manager.git
cd plugin-manager
meson setup build --buildtype=release -Dstatic=true
meson compile -C build
./build/ppm --helpOn Windows, the executable is build/ppm.exe. The static option embeds the
Lua program so ppm can run without the source tree; it does not make the
executable fully statically linked.
Dependencies are Lua, mbedTLS 4/TF-PSA-Crypto, libgit2, zlib, liblzma, and libzip.
The microtar sources are vendored in lib/microtar/. No Git submodule checkout
or CMake build is needed.
Build dependencies from the supplied wraps, as CI does:
meson setup build-fallback --buildtype=release --wrap-mode=forcefallback \
-Dstatic=true
meson compile -C build-fallbackLinux release builds also use -Dfully_static=true and a musl compiler to
avoid requiring a dynamic loader on the target system.
For Windows from Linux, install MinGW-w64 and run:
meson setup build-windows --buildtype=release --wrap-mode=forcefallback \
--cross-file=cross/x86_64-w64-mingw32.ini -Dstatic=true
meson compile -C build-windowsThe output is build-windows/ppm.exe. Additional files in cross/ cover Linux
aarch64/riscv64 musl and Android targets. Put the matching toolchain on PATH
before configuring.
| Platform | Architectures |
|---|---|
| Windows | x86_64 |
| Linux | x86_64, aarch64, riscv64 (experimental) |
| macOS | x86_64, aarch64 |
| Android 8.0+ | x86_64, x86, aarch64, armv7a |
The suites use Pragtical's core.test framework. Build ppm, then run them with
a Pragtical build that includes the current Plugin Manager:
pragtical test testsWith the sibling Pragtical checkout, use its isolated local runner:
cd ../pragtical
SDL_VIDEO_DRIVER=dummy SDL_AUDIO_DRIVER=dummy \
./scripts/run-local build test ../plugin-manager/testsIntegration fixtures use temporary local repositories and isolated ppm
cache/config directories. Set PPM_BINARY to an absolute path to test another
binary; otherwise the suite uses build/ppm or the packaged binary. Remote-stub
fixtures require Git, and the multi-architecture symlink test is skipped on
Windows.
See SPEC.md for the manifest format.
addons.files.extra.chmod_executable lists files to mark as executable after
download or extraction.
Include your operating system, ppm --version output, and the commands needed
to reproduce the issue, preferably with a fresh --userdir.
