Update SNAP from the command line

It is possible to update modules from the command line without the graphical user interface. This is useful in headless environments. Only modules which are already installed can be updated. It is not possible to install new modules. For doing this the SNAP executable needs to be configured properly. This executable is located in the bin directory of the installation folder of SNAP. The name depends on the operating system you are working with. On Unix systems it is named snap.sh, on Mac OS X the name is snap.command and on Windows, it depends on the bitness of your system. On a 32Bit windows system, the executable is named snap.exe and on a 64Bit system it is called snap64.exeIn the following commands snap is used as a place holder for the executable file. You need to replace it with the appropriate one for your system.

List available parameters

List the parameters with a description which can be passed to the executable.

snap --help

The parameter --nogui is missing in this list. This parameter prevents the SNAP GUI to be started.

List all modules

In order to get a list of all modules and the status if there is an update available you can call

snap --nosplash --nogui --modules --list --refresh

This will give you an output similar to what you can see in the following image.

Update all modules

To update all modules which can be updated you need to call

snap --nosplash --nogui --modules --update-all

Update specific modules

In order to update just one or multiple specific modules you can call:

snap --nosplash --nogui --modules --update org.esa.snap.snap.ndvi org.esa.snap.snap.envisat.reader

Install a module

In order to install a new module file or from the repository:

snap --nosplash --nogui --modules --install <Path to the file> | <org.esa.snap.module.name>

More information regarding additional command possible one the modules can be retrieved by typing:

snap --nosplash --nogui --modules --help

Configure Proxy without GUI

The proxy settings can be provided in a properties file. This must be located in

On Windows: <USER_HOME>\AppData\Roaming\SNAP\config\Preferences\org\netbeans

On Unix: <USER_HOME>\.snap\config\Preferences\org\netbeans

In both cases, the file must be named core.properties.

The above shows a not working example, but it shows at least some of the configuration options. A working example can be created by using the GUI once (maybe on another machine) and do the configuration. Afterwards pick-up the file and use it as your template.
One word regarding the password. The first time the configuration is used the password is read and removed from this property file. Instead, it is stored in a Keyring. So it is not publicly visible anymore.