Build an NSIS installer online, without writing a script
What NSIS is, what a minimal .nsi script looks like, and how to get a standard NSIS Setup.exe with the Modern UI wizard, shortcuts and an uninstaller from a form instead of a script.
Updated October 31, 2026 · 3 min read
NSIS, the Nullsoft Scriptable Install System, has been the quiet workhorse behind Windows installers for over twenty years. VLC, 7-Zip, Audacity and countless Electron apps ship with it. It is free, produces small installers, and does exactly what its script says. The script is also what stops many people: you learn a macro language to get a wizard most apps want in the same shape anyway. This guide shows what the script involves and how to get the same installer without writing it.
What NSIS does
makensis compiles a text script (.nsi) into a self-contained Setup.exe. The script declares the pages of the wizard, the files to install, the shortcuts and registry entries to create, and an uninstall section that reverses it all. With the Modern UI (MUI2.nsh) you get the familiar welcome, licence, folder, progress and finish pages, translated into dozens of languages.
The output is compact: solid LZMA compression often beats a zip of the same files. Installers support silent mode (/S) and a custom install folder (/D=) with no extra work.
What the script looks like
A minimal, realistic script for an app folder runs to about eighty lines. The skeleton:
!include MUI2.nsh
Name "My App"
OutFile "Setup.exe"
InstallDir "$PROGRAMFILES64\My App"
RequestExecutionLevel admin
!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_LICENSE "license.txt"
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH
!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES
!insertmacro MUI_LANGUAGE "English"
Section "Install"
SetOutPath "$INSTDIR"
File /r "app\*"
WriteUninstaller "$INSTDIR\uninstall.exe"
CreateShortcut "$SMPROGRAMS\My App.lnk" "$INSTDIR\MyApp.exe"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\My App" "DisplayName" "My App"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\My App" "UninstallString" "$INSTDIR\uninstall.exe"
SectionEnd
Section "Uninstall"
Delete "$INSTDIR\MyApp.exe"
RMDir /r "$INSTDIR"
Delete "$SMPROGRAMS\My App.lnk"
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\My App"
SectionEnd
The real one grows from there: version information for the file properties, a desktop shortcut, 64-bit registry views, per-user installs under $LOCALAPPDATA, a language selection dialog, "run after install", an estimated size for Windows Settings, and an uninstaller that deletes only the files it installed rather than the whole folder (users do put their own files next to apps). Each is a few lines, and each is a place to get a detail wrong.
Getting the same installer from a form
ExeTup is an NSIS installer builder: it generates a script like the one above from your answers, compiles it with makensis in the cloud and gives you the Setup.exe. What you fill in:
- Files: a zip of the app folder, or a single
.exe, plus optional "other files" to install alongside. - Details: name, version, publisher, website, licence text.
- Options: all users or current user, 64-bit or 32-bit, Start Menu and Desktop shortcuts, launch after install, launch at start-up.
- Languages: any of fifteen, with NSIS's language dialog when you pick more than one.
- Icon: a
.icofor the installer and the shortcuts.
The result is a standard NSIS installer with the Modern UI, solid LZMA compression, the uninstaller registered in Windows Settings, version info in the file properties, and /S silent installs. Every value you type is escaped before it reaches the script, which matters because NSIS scripts can run commands at compile time.
When to write the script yourself
Write NSIS by hand when you need custom pages, plugins, conditional sections, service installation, or integration with a CI pipeline that already builds on Windows. The NSIS documentation and the examples shipped with it are good. For an app that needs the standard wizard, shortcuts and an uninstaller, generating the script is faster and harder to get wrong.
FAQ
Is the output a real NSIS installer?
Yes. ExeTup generates an NSIS script and compiles it with the official makensis. The Setup.exe behaves like any NSIS installer, including /S and /D= switches.
Can I download the generated .nsi script?
The script is generated at build time from your settings. The installer itself is what you download; its options are visible in the preview before you build.
Does NSIS run on Mac or Linux?
makensis compiles on all three platforms, and Homebrew and apt package it. You still write the script yourself. ExeTup needs only a browser; see building a Windows installer on a Mac.
Which languages are supported?
English, Simplified Chinese, Hindi, Spanish, French, Arabic, Brazilian Portuguese, Russian, Indonesian, German, Japanese, Turkish, Korean, Vietnamese and Italian, using NSIS's own translations.
Related guides
- How to make a Setup.exe for your Windows app (no code)What a Setup.exe actually does, the three ways to make one, and how to turn an app folder into a professional installer in minutes without writing an installer script.
- Inno Setup alternative: build a Windows installer online, no scriptWhere Inno Setup shines, where a script-free online builder fits better, and how to get a comparable Setup.exe with wizard, shortcuts and uninstaller from a form.
- Silent install for a Setup.exe: the /S switch, custom folders and deploymentHow to run an NSIS-based Setup.exe silently with /S, choose the folder with /D=, uninstall silently, and roll the installer out with Intune, PDQ or a script.