A tool to automate builds and manage dependencies for language neutral, multi-version projects, inspired by npm.

If you already know the general facts about xpm, you can directly skip to the desired pages.

User pages:

Developer & maintainer pages:


xpm stands for xPack project manager and is a Node.js CLI application to manage xPack projects; it can:

  • install source and binary packages
  • manage multiple build configurations
  • execute (multi-)command line actions
  • manage properties and perform complex substitutions, using the LiquidJS engine

xpm complements npm and shares the same public packages repository (npmjs.com).

The open source project is hosted on GitHub as xpack/xpm-js.

It is available as xpm from npmjs.com public registry and can be installed via npm.


An example of a representative project using xpm to manage multi-platform test is @micro-os-plus/utils-lists; please check the package.json file.

For a hands-on experience, see the xpack/hello-world-template-xpack project.

xPacks overview

xPacks are general purpose multi-version software packages, built on top of the highly successful npm packages in the Node.js JavaScript ecosystem.

Please read the xPacks Overview and xPack 101 pages.


The main purpose of the xpm CLI tool is to automate builds, including to install dependencies, and to easily update them when new versions are released.

xpm CLI commands


  • xpm outdated
  • xpm update
  • xpm cache

For publishing and other common operation, use npm:

Configuring xpm


The original content is released under the MIT License, with all rights reserved to Liviu Ionescu.

The design is heavily influenced by the npm application, Copyright (c) npm, Inc. and Contributors, Licensed on the terms of The Artistic License 2.0.


The xpm tool is currently work in progress and should be used with caution.