Skip to main content


The official IPP CLI is installed using npm with the @ipp/cli package.

There are two main types of installation, global and project. Global installation provides a level of convenience, by adding the ipp command to your path, but makes it more difficult to manage CLI versions and pollutes your global shell path.

A more fine-tuned approach is to add the CLI as a dependency to your package.json file and invoke it either through the npx terminal command or via an npm script. There is also a more unofficial node_modules/.bin folder that is populated with IPP's shell startup script.

Both types of installation provide the same functionality, but are used in different ways.

Installation problems

If the installation fails, you may need to either downgrade Node.js or install some additional compilers. See the installation problems section in the troubleshooting guide.

Global installation

Installing IPP globally is the easiest approach as it provides an easy way to use IPP from the terminal without having to manage a project dependency list.

Install the CLI package globally using npm:

$ npm install --global @ipp/cli

This will allow you to run IPP directly from the terminal to quickly process a folder of images.

$ ipp -i input_folder -o output_folder

The disadvantage of a global installation is the difficulty of using third-party pipes, such as the CompressPipe. If you wish to use more pipes, it is best to set up a project installation and specify them as dependencies.

Project installation

Installing IPP as a package dependency allows you to specify a particular CLI version and does not pollute your global path. The general usage stays the same, the only difference being that IPP must be either executed using an npm script, or via the npx command.

This is the recommended approach if you have a long-term project to manage.

$ npm install --save-dev @ipp/cli

This will download and add the package to the adjacent node_modules folder. As it does not modify your terminal configuration, you will need to invoke IPP through npm which is aware of the ipp command.


This approach requires the project to have a package.json file due to the way npm functions. If you want to be absolutely sure that the package does not get published to the registry, you can add the following field to the file: "private": true, but this is usually not necessary.

Launching using an npm script

Adding a new script to your package.json will allow you to invoke IPP via the npm run command.

"scripts": {
"build-images": "ipp"
$ npm run build-images

It is normal for a project to have many different script entries, such as to prepare, build or test the project. Various utilities can facilitate the running of scripts.

Using npx

If you are using npm version 5.2.0 or higher, you may use the npx command.

If you have installed a particular version of the CLI in the current working directory, the npx command will run the version in the node_modules folder. Otherwise, npx will download and run the newest version of IPP on every invocation.

$ npx @ipp/cli

It is highly recommended to install @ipp/cli if you plan on running it more than once when running via npx, as some of the included libraries such as sharp have complex setups that may need to download/compile binary code, which is a long and expensive process.

Uninstalling IPP

IPP can be cleanly removed with the npm remove command, without leaving anything behind.

Depending on the original command that you used to install IPP, you may run:

$ npm remove @ipp/cli
# or
$ npm remove --global @ipp/cli

This will only remove the program. Any images, folders or configuration files will remain untouched.