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.
- Automatic packaging of all files in the executable’s directory
- Live preview of the generated NSIS script
- Asset pickers with automatic format conversion (icons → .ico, bitmaps → .bmp)
- Registry and environment variable editor
- Language selection dialog (predefined set, always includes English)
- Presets for install location, execution level, and scope
- Export with encoding selection (UTF‑8 or ANSI)
- Save and load your projects
- Direct compilation with Makensis
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.
- Left pane: Input forms for metadata, presets, assets, languages, registry entries, and environment variables.
- Right pane: Live preview of the generated NSIS script.
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.
- Application name – used in window titles, uninstall entries, and shortcuts
- Version – included in filenames and uninstall dialogs
- Company name – appears in uninstall information
- Caption – title bar text of the installer window
- Branding text – small text displayed in the installer window
- About URL – (optional) link displayed in the classic Windows uninstall section
- Help URL – (optional) link displayed in the classic Windows uninstall section
- Update URL – (optional) link displayed in the classic Windows uninstall section
- Comments – (optional) a comment displayed in the classic Windows uninstall section
- Executable file – path to the main
.exe; all files in the same directory are packaged
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.
- Install location:
- 64‑bit Program Files – installs under
C:\Program Fileson 64‑bit systems. - 32‑bit Program Files – installs under
C:\Program Files (x86)on 64‑bit systems, orC:\Program Fileson 32‑bit systems. - Per‑user AppData – installs under the current user’s
%LOCALAPPDATA%, no admin rights required.
- 64‑bit Program Files – installs under
- Execution level:
- admin – installer requests elevation (UAC prompt) and writes to system‑wide locations.
- user – installer runs without elevation, limited to user‑writable locations.
- Scope:
- System‑wide – registry and environment changes apply to all users.
- Per‑user – registry and environment changes apply only to the current user.
Assets
Assets customize the look and feel of the installer. They are optional, but when provided, they enhance branding and user experience.
- Install icon – optional (.ico, .png or .jpg)
- Uninstall icon – optional (.ico, .png or .jpg)
- Welcome bitmap – optional (.bmp, .png or .jpg); if not provided, the welcome page is omitted
- License file – optional; only if an RTF file is selected, otherwise no license page is shown
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:
- Root – the top‑level registry hive where the entry is stored, e.g.
HKLM(HKEY_LOCAL_MACHINE) for system‑wide settings or-
HKCU(HKEY_CURRENT_USER) for per‑user settings.
- Sub‑Key – the path inside the hive, similar to a folder structure,
e.g.
Software\MyApp. - Key‑Name – the actual name of the registry value you want to create or modify,
e.g.
InstallPath. - Value – the data assigned to the key, e.g.
C:\Program Files\MyApp. - Type – the data type of the value, typically string (REG_SZ) for text or dword (REG_DWORD) for numeric values.
Environment Variables
Environment variables can be set or extended during installation. The uninstaller reverses these changes safely.
Table columns:
- Name – the identifier of the environment variable, e.g.
PATHorJAVA_HOME. - Value – the content to assign or append, e.g.
C:\Program Files\MyApp\bin. - Mode – defines how the variable is handled:
- set – creates a new variable or overwrites an existing one with the given value.
- append – adds the value to the end of an existing variable (commonly used for
PATH).
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.
- Encoding: – UTF‑8 or ANSI (default); ANSI saves the script in the local codepage
- Export NSIS script and assets – Exports the project, .nsi-script and all assets (Icons, License, etc.)
- Compile last export with NSIS – Makensis path is detected automatically or requested if not yet configured
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.
/S– Silent installation/NOICONS– Do not create shortcuts/LOG[=path]– Enable logging, optionally specify log file path (Include the filename!)/D=path– Set installation directory
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.
- Always test installers and uninstallers on a safe system before production use.
- Registry edits must be handled with care – incorrect keys can cause uninstall issues.
- Environment variables:
- Use
appendmode for PATH‑like variables. - Never use
setmode for existing variables such asPath!
- Use
- License and welcome pages are optional:
- License page is only included if an RTF file is selected.
- Welcome page is only included if a bitmap is selected.
- Makensis path is requested automatically if not yet configured.
Useful Links 🔗
Here are some resources to learn more about NSIS and NSI Designer: