NSI Designer

NSI Designer

NSI Designer is a free PySide6 desktop application for creating Windows installers with the Nullsoft Scriptable Install System (NSIS). It provides a graphical interface to generate and compile .nsi scripts without manual scripting. This documentation gives you a quickstart guide and explains all input fields, presets, and advanced options. The motivation for writing the program was to make distributing my Python applications frozen with PyInstaller as convenient as possible through Windows installers.

Installation 🔧

You can install NSI Designer either via a prebuilt Windows installer or directly from PyPI. The PyPI package allows you to run the tool from the command line on any supported platform. Both methods provide the same functionality.

Windows Installer:
Download from this website
Download from GitHub Releases

PyPi:

> pip install nsi-designer
 > nsi_designer
 or
 > python -m nsi_designer

NSIS (Nullsoft Scriptable Install System):
Don´t forget to install NSIS since you need it to compile the scripts.

Features ✨

NSI Designer streamlines the process of building Windows installers. Instead of writing NSIS scripts by hand, you can configure everything through a GUI and immediately preview the generated script.

Graphical User Interface 🖥️

The GUI is divided into two panes. The left pane contains all input fields and tables for configuring your installer. The right pane shows a live preview of the NSIS script that will be generated based on your inputs.

All changes are applied immediately and reflected in the preview.

Input Fields and Tables ⌨️

This section describes all input fields available in the left pane of the GUI. Each field directly maps to values in the generated NSIS script. Understanding their meaning ensures that your installer behaves as expected.

Metadata

Metadata defines the identity of your installer. These values appear in window titles, uninstall entries, and shortcuts. They are also used in the generated script for consistency.

Presets

Presets control where and how the installer runs. They determine the default installation directory, the required execution privileges, and whether the installer affects all users or only the current user. Scope and execution level are automatically adjusted based on the installation location.

Assets

Assets customize the look and feel of the installer. They are optional, but when provided, they enhance branding and user experience.

Languages

NSI Designer supports a predefined set of languages. English is always included automatically. The language dialog allows you to select additional languages from the available set.

Registry Entries

Registry entries allow you to configure system or application settings during installation. Each entry is mirrored during uninstall to ensure clean removal.

Table columns:

Environment Variables

Environment variables can be set or extended during installation. The uninstaller reverses these changes safely.

Table columns:

Important: Never use set mode for existing variables like Path, as this would overwrite the entire variable. Use append instead. The latter option automatically creates the environment variable if it does not exist.

Encoding & Export

Encoding determines how the script is saved. Export and compile options let you generate the final installer package.

Power User Options 🦾

Advanced users and system administrators can control the installer via command‑line flags. These options allow silent installs, logging, and custom installation paths. They are especially useful for automated deployments and scripted setups.

Important: The /D=path parameter must always be the last parameter on the command line. The use of quotation marks (") is prohibited, even if the path contains spaces.

Notes & Best Practices 📝

Follow these guidelines to ensure safe and reliable installers. NSIS is powerful, but incorrect settings can cause issues during uninstall or system configuration. Always validate your configuration before distributing installers.